| Part of a series on |
| Software development |
|---|
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 a 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. [a]
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.
IDEs initially became possible when developing via a console or terminal. Early systems could not support one, since programs were submitted to a compiler or assembler via punched cards, paper tape, etc. Dartmouth BASIC was the first language to be created with an IDE (and was also the first to be designed for use while sitting in front of a console or terminal).[ citation needed ] Its IDE (part of the Dartmouth Time-Sharing System) was command-based, and therefore did not look much like the menu-driven, graphical IDEs popular after the advent of the graphical user interface. However it integrated editing, file management, compilation, debugging and execution in a manner consistent with a modern IDE.
Maestro I is a product from Softlab Munich and was the world's first integrated development environment [1] for software. Maestro I was installed for 22,000 programmers worldwide. Until 1989, 6,000 installations existed in the Federal Republic of Germany. Maestro was arguably the world leader in this field during the 1970s and 1980s. Today one of the last Maestro I can be found in the Museum of Information Technology at Arlington in Texas.
One of the first IDEs with a plug-in concept was Softbench. In 1995 Computerwoche commented that the use of an IDE was not well received by developers since it would fence in their creativity.
As of August 2023 [update] , the most commonly searched for IDEs on Google Search were Visual Studio, Visual Studio Code, and Eclipse. [2]
Features commonly found in an IDE include:
For a long time and still somewhat today, IDEs are used more commonly in Windows environments than on Unix-like environments. A notable exception is Apple platforms. IDEs have been popular on classic Mac OS and macOS, dating back to Macintosh Programmer's Workshop, Turbo Pascal, THINK Pascal and THINK C environments of the mid-1980s. Currently, macOS programmers can choose between native IDEs like Xcode and third-party tools such as Eclipse, Netbeans and ActiveState Komodo.
Instead of using an IDE, developing software for a Unix-like environment often involves using various command-line tools [8] [9] such as the GNU toolchain (including GCC, GDB, and make) [10] and an text editor such as Emacs [11] [12] [13] or Vim. Some programmers prefer managing makefiles (and similar build files) over the build configuration experience presented by an IDE. For example, most contributors to the PostgreSQL database use make and GDB directly. [14] Even when building PostgreSQL for Windows via Visual C++, Perl scripts are used as a replacement for make rather than relying on any IDE features. [15] Some Linux IDEs such as Geany attempt to provide a graphical front end to traditional build operations. Data Display Debugger is graphical front-end for many text-based debugger tools.
An online integrated development environment, also known as a web IDE or cloud IDE, is a browser based IDE that allows for software development or web development. [16] An online IDE can be accessed from a web browser, allowing for a portable work environment. An online IDE does not usually contain all of the same features as a traditional or desktop IDE although all of the basic IDE features, such as syntax highlighting, are typically present.
A Mobile-Based Integrated Development Environment (IDE) is a software application that provides a comprehensive suite of tools for software development on mobile platforms. Unlike traditional desktop IDEs, mobile-based IDEs are designed to run on smartphones and tablets, allowing developers to write, debug, and deploy code directly from their mobile devices.
As AI-Assistance is increasing in IDEs, the concept of Agentic Development Environment(ADE) began to appear. agents not only suggest code completions but explain code, analyze bugs, suggest solutions, plan them and implement them. Some ADEs are plugins in regular IDEs as GitHub Copilot, Cline and Continue for Visual Studio Code, while some are deeply integrated as Windsurf, cursor and Google Antigravity. Zed Editor also has optional AI, while the upcoming Jetbrains Fleet Editor was cancelled in favor of an ADE called Jetbrains Air that is based on it. [17]