An integrated development environment (IDE) is a software suite that consolidates basic tools required to write and test software.
Developers use numerous tools throughout software code creation, building and testing. Development tools often include text editors, code libraries, compilers and test platforms. Without an IDE, a developer must select, deploy, integrate and manage all of these tools separately. An IDE brings many of those development-related tools together as a single framework, application or service. The integrated toolset is designed to simplify software development and can identify and minimize coding mistakes and typos.
Some IDEs are open source, while others are commercial offerings. An IDE can be a standalone application or it can be part of a larger package.
Common features of integrated development environments
An IDE typically contains a code editor, a compiler or interpreter, and a debugger, accessed through a single graphical user interface (GUI). The user writes and edits source code in the code editor. The compiler translates the source code into a readable language that is executable for a computer. And the debugger tests the software to solve any issues or bugs.
An IDE can also contain features such as programmable editors, object and data modeling, unit testing, a source code library and build automation tools.
An IDE's toolbar looks much like a word processor's toolbar. The toolbar facilitates color-based organization, source-code formatting, error diagnostics and reporting, and intelligent code completion. Through an IDE's interface, a developer or team of developers can compile and execute code incrementally and manage changes to source code in a uniform manner. IDEs are typically designed to integrate with third-party version control libraries, such as GitHub and Apache's Subversion.
An IDE can support model-driven development (MDD). A developer working with an IDE starts with a model, which the IDE translates into suitable code. The IDE then debugs and tests the model-driven code, with a high level of automation. Once the build is successful and properly tested, it can be deployed for further testing through the IDE or other tools outside of the IDE.
Benefits of using IDEs
An IDE can improve the productivity of software developers thanks to fast setup and standardization across tools.
Without an IDE, developers spend time deciding what tools to use for various tasks, configuring the tools and learning how to use them. Many or even all of the necessary dev-test tools are included in one integrated development environment.
IDEs are also designed with all their tools under one user interface. An IDE can standardize the development process by organizing the necessary features for software development in the UI.
Types of IDEs and available tools
Developers must match the IDE they use with the type of application they want to produce. For example, if a developer wants to create an application on iOS, then they need an IDE that supports Apple's Swift programming language. Types of IDEs range from web-based and cloud-based to mobile, language-specific or multi-language.
An IDE for mobile development normally works with code that runs on iOS or Android devices. Xamarin is an example of a cross-platform mobile IDE, which means it can create code for multiple mobile platform types. For example, a developer can write a feature in C and Xamarin translates it into Swift for iOS and Java for Android. Additionally, Xamarin offers UI tests and it can distribute beta tests to users.
IDEs such as C-Free -- which supports a code editor, debugger and an environment to run C and C++ code -- are language specific. Other IDEs support multiple languages, such as previously mentioned Cloud9 and Visual Studio Code. More popular IDE tools include NetBeans, Eclipse and IntelliJ IDEA.
Disambiguation: The abbreviation IDE is also used to refer to integrated drive electronics.
What to look for in Microsoft's Visual Studio IDE
Discover more about Apple's Xcode IDE