Integrated development environmentcomputer software consisting 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.
|Table of contents|
2 Popular IDEs
3 Other IDEs
4 Tile-based direct manipulation systems
5 See also
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 timesharing 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.
- The most popular IDE for Windows is Microsoft's Visual Studio which supports several languages such as C#, C++, Visual Basic and Visual Basic .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++.
- Delphi (based on Pascal) is available for both the Windows and Linux platform. Delphi is the successor of Turbo Pascal which once was a very popular IDE.
- Platform independent IDE's based on Java are the Eclipse and NetBeans platforms which are extensible via a plugin API's. They are open source and released under a community license.
- JBuilder from Borland is one of the most popular commercial offerings for Java IDEs.
- IDEA from Jet Brains is a commercial development environment written in Java. The primary focus of IDEA is programmer productivity and it includes considerable support for refactoring and test driven design.
- 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 systemsThere 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).
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.