Integrated development environment
From Wikipedia, the free encyclopedia
- For other uses, see IDE.
An integrated development environment (IDE), also known as integrated design environment and integrated debugging environment, is a type of computer software that assists computer programmers in developing software.
IDEs normally consist 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 to simplify the construction of a GUI are integrated as well. Many modern IDEs also integrate a class browser, an object inspector and a class hierarchy diagram, for use with object oriented software development. Although some multiple-language IDEs are in use, such as the Eclipse IDE, NetBeans or Microsoft Visual Studio, typically an IDE is devoted to a specific programming language, as in the Visual Basic IDE.
An example for a multiple-language IDE, Eclipse's base installed language is Java. 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.
Contents |
[edit] History
IDEs initially became necessary when doing development in front of 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. 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 modern IDE
Today, the term "IDE" is a contrast to unrelated command-line tools, such as vi, emacs, or make. While one could think of Unix as an IDE, most developers think of an IDE as being a single program with an IDE-style interface, in which all development is done. This program provides typically large numbers of features for authoring, modifying, compiling, deploying and debugging software. The idea being that the IDE abstracts 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 various development tasks can lead to further productivity increases (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).
An interesting development is the emergence and popularization of Open Source IDE such as Eclipse and NetBeans in recent years. The combination of the Open Source philosophy with an open, extensible framework, encourages the creation of a community of people to extend the capabilities of the IDE, allowing even exotic languages and applications to be supported by the environment.
[edit] Visual programming
There is also growing interest in visual programming (not to be confused with Visual Basic or Visual C++). These 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). One of the first Visual Programming systems, 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 approach is the visual programing language Mindscript, with extended functionality for cryptology, database interfacing, etc.
[edit] Arguments
Many Unix programmers argue that the existing command-line GNU tools are in themselves an IDE, though with a different style of interface and under the Unix environment, many programmers still use makefiles and their derivatives. But even on Unix systems, graphical IDEs are becoming increasingly popular, although almost all of them are built on top of the text-based utilities. Unix programs that use the standard GNU tools are easily ported to other operating systems, including Windows and Mac OS X, because most of these tools have been ported, using Cygwin or some other method like MinGW on Windows. Similarly, 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 Windows, command-line tools for development are not well known, most likely because traditionally Windows emphasizes a graphical approach. As a result, there are multiple commercial and non-commercial solutions, but each of them has a different design and as a result they tend to have compatibility problems. That said, all the 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), Borland (bcc32 compiler, make utility), and GNU (gcc, gdb, GNU make).
IDEs have always been popular on the Mac, going back to Macintosh Programmer's Workshop, Turbo Pascal and THINK C environments in the mid-1980s. Currently Mac OS X programmers are blessed with a few IDEs, including native IDEs like Xcode, older IDEs like CodeWarrior, and open-source ports of Eclipse (and others).
[edit] See also
- Collaborative development environment (CDE)
- Comparison of integrated development environments
- List 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
- IDE-style interface