Integrated development environment

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Anjuta, a C and C++ IDE for the GNOME environment
Anjuta, a C and C++ IDE for the GNOME environment

In computing, an integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, a compiler and/or interpreter, build automation tools, and (usually) a debugger. Sometimes a version control system and various tools are integrated to simplify the construction of a GUI. Many modern IDEs also have a class browser, an object inspector, and a class hierarchy diagram, for use with object oriented software development.

IDEs are designed to maximise programmer productivity by providing tightly-knit components with similar user interfaces, thus minimising the amount of mode switching the programmer must do comparing to loose, discrete collections of disparate development programs.

Typically an IDE is dedicated to a specific programming language, so as to provide a feature set which most closely matches the programming paradigms of the language. However, some multiple-language IDEs are in use, such as Eclipse, ActiveState Komodo, SlickEdit and recent versions of Microsoft Visual Studio.

Contents

An IDE is a contrast to unrelated command-line tools, such as vi, GCC or make. IDEs typically present a single program in which all development is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software. The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit, which theoretically reduces the time to learn a language, and increases developer productivity. It is also thought that the tight integration of development tasks can further increase productivity. For example, code can be compiled while being written, providing instant feedback on syntax errors. While most modern IDEs are graphical, IDEs in use before the advent of windowing systems (such as Microsoft Windows or X11) were text-based, using function keys or hotkeys to perform various tasks (Turbo Pascal is a common example).

GNU Emacs, an extensible editor which is commonly used as an IDE on Unix-like systems
GNU Emacs, an extensible editor which is commonly used as an IDE on Unix-like systems

IDEs initially became necessary when doing development in front of a console or terminal. Early languages did not have one, since they were prepared using flowcharts, coding forms, and keypunches before being submitted to a compiler. 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). Its IDE (part of the Dartmouth Time Sharing System) was command-based, and therefore did not look much like the menu-driven, graphical IDEs of today. However it seamlessly integrated editing, file management, compilation, debugging and execution in the manner characteristic of a modern IDE.

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.

Eclipse, a free software IDE written in Java
Eclipse, a free software IDE written in Java

There is growing interest in visual programming (not to be confused with Visual Basic or Visual C++). Visual IDEs allow users to create new applications by moving programming building blocks or code nodes to create flowcharts or structure diagrams which are then compiled or interpreted. These flowcharts often are based on the Unified Modeling Language.

This interface has been popularized with the Lego Mindstorms system, and is being actively pursued by a number of companies wishing to capitalize on the power of custom browsers like those found at Mozilla, and the power of distributed programming (cf. LabVIEW software). An early visual programming system, Max, was modelled after analog synthesizer design and has been used to develop real-time music performance software since the 1980s. Another early example was Prograph, a dataflow-based system originally developed for the Macintosh. The graphical programming environment "Grape" is used to program qfix robot kits.

This approach is also used in specialist software such as Openlab, where the end users want the flexibility of a full programming language, without the traditional learning curve associated with one.

An open source visual programming system is Mindscript, which has extended functionality for cryptology, database interfacing, etc.

Eclipse, an example for a multiple-language IDE has Java as a base installed language. It also has plugins for C/C++, Python, Perl, Ruby, Fortran, Cobol, PHP, JSP/Servlet, J2EE, OOD/OOP design tools and many more plugins. These all can be installed on the same IDE at the same time. They all have their own debugger and integrated IDE options.

Many Unix programmers argue that traditional command-line POSIX tools constitute an IDE, though one with a different style of interface and under the Unix environment. Many programmers still use makefiles and their derivatives. Also, many Unix programmers use Emacs or Vim, which integrate support for many of the standard Unix build tools. Data Display Debugger is intended to be an advanced graphical front-end for many text-based debugger standard tools.

Under Microsoft Windows, command-line tools for development are little known, most likely because Windows has emphasized a graphical approach. So, there are many commercial and non-commercial solutions, but each has a different design and so they tend to have compatibility problems. Yet, all major compiler vendors for Windows provide free copies of their command-line tools, including Microsoft (Visual C++ free version, Platform SDK, Microsoft .NET Framework SDK, nmake utility), CodeGear (bcc32 compiler, make utility), and GNU (gcc, gdb, GNU make).

IDEs have always been popular on Mac OS, going back to Macintosh Programmer's Workshop, Turbo Pascal and THINK C environments in the mid-1980s. Currently Mac OS X programmers can choose between a few IDEs, including native IDEs like Xcode, older IDEs like CodeWarrior, and open-source tools, such as Eclipse. ActiveState Komodo is a proprietary IDE supported on Mac OS.

Find more information on Integrated development environment by searching Wikipedia's sister projects
Dictionary definitions from Wiktionary
Textbooks from Wikibooks
Quotations from Wikiquote
Source texts from Wikisource
Images and media from Commons
News stories from Wikinews
Learning resources from Wikiversity
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.