Integrated development environment

The boundary between an IDE and other parts of the broader software development environment is not well-defined; sometimes a version control system or various tools to simplify the construction of a graphical user interface (GUI) are integrated.

Integrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces.

This program typically provides many features for authoring, modifying, compiling, deploying and debugging software.

This contrasts with software development using unrelated tools, such as vi, GDB, GNU Compiler Collection, or make.

Early systems could not support one, since programs were submitted to a compiler or assembler via punched cards, paper tape, etc.

However it integrated editing, file management, compilation, debugging and execution in a manner consistent with a modern IDE.

Code completion and related tools serve as documentation and disambiguation for variable names, functions, and methods, using static analysis.

[3] IDEs are also used for debugging, using an integrated debugger, with support for setting breakpoints in the editor, visual rendering of steps, etc.

This interface has been popularized with the Lego Mindstorms system and is being actively perused by a number of companies wishing to capitalize on the power of custom browsers like those found at Mozilla.

An early visual programming system, Max, was modeled after an 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.

Some IDEs support multiple languages, such as GNU Emacs, IntelliJ IDEA, Eclipse, MyEclipse, NetBeans, MonoDevelop, JDoodle or PlayCode.

[1] Eclipse, and Netbeans have plugins for C/C++, Ada, GNAT (for example AdaGIDE), Perl, Python, Ruby, and PHP, which are selected between automatically based on file extension, environment or project settings.

Some programmers prefer managing makefiles and their derivatives to the similar code building tools included in a full IDE.

[19] 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.

[20] Some Linux IDEs such as Geany attempt to provide a graphical front end to traditional build operations.

Vim with integrated auto-completion and linting through an external plugin
GNU Emacs , an extensible editor that is commonly used as an IDE on Unix-like systems