All Topics  
Integrated development environment

 

   Email Print
   Bookmark   Link






 

Integrated development environment



 
 
An integrated development environment (IDE) also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development
Software development

Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products....
. An IDE normally consists of a:



Sometimes a version control system and various tools are integrated to simplify the construction of a GUI
Gui

Gui or guee is a generic term to refer to grillinged dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients....
.






Discussion
Ask a question about 'Integrated development environment'
Start a new discussion about 'Integrated development environment'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Anjuta 2
An integrated development environment (IDE) also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development
Software development

Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products....
. An IDE normally consists of a:

  • Source code editor
    Source code editor

    A source code editor is a text editor program designed specifically for editing source code of computer programs by programmers. It may be a standalone application or it may be built into an integrated development environment ....
  • Compiler
    Compiler

    A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
     and/or interpreter
    Interpreter (computing)

    In computer science, an interpreter normally means a computer program that execution , i.e. performs, instructions written in a programming language....
  • Build automation
    Build Automation

    Build automation is the act of Scripting language or automating a wide variety of tasks that a software developer will do in their day-to-day activities including things like:...
     tools
  • Debugger
    Debugger

    A debugger is a computer program that is used to test and debug other programs. The code to be examined might alternatively be running on an Instruction Set Simulator, a technique that allows great power in its ability to halt when specific conditions are encountered but which will typically be much slower than executing the code directly on...


Sometimes a version control system and various tools are integrated to simplify the construction of a GUI
Gui

Gui or guee is a generic term to refer to grillinged dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients....
. Many modern IDEs also have a class browser
Class browser

A class browser is a feature of an integrated development environment that allows the programmer to browse, navigate, or visualize the structure of object-oriented programming code....
, an object inspector, and a class hierarchy
Class hierarchy

As in taxonomy, the classifications of species, a class hierarchy in computer science is a classification of object types, denoting objects as the instantiations of classes inter-relating the various classes by relationships such as "inherits", "extends", "is an abstraction of", "an interface definition"....
 diagram
Diagram

A diagram is a 2D geometric model symbolic representation of information according to some visualization technique. Sometimes, the technique uses a Three-dimensional space visualization which is then graphical projection onto the 2D surface....
, for use with object-oriented software development
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
.

Overview

IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interface
User interface

The user interface is the aggregate of means by which people—the User s—Interaction with the system—a particular machine, device, computer program or other complex tools....
s. This should mean that the programmer has much less mode switching to do than when using discrete development programs. However, because an IDE is by its very nature a complicated piece of software, this high productivity only occurs after a long learning time.

Typically an IDE is dedicated to a specific programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
, so as to provide a feature set which most closely matches the programming paradigm
Programming paradigm

A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
s of the language. However, some multiple-language IDEs are in use, such as Eclipse
Eclipse (software)

Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
, ActiveState Komodo
ActiveState Komodo

ActiveState Komodo is the name given to a family of integrated development environment applications produced by software firm ActiveState....
, recent versions of NetBeans
NetBeans

NetBeans refers to both a Platform for the development of applications for the network , and an integrated development environment developed using the NetBeans Platform....
 and Microsoft Visual Studio
Microsoft Visual Studio

Microsoft Visual Studio is an integrated development environment from Microsoft. It can be used to develop Console application and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all platforms supported by Microsoft W...
.

IDEs typically present a single program in which all development is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software. The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit, which theoretically reduces the time to learn a language, and increases developer productivity. It is also thought that the tight integration of development tasks can further increase productivity. For example, code can be compiled while being written, providing instant feedback on syntax errors. While most modern IDEs are graphical, IDEs in use before the advent of windowing systems (such as Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 or X11) were text-based, using function keys or hotkeys to perform various tasks (Turbo Pascal
Turbo Pascal

Turbo Pascal is a complete software development system that includes a compiler and an Integrated Development Environment for the Pascal programming language running under CP/M, CP/M-86, and MS-DOS, developed by Borland under Philippe Kahn's leadership....
 is a common example). This contrasts with software development using unrelated tools, such as vi
Vi

vi is a family of screen-oriented text editors which share common characteristics, such as methods of invocation from the operating system command interpreter, and characteristic user interface features....
, GCC
GNU Compiler Collection

The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain....
 or make.

History


IDEs initially became necessary when doing development in front of a console or terminal. Early languages did not have one, since they were prepared using flowcharts, coding before being submitted to a compiler. Dartmouth BASIC
Dartmouth BASIC

Dartmouth BASIC is the original version of the BASIC programming language. It is so named because it was designed and implemented at Dartmouth College....
 was the first language to be created with an IDE (and was also the first to be designed for use while sitting in front of a console or terminal). Its IDE (part of the Dartmouth Time Sharing System
Dartmouth Time Sharing System

The Dartmouth Time-Sharing System, or DTSS for short, was the first large-scale time-sharing system to be implemented successfully. Its implementation began at Dartmouth College in 1963 by a student team under the direction of John Kemeny and Thomas Kurtz with the aim of providing easy access to computing facilities for all members of t...
) was command-based, and therefore did not look much like the menu-driven, graphical IDEs of today. However it seamlessly integrated editing, file management, compilation, debugging and execution in the manner characteristic of a modern IDE.

Maestro I
Maestro I

Maestro I from Softlab Munich was the world's first Integrated development environment for software.Originally named "Program development system terminal," or "PET" ...
 a product from Softlab Munich was the world's first Integrated development environment 1975 for software. Maestro I
Maestro I

Maestro I from Softlab Munich was the world's first Integrated development environment for software.Originally named "Program development system terminal," or "PET" ...
 was installed for 22,000 programmers worldwide. Until 1989 6,000 installations in the Federal Republic of Germany. Maestro I
Maestro I

Maestro I from Softlab Munich was the world's first Integrated development environment for software.Originally named "Program development system terminal," or "PET" ...
 was in the 1970s and 80 world leader in this field. Today one of the last Maestro I
Maestro I

Maestro I from Softlab Munich was the world's first Integrated development environment for software.Originally named "Program development system terminal," or "PET" ...
 is in Arlington Museum of Information Technology.

One of the first IDEs with a plug-in concept was Softbench
Softbench

HP Softbench was an integrated computer-aided software engineering tool built on the UNIX operating system, UNIX tools and the X Window System....
. In 1995 Computerwoche commented that the use of an IDE was not well received by developers since it would fence in their creativity.

Topics


Visual programming

There is growing interest in visual programming
Visual programming language

A visual programming language is any programming language that lets users create computer program by manipulating program elements graphically rather than by specifying them textually....
 (not to be confused with Visual Basic
Visual Basic

'Visual Basic' is the third-generation programming language event-driven programming and integrated integrated development environment from Microsoft for its Component Object Model programming model....
 or Visual C++
Visual C++

Microsoft Visual C++ is a commercial integrated development environment product engineered by Microsoft for the C , C++, and C++/CLI programming languages....
). Visual IDEs allow users to create new applications by moving programming building blocks or code nodes to create flowcharts or structure diagrams which are then compiled or interpreted. These flowcharts often are based on the Unified Modeling Language
Unified Modeling Language

Unified Modeling Language is a standardized general-purpose modeling language in the field of software engineering.UML includes a set of graphical notation techniques to create abstract models of specific systems....
.

This interface has been popularized with the Lego Mindstorms
Lego Mindstorms

LEGO Mindstorms is a line of Lego sets combining programmable bricks with electric motors, sensors, Lego bricks, and Lego Technic pieces .Mindstorms originated from the programmable sensor blocks used in the line of educational toys....
 system, and is being actively pursued by a number of companies wishing to capitalize on the power of custom browsers like those found at Mozilla
Mozilla

Mozilla was the official, public, original name of Mozilla Application Suite by the Mozilla Foundation, currently known as SeaMonkey internet suite....
, and the power of distributed programming (cf. LabVIEW
LabVIEW

LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"....
 software). An early visual programming system, Max
Max (software)

Max is a graphical development environment for music and multimedia developed and maintained by San Francisco-based software company Cycling '74....
, was modelled after analog synthesizer
Synthesizer

A synthesizer is an electronic instrument capable of producing a variety of sounds by generating and combining signals of different frequency....
 design and has been used to develop real-time music performance software since the 1980s. Another early example was Prograph
Prograph

Prograph is a Visual programming language, Object-oriented programming, dataflow programming, Multi-paradigm programming language programming language that uses iconic symbols to represent actions to be taken on data....
, a dataflow-based system originally developed for the Macintosh
Macintosh

File:Imac alu.pngMacintosh, commonly shortened to Mac, is a brand name which covers several lines of personal computers designed, developed, and marketed by Apple Inc....
. The graphical programming environment "Grape" is used to program qfix robot kits.

This approach is also used in specialist software such as Openlab
Openlab

Openlab is a software package for doing 2D Microscope image processing, and for integrating and controlling a diverse array of instrumentation in a laboratory environment....
, where the end users want the flexibility of a full programming language, without the traditional learning curve associated with one.

An open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 visual programming system is Mindscript, which has extended functionality for cryptology, database
Database

A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
 interfacing, etc.

Language support

Eclipse
Eclipse (software)

Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
, an example of a multiple-language IDE, has Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
 as a base installed language. It also has plugin
Plugin

In computing, a plug-in consists of a computer program that interacts with a host application software to provide a certain, usually very specific, function "on demand"....
s for C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
/C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
, Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, Ruby
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
, Groovy
Groovy

Groovy is a slang term that gained popular currency during the 1960's and 1970's and which is often associated with the counterculture of that era....
, Fortran
Fortran

Fortran is a general-purpose programming language, procedural programming language, imperative programming language programming language that is especially suited to numerical analysis and scientific computing....
, Cobol
COBOL

COBOL is one of the oldest programming languages still in active use. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
, PHP
PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
, JSP
JavaServer Pages

JavaServer Pages is a Java technology that allows software developers to create dynamic web page, with HTML, XML, or other document types, in response to a Web client request....
/Servlet, Java EE
Java Platform, Enterprise Edition

Java Platform, Enterprise Edition or Java EE is a widely used Platform for Server programming in the Java programming language. The Java Platform differs from the Java Platform, Standard Edition in that it adds libraries which provide functionality to deploy fault-tolerant, Distributed computing, multitier architecture Java Applicat...
,Scala, OOD
Object oriented design

Object-oriented design is the process of planning a system of interacting Object-oriented programming for the purpose of solving a software problem....
/OOP
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
/AOP
Aspect-oriented programming

Aspect-oriented programming is a programming paradigm that increases Modularity by allowing the separation of concerns cross-cutting concerns, forming a basis for Aspect-oriented software development....
 design tools and many more plugins. These all can be installed on the same IDE at the same time. They all have their own debugger and integrated IDE options, which sometimes leads to grave inconsistencies in the user interface itself due to the overwhelming amount of customizability and keyboard shortcuts.

Attitudes across different computing platforms

Many Unix
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 programmers argue that traditional command-line POSIX
POSIX

POSIX or "Portable Operating System Interface" is the collective name of a family of related standardizations specified by the Institute of Electrical and Electronics Engineers to define the application programming interface , along with shell and utilities interfaces for software compatible with variants of the Unix operating system, altho...
 tools constitute an IDE, though one with a different style of interface and under the Unix environment. Many programmers still use makefiles and their derivatives. Also, many Unix programmers use Emacs
Emacs

Emacs is a class of feature-rich text editors, usually characterized by their extensibility. Emacs has, perhaps, more editing commands than any other editor or word processor, numbering over 1,000....
 or Vim
Vim (text editor)

Vim is a text editor first released by Bram Moolenaar in 1991 for the Amiga computer. The name "Vim" is an acronym for "Vi IMproved" because Vim was created as an extended version of the vi editor, with many additional features designed to be helpful in editing program source code....
, which integrate support for many of the standard Unix build tools. Data Display Debugger
Data Display Debugger

Data Display Debugger, or DDD, is a popular free software graphical user interface for command-line debuggers such as GNU Debugger, Dbx debugger, JDB, WDB, XDB, the Perl debugger, the Bash , the Python , and the GNU_Make#Modern_versions ....
 is intended to be an advanced graphical front-end for many text-based debugger standard tools
Debugger

A debugger is a computer program that is used to test and debug other programs. The code to be examined might alternatively be running on an Instruction Set Simulator, a technique that allows great power in its ability to halt when specific conditions are encountered but which will typically be much slower than executing the code directly on...
.

Under Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
, command-line tools for development are little known. So, there are many commercial and non-commercial solutions, but each has a different design and so they tend to have compatibility problems. Yet, all major compiler vendors for Windows provide free copies of their command-line tools, including Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 (Visual C++ free version, Platform SDK, Microsoft .NET Framework
.NET Framework

The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
 SDK, nmake utility), CodeGear
CodeGear

CodeGear is a wholly-owned division of Embarcadero Technologies. CodeGear develops software development tools such as the Borland Delphi Integrated development environment, the programming language Delphi, and the database server InterBase....
 (bcc32 compiler, make utility), and GNU
GNU

GNU is a computer operating system composed entirely of free software. Its name is a recursive acronym for GNU's Not Unix; it was chosen because its design is Unix-like, but differs from Unix by being free software and containing no Unix code....
 (gcc
GNU Compiler Collection

The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain....
, gdb, GNU make).

IDEs have always been popular on Mac OS
Mac OS

Mac OS is the trademarked name for a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems....
, going back to Macintosh Programmer's Workshop
Macintosh Programmer's Workshop

Macintosh Programmer's Workshop or MPW, is a software development environment for the Classic Mac OS, written by Apple Computer. For Apple Macintosh developers, it was one of the primary tools for building applications for System 7.x and Mac OS 8.x and 9.x....
, Turbo Pascal
Turbo Pascal

Turbo Pascal is a complete software development system that includes a compiler and an Integrated Development Environment for the Pascal programming language running under CP/M, CP/M-86, and MS-DOS, developed by Borland under Philippe Kahn's leadership....
, THINK Pascal and THINK C
THINK C

THINK C was an extension of ANSI C for Mac OS developed by THINK Technologies; although named Lightspeed C in the original mid-1986 release, it was later renamed Think C due to a lawsuit....
 environments in the mid-1980s. Currently Mac OS X programmers can choose between a few IDEs, including native IDEs like Xcode
Xcode

Xcode is a suite of tools for developing software on Mac OS X, developed by Apple Inc.. Xcode 3.0, the latest major version, is bundled free with Mac OS X v10.5, though it is not installed by default....
, older IDEs like CodeWarrior
CodeWarrior

CodeWarrior is an integrated development environment for the Apple Macintosh, Microsoft Windows, Linux, Solaris and embedded systems that is developed and marketed by Freescale Semiconductor....
, and open-source tools, such as Eclipse
Eclipse (software)

Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
 and Netbeans
NetBeans

NetBeans refers to both a Platform for the development of applications for the network , and an integrated development environment developed using the NetBeans Platform....
. ActiveState Komodo
ActiveState Komodo

ActiveState Komodo is the name given to a family of integrated development environment applications produced by software firm ActiveState....
 is a proprietary IDE supported on Mac OS.

Some open-source IDEs such as Eclipse
Eclipse (software)

Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
 and Netbeans
NetBeans

NetBeans refers to both a Platform for the development of applications for the network , and an integrated development environment developed using the NetBeans Platform....
, which themselves are developed with a cross-platform language (i.e., Java), run on multiple platforms including Windows, Linux, and Mac OS.

See also

  • Comparison of integrated development environments
    Comparison of integrated development environments

    The following tables list software packages that are nominal IDEs; standalone tools such as source code editors and GUI builders are not included....
  • Computer-aided software engineering
    Computer-aided software engineering

    Computer-Aided Software Engineering , in the field of Software Engineering is the scientific application of a set of tools and methods to a software which results in high-quality, defect-free, and maintainable software products....
  • Multiple document interface#IDE-style interface
    Multiple document interface

    Graphical computer applications with a multiple document interface are those whose windows reside under a single parent window , as opposed to all windows being separate from each other ....
  • List of software engineering topics
    List of software engineering topics

    This list complements the software engineering article, giving more details and examples.For an alphabetical listing of topics, please see List of software engineering topics ....
  • Rapid application development
    Rapid application development

    Rapid application development is a software development methodology, which involves iterative development and the construction of prototypes....
  • Read-eval-print loop
    Read-eval-print loop

    A read-eval-print loop , also known as an interactive toplevel, is a simple, interactive computer programming environment. The term is most usually used to refer to a Lisp programming language interactive environment, but can be applied to command line interface shell and similar environments for Smalltalk, Python , Ruby , Haskell , AP...
  • PHP IDE
  • Software development kit
    Software development kit

    A software development kit is typically a set of development tools that allows a software engineer to create application software for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform....
  • Software engineering
    Software engineering

    Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
  • Utility program