Integrated development environment

An integrated development environment (IDE) is software that provides a relatively comprehensive set of features for software development. An IDE is intended to enhance productivity by providing development features with a consistent user experience as opposed to using separate tools, such as vi, GDB, GCC, and make.

At a minimum, an IDE typically supports source-code editing, source control, build automation, and debugging. An IDE may include support for integrating tools such as a compiler, runtime environment or version control system, but sometimes such tools are bundled with the IDE. Some IDEs provide special support for constructing a graphical user interface (GUI). Many IDEs support object-oriented programming via features such as class browser and object browser. Typically, an IDE provides special support for one or more programming languages, allowing for features tailored to a language. Some IDEs can be extended to support additional languages.

Although some IDEs are implemented as an application, some are implemented as a library, often designed for a particular software platform. For example, although Eclipse is a platform for which there are many plugins that each provide an IDE experience, the core application does not.

While a modern IDE provides a GUI, there were IDEs before the availability of windowing systems like Windows and the X Window System (X11). For example, Turbo Pascal for DOS had a full-screen, text-based user experience.