An integrated development environment (IDE) is an application that facilitates application development. IDEs are designed to encompass all programming tasks in one application. Therefore, IDEs offer a central interface featuring all the tools a developer needs, including the following:
- Code editor: This feature is a text editor designed for writing and editing source code. Source code editors are distinguished from text editors because they enhance or simplify the writing and editing of code.
- Compiler: This tool transforms source code written in a human readable/writable language into a form executable by a computer.
- Debugger: This tool is used during testing to help debug application programs.
- Build automation tools: These tools automate common developer tasks.
In addition, some IDEs might also include the following:
- Class browser: This tool is used to examine and reference the properties of an object-oriented class hierarchy.
- Object browser: This feature is used to examine the objects instantiated in a running application program.
- Class hierarchy diagram: This tool allows the programmer to visualize the structure of object-oriented programming code.
The IDE may be a stand-alone application or may be included as part of one or more compatible applications.
History of IDEs
Before IDEs, developers wrote their programs in text editors. They would write and save an application in a text editor; then run the compiler, taking note of the error messages; then go back to the text editor to revise the code.
In 1983, Borland Ltd. acquired a Pascal compiler and released it as TurboPascal, which featured, for the first time, an integrated editor and compiler.
While TurboPascal launched the idea of an integrated development environment, many believe Microsoft’s Visual Basic (VB), launched in 1991, was the first real IDE. Visual Basic was built on the older BASIC language, which was a popular programming language throughout the 1980s. With the emergence of Visual Basic, programming could be thought of in graphical terms, and significant productivity benefits emerged.
Benefits of IDEs
The overall goal and main benefit of an integrated development environment is improved developer productivity. IDEs boost productivity by reducing setup time, increasing the speed of development tasks, keeping developers up to date and standardizing the development process.
- Faster setup: Without an IDE interface, developers would need to spend time configuring multiple development tools. With the application integration of an IDE, developers have the same set of capabilities in one place, without the need for constantly switching tools.
- Faster development tasks: Tighter integration of all development tasks improves developer productivity. For example, code can be parsed and syntax checked while being edited, providing instant feedback when syntax errors are introduced. Developers don’t need to switch between applications to complete tasks. In addition, the IDE’s tools and features helps developers organize resources, prevent mistakes and take shortcuts.
Further, IDEs streamline development by encouraging holistic thinking. They force developers to think of their actions in terms of the entire development lifecycle, rather than as a series of discrete tasks.
- Continual learning: Staying up to date and educated is another benefit. For instance, the IDE’s help topics are constantly being updated, as well as new samples, project templates, etc. Programmers who are continually learning and current with best practices are more likely to contribute value to the team and the enterprise, and to boost productivity.
- Standardization: The IDE interface standardizes the development process, which helps developers work together more smoothly and helps new hires get up to speed more quickly.
Languages Supported by IDEs
Some IDEs are dedicated to a specific programming language or set of languages, creating a feature set that aligns with the particulars of that language. For instance, Xcode for the Objective-C and Swift languages, Cocoa and Cocoa Touch APIs.
Support for alternative languages is often provided by plugins. For example, Flycheck is a syntax checking extension for GNU Emacs 24 with support for 39 languages.
Different Types of IDEs
There are a variety of different IDEs, catering to the many different ways developers work and the different types of code they produce. There are IDEs that are designed to work with one specific language, cloud-based IDEs, IDEs customized for the development of mobile applications or for HTML, and IDEs meant specifically for Apple development or Microsoft development.
Multi-language IDEs, such as Eclipse, NetBeans, Komodo, Aptana and Geany, support multiple programming languages.
- Eclipse: Supports C, C++, Python, Perl, PHP, Java, Ruby and more. This free and open source editor is the model for many development frameworks. Eclipse began as a Java development environment and has expanded through plugins. Eclipse is managed and directed by the Eclipse.org Consortium.
- Geany: Supports C, Java, PHP, HTML, Python, Perl, Pascal and many more. This is a highly customizable environment with a large set of plugins
IDEs for Mobile Development
There are IDEs specifically for mobile development, including PhoneGap and Appcelerator's Titanium Mobile.
Many IDEs, especially those that are multi-language, have mobile-development plugins. For instance, Eclipse has this functionality.
Some of the most popular IDEs are those for developing HTML applications. For example, IDEs such as HomeSite, DreamWeaver or FrontPage automate many tasks involved in web site development.
IDEs Specific to Microsoft or Apple
These IDEs cater to those working in Microsoft or Apple environments:
- Visual Studio: Supports Visual C++, VB.NET, C#, F# and others. Visual Studio is Microsoft's IDE and is designed to create applications for the Microsoft platform.
- MonoDevelop: Supports C/C++, Visual Basic, C# and other .NET languages.
- Xcode: Supports the Objective-C and Swift languages, and Cocoa and Cocoa Touch APIs. This IDE is just for creating iOS and Mac applications and includes an iPhone/iPad simulator and GUI builder.
IDEs for Specific Languages
Some IDEs cater to developers working in a single language. These include CodeLite and C-Free for C/C++, Jikes and Jcreator for Java, Idle for Python, and RubyMine for Ruby/Rails.
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 ofregulatory 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’sintegrated 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 Greenlight: testing within the integrated development environment.
Veracode Greenlight is a security testing solution that brings scanning right into an integrated development environment to test for flaws as developers write code. Veracode Greenlight 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. Greenlight 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?”