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 maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has much less mode switching to do than when using discrete 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, recent versions of NetBeans, and Microsoft Visual Studio.
Design
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).
History
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.
Visual programming
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.
Language support
Eclipse, an example of a multiple-language IDE, has Java as a base installed language. It also has plugins for C/C++, Python, Perl, Ruby, Groovy, 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, which sometimes leads to grave inconsistencies in the user interface itself due to the overwhelming amount of customizability and keyboard shortcuts.
Attitudes across different computing platforms
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. 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 and Netbeans. ActiveState Komodo is a proprietary IDE supported on Mac OS.
Some open-source IDEs such as Eclipse and Netbeans, which themselves are developed with a cross-platform language (Java), run on multiple platforms including Windows, Linux, and Mac OS.
See also
- Comparison of integrated development environments
- Software development kit (SDK)
- Utility program
- Software engineering
- List of software engineering topics
- Computer-aided software engineering
- Rapid application development
- Read-eval-print loop
- Multiple document interface#IDE-style interface
References
This article is licensed under the GNU Free Documentation License.
Last updated on Sunday July 06, 2008 at 06:26:06 PDT (GMT -0700)
View this article at Wikipedia.org - Edit this article at Wikipedia.org - Donate to the Wikimedia Foundation
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 maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has much less mode switching to do than when using discrete 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, recent versions of NetBeans, and Microsoft Visual Studio.
Design
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).
History
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.
Visual programming
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.
Language support
Eclipse, an example of a multiple-language IDE, has Java as a base installed language. It also has plugins for C/C++, Python, Perl, Ruby, Groovy, 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, which sometimes leads to grave inconsistencies in the user interface itself due to the overwhelming amount of customizability and keyboard shortcuts.
Attitudes across different computing platforms
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. 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 and Netbeans. ActiveState Komodo is a proprietary IDE supported on Mac OS.
Some open-source IDEs such as Eclipse and Netbeans, which themselves are developed with a cross-platform language (Java), run on multiple platforms including Windows, Linux, and Mac OS.
See also
- Comparison of integrated development environments
- Software development kit (SDK)
- Utility program
- Software engineering
- List of software engineering topics
- Computer-aided software engineering
- Rapid application development
- Read-eval-print loop
- Multiple document interface#IDE-style interface
References
This article is licensed under the GNU Free Documentation License.
Last updated on Sunday July 06, 2008 at 06:26:06 PDT (GMT -0700)
View this article at Wikipedia.org - Edit this article at Wikipedia.org - Donate to the Wikimedia Foundation
According to the included README, its main features are:
- Multi-window text editor with syntax highlighting, autocompletion, smart indent and other.
- Python shell with syntax highlighting.
- Integrated debugger with stepping, persistent breakpoints, and call stack visibility.
Python is named after the British comedy group Monty Python. Therefore, the name IDLE can be seen as an allusion to Eric Idle, one of the group’s founding members. See also the Eric Python IDE, which could be such an allusion, too.
This article is licensed under the GNU Free Documentation License.
Last updated on Wednesday June 11, 2008 at 06:00:14 PDT (GMT -0700)
View this article at Wikipedia.org - Edit this article at Wikipedia.org - Donate to the Wikimedia Foundation
Copyright © 2008, Dictionary.com, LLC. All rights reserved.













