Integrated development environment
An integrated development environment (IDE) (also known as an integrated design environment and integrated debugging environment) is computer software to help computer programers develop software. They normally consist of a source code editor, a compiler, interpreter, or both, build-automation tools, and (usually) a debugger (see, for example, Delphi programming language). Although some multiple-language IDEs are in use, typically an IDE is devoted to a specific programming language, as in the Visual Basic IDE. Sometimes a version control system and various tools to simplify the construction of a GUI are integrated as well.
IDEs are only necessary when development is done while sitting at some form of computer console. Therefore most early languages did not have one, since they were prepared using flowcharts, coding forms and keypunches before being submitted to the compiler. The first language to be created with an IDE was BASIC in 1964, coincidentally the first language to be designed for use while sitting at a computer terminal. Its IDE, part of the Dartmouth Time Sharing System, was command-based in contrast to modern menu-based IDEs.
In the case of languages designed for the older "keypunch development environment" model, IDEs have been pioneered as an alternative to the makefile system of program building, whereby configuration files were written in addition to code. These makefiles described options of how the compiler was to operate. Makefiles themselves were an advancement from just running the compilers and debuggers, with options given on the command line. IDEs removed this layer of complication by controlling this collection of tools, originally in a command-based format but now usually under a graphical front-end.
Under the Linux environment, many programmers still use makefiles and their derivatives. But even on Linux, IDEs are becoming increasingly popular. Many Linux programmers argue that the existing command-line tools are in themselves an IDE, though with a different (and some claim, superior) style of interface. Similarly, many Linux programmers use Emacs, which integrates support for many of the standard Unix/Linux build tools in what its fans believe is an extremely elegant manner.
Tile-based direct manipulation systems
There is also growing interest in Visual Programming (not to be confused with Visual Basic or Visual C++). These 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.
This interface has been popularized with the LEGO Mindstorms 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 and the power of distributed programming (cf. LabVIEW software). One of the first Visual Programming systems, Max, was modelled after analog synthesizer design and has been used to develop real-time music performance software since the 1980s.
This approach is also used in specialist software such as Openlab, where the end users want the flexibility of a full programming language, without the traditional learning curve associated with one.
de:Integrierte Entwicklungsumgebung es:Entorno integrado de desarrollo fr:Environnement de développement intégré ja:統合開発環境 ru:Среда разработки программного обеспечения zh:集成编程环境