Search Our Knowledge Base
What Is An Integrated Development Environment (IDE)?
Integrated development environments (IDE) are applications that facilitates the development of other applications. Designed to encompass all programming tasks in one application, one of the main benefits of an IDE is that they offer a central interface with all the tools a developer needs, including:
- Code editor: Designed for writing and editing source code, these editors are distinguished from text editors because work to either simplify or enhance the process of writing and editing of code for developers
- Compiler: Compilers transform source code that is written in a human readable/writable language in a form that computers can execute.
- Debugger: Debuggers are used during testing and can help developers debug their application programs.
- Build automation tools: These can help automate developer tasks that are more common to save time.
In addition, some IDEs may also include:
- Class browser: Used to study and reference properties of an object-oriented class hierarchy.
- Object browser: Used to inspect objects instantiated in a running application program.
- Class hierarchy diagram: Allows developers to visualize the structure of object-oriented programming code.
The IDE may be a stand-alone application, though it might also be included as part of one or more compatible applications.
History of IDE
Prior to IDEs, programmers wrote their programs in text editors. This involved writing and saving an application in the text editor before running run the compiler, taking note of any error messages, and then going back to the text editor to revise their code.
It wasn’t until 1983 that Borland Ltd. acquired a Pascal compiler and published it as TurboPascal, featuring an integrated editor and compiler for the very first time.
TurboPascal may have launched the idea of an integrated development environment, but many believe Microsoft’s Visual Basic (VB), which was launched in 1991, was actually the first real IDE in history. Built in the older BASIC language, Visual Basic was a popular programming language through the 1980s. The rise of Visual Basic meant that programming could instead be thought of in graphical terms, and noteworthy productivity benefits became apparent.
The Benefits of Using IDEs
Integrated development environments work to improve developer productivity. These IDEs improve productivity by lessening setup time, boosting the speed of development tasks, keeping developers up to date with the latest best practices and threats, and standardizing the development process so that everyone can get on board.
- Faster setup: Programmers need to spend time configuring multiple development tools without an IDE interface in place. By integrating an IDE, programmers can have the same set of capabilities in one place without needing to constantly switch tools.
- Faster development tasks: Tighter integration of development tasks means boosted developer productivity. For example, developers can parse code and check syntax while editing, which allows for instant feedback as syntax errors are introduced. Programmers no longer need to switch between apps to finish tasks. Additionally, the tools and features of the IDE help programmers organize resources, prevent mistakes, and implement shortcuts.
For even more benefit, IDEs can help restructure the development process by promoting holistic strategizing. They push programmers to think of their actions in terms of the entire development lifecycle (SDLC), as opposed to a series of isolated tasks.
- Continual learning: Another benefit is the ability to stay up to date and educated. As an example, an IDE’s help topics are constantly updated, along with new samples, project templates, and more. Developers who learn constantly and stay current on best practices are more likely to add value to their team and to the enterprise, boosting productivity.
- Standardization: It also regulates the development process, helping programmers work together seamlessly and assisting new hires with getting up to speed so they can hit the ground running.
Languages That Are Supported by IDE
In some cases, IDEs are dedicated to a certain programming language or to a set of languages, which creates a feature set that aligns with the specifics of that language. For example, Xcode for the Objective-C and Swift languages, Cocoa and Cocoa Touch APIs.
Developers can often find support for alternative languages through plugins. For example, Flycheck is a syntax checking extension for GNU Emacs 24 with support for 39 languages.
Different Types of IDE
There are many ways developers work to product the different types of code they produce, which means there is also a variety of IDEs to use. Some are designed to work with one specific language, while others are cloud-based IDEs, IDEs customized for the production of mobile applications or for HTML, and also IDEs that are meant specifically for Apple or Microsoft development.
The multi-language IDEs – like Eclipse, Aptana, Komodo, NetBeans, and Geany – support multiple programming languages.
- Eclipse: Supports C, C++, Perl, Python, Ruby, PHP, Java and others. It is a free and open source editor for many development frameworks. Although it began as a Java development environment, it has expanded through plugins. This IDE is managed and directed by the Eclipse.org Consortium.
- Geany: Supports C, PHP, Java, HTML, Perl, Python, Pascal and many more. This is a very customizable environment with a big set of plugins.
IDE for Mobile Development Processes
Specifically for mobile development, there are IDEs that include PhoneGap and Titanium Mobile from Appcelerator.
A lot of IDEs, particularly multi-language IDEs, have mobile-development plugins. Eclipse, for example, has this functionality.
IDEs for developing HTML applications are some of the most popular IDEs around. For example, DreamWeaver, HomeSite, and FrontPage automate numerous tasks involved in the process of website development.
Starting to become more mainstream, cloud-based IDEs are something to keep an eye on. The capabilities of such web-based IDEs are growing rapidly; for that reason, most major vendors will likely need to offer one if they want to stay competitive in their markets. Cloud IDEs are important because they give programmers access to their code from anywhere.
IDE That Are Specific to Apple or Microsoft
The following IDEs accommodate programmers who are working in Microsoft or Apple environments:
- Visual Studio: Supports VB.NET, Visual C++, C#, F# and more. Visual Studio is Microsoft's IDE, designed to create apps for the Microsoft platform.
- MonoDevelop: Supports Visual Basic, C/C++, C#, and additional .NET languages.
- Xcode: Supports Swift and Objective-C languages, as well as Cocoa and Cocoa Touch APIs. This IDE is solely for creating iOS and Mac applications. It includes a GUI builder and an iPhone/iPad simulator.
IDE Made for Certain Languages
There are specific IDEs that cater to programmers who work in one language. These include Jikes and Jcreator for Java, CodeLite and C-Free for C/C++, RubyMine for Ruby/Rails, and Idle for Python.
Application security and the integrated development environment.
While application security is a critical priority for development teams, managing security testing within an integrated development environment has often been a significant challenge. Developers who are pressing to meet deadlines in agile or waterfall software development processes are often already managing a variety of separate tools. New AppSec technology that lacks flexible APIs and can’t easily be used within an integrated development environment will often see low adoption, leading to greater security challenges and more difficulty meeting the requirements of regulatory frameworks such as HIPAA and SarbOx compliance.
To improve application security, Veracode offers a suite of desktop, web and mobile app security testing solutions in a cloud-based service that can be seamlessly combined in an integrated development environment to find and fix flaws at any point in the SDLC.
Veracode solutions for the integrated development environment
Veracode is a leading provider of application security testing technology that enables enterprises and development teams to ensure the security of software that is built, bought and assembled. As an easy-to-use, SaaS-based service, Veracode allows developers to test for vulnerabilities throughout the development process without having to open a new environment or learn a new tool. The Veracode Application Security Platform integrates with the developer’s integrated development environment as well as the security and risk-tracking tools that developers already use.Flexible APIs enable development teams to create custom integrations or use community integrations built by the open source community and other technology partners.
Veracode integrates with Eclipse, IBM RAD and other Eclipse-based IDEs, IntelliJ, and Visual Studio. Before checking in code, Veracode allows developers to start a scan, review findings and triage results all from within their integrated development environment.
Veracode’s testing solutions for the integrated development environment include Static Analysis, Web Application Scanning, Software Composition Analysis, Vendor Application Security Testing and more.
Veracode Static Analysis IDE Scan: testing within the integrated development environment.
Veracode Static Analysis IDE Scan is a security testing solution that brings scanning right into an integrated development environment to test for flaws as developers write code. Veracode Static Analysis IDE Scan runs in the background of an integrated development environment and provides immediate feedback on potential vulnerabilities, highlighting code that may be flawed and providing contextual tips on how to fix it. Veracode Static Analysis IDE Scan provides insight into the type of flaw, such as SQL injection or buffer overflow, as well as the severity of the flaw and the exact line of code where the flaw is located.
Learn more about security testing in the integrated development environment with Veracode, or consult Veracode’s AppSec knowledge base to get answers to questions like “What is an integrated development environment?” and “What is a worm?"