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.

  • The most popular IDE for Windows is Microsoft's Visual Studio which supports several languages such as C#, C++, Visual BASIC and VB.NET. The latest version of Visual Studio is suffixed with ".NET" to indicate that it supports the new .NET languages: C#, Visual BASIC.NET and Managed C++.
  • The Delphi (based on the Pascal programming language) is available for both the Windows and Linux platform. Delphi is the successor of Turbo Pascal which once was a very popular IDE.
  • Another cross-platform (based on Java) IDE is the recently released Eclipse platform which is an extensible via a plugin API. It is open source and was released under a community license.
  • JBuilder from Borland is one of the most popular commercial offerings for Java IDEs.
  • The Sun ONE Studio from Sun Microsystems is entirely written in Java. Based on the Open source NetBeans tools platform, Sun ONE Studio software allows you to implement and manage platform independent Java projects. The Community Edition is free of charge.
  • On the other side there is also KDevelop, an emerging IDE from the KDE project based on the GNU development tools (gcc, make, and GDB), which includes a graphical front-end creator, and Kylix, from Borland.
  • On the Macintosh, the most prevalent IDE in recent times is CodeWarrior from Metrowerks, but Apple also produces a comprehensive IDE for Mac OS X, Xcode, which replaces an earlier less integrated set of tools called ProjectBuilder. IDEs have always been popular on the Mac, going back to MPW, Turbo Pascal and THINK C environments in the mid 1980s.

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