Main Page | See live article | Alphabetical index

Integrated development environment

An integrated development environment (IDE) (also known as an integrated design environment and integrated debugging environment) is computer software consisting of a text 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.

Table of contents
1 History
2 Popular IDEs
3 Tile-based direct manipulation systems

History

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 Dartmouth BASIC in 1964, coincidentally the first language to be designed for use while sitting at a computer terminal. Its IDE 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.

Popular IDEs

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. 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).