Integrated development environment

From Wikipedia, the free encyclopedia
  (Redirected from Integrated Developer Environment)
Jump to: navigation, search
For other uses, see IDE.


Some IDEs contain a compiler, interpreter, or both, such as Net Beans and Eclipse; others do not, such as SharpDevelop and Lazarus. The boundary between an integrated development environment and other parts of the broader software development environment is not well-defined. Sometimes a version control system and various tools are integrated to simplify the construction of a GUI. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram, for use in object-oriented software development.



One aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities, instead providing the same set of capabilities as a cohesive unit. Reducing that setup time can increase developer productivity, in cases where learning to use the IDE is faster than manually integrating all of the individual tools. Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks. For example, code can be continuously parsed while it is being edited, providing instant feedback when syntax errors are introduced. That can speed learning a new programming language and its associated libraries.

Some IDEs are dedicated to a specific programming language, allowing a feature set that most closely matches the programming paradigms of the language. However, there are many multiple-language IDEs, such as Eclipse, ActiveState Komodo, IntelliJ IDEA, Oracle JDeveloper, NetBeans, Codenvy and Microsoft Visual Studio. Xcode, Xojo and Delphi are dedicated to a closed language or set of programming languages.

While most modern IDEs are graphical, text-based IDEs such as Turbo Pascal were in popular use before the widespread availability of windowing systems like Microsoft Windows and the X Window System (X11). They commonly use function keys or hotkeys to execute frequently used commands or macros.







Visual programming[edit]




Language support[edit]

Some IDEs support multiple languages, such as GNU Emacs based on C and Emacs Lisp, and Eclipse, IntelliJ IDEA, MyEclipse or NetBeans, all based on Java, or MonoDevelop, based on C#.


Attitudes across different computing platforms[edit]

Unix programmers can combine command-line POSIX tools into a complete development environment, capable of developing large programs such as the Linux kernel and its environment.[3] The free software GNU tools (GNU Compiler Collection (GCC), GNU Debugger (gdb), GNU make) are available on many platforms, including Windows.[4] Developers who favor command-line oriented tools can use editors with support for many of the standard Unix and GNU build 1 tools, building an IDE with programs like Emacs[5][6][7] or Vim. Data Display Debugger is intended to be an advanced graphical front-end for many text-based debugger standard tools. Some programmers prefer managing makefiles and their derivatives to the similar code building tools included in a full IDE. For example, most contributors to the PostgreSQL database use make and gdb directly to develop new features.[8] Even when building PostgreSQL for Microsoft Windows using Visual C++, Perl scripts are used as a replacement for make rather than relying on any IDE features.[9] Some Linux IDEs such as Geany attempt to provide a graphical front end to traditional build operations.


IDEs have always been popular on the Apple Macintosh's Mac OS, dating back to Macintosh Programmer's Workshop, Turbo Pascal, THINK Pascal and THINK C environments of the mid-1980s. Currently Mac OS X programmers can choose between native IDEs like Xcode and open-source tools such as Eclipse and Netbeans. ActiveState Komodo is a proprietary multilanguage IDE supported on the Mac OS.

With the advent of cloud computing, some IDEs are available online and run within web browsers; examples of this are Online Javascript IDE, Codenvy, Cloud9 IDE, Firebug and Koding.

See also[edit]