You are on page 1of 4

Integrated development environment

From Wikipedia, the free encyclopedia

For other uses, see IDE.
Anjuta, a C and C++ IDE for the GNOME environment
An integrated development environment (IDE) is a software application that provi
des comprehensive facilities to computer programmers for software development. A
n IDE normally consists of a source code editor, build automation tools and a de
bugger. Most modern IDEs have intelligent code completion.
Some IDEs contain a compiler, interpreter, or both, such as NetBeans and Eclipse
; others do not, such as SharpDevelop and Lazarus. The boundary between an integ
rated development environment and other parts of the broader software developmen
t environment is not well-defined. Sometimes a version control system, or variou
s tools to simplify the construction of a Graphical User Interface (GUI), are in
tegrated. Many modern IDEs also have a class browser, an object browser, and a c
lass hierarchy diagram, for use in object-oriented software development.
Contents [hide]
1 Overview
2 History
3 Topics
3.1 Language support
3.2 Attitudes across different computing platforms
4 See also
5 References
Integrated development environments are designed to maximize programmer producti
vity by providing tight-knit components with similar user interfaces. IDEs prese
nt a single program in which all development is done. This program typically pro
vides many features for authoring, modifying, compiling, deploying and debugging
software. This contrasts with software development using unrelated tools, such
as vi, GCC or make.
One aim of the IDE is to reduce the configuration necessary to piece together mu
ltiple development utilities, instead providing the same set of capabilities as
a cohesive unit. Reducing that setup time can increase developer productivity, i
n cases where learning to use the IDE is faster than manually integrating all of
the individual tools. Tighter integration of all development tasks has the pote
ntial to improve overall productivity beyond just helping with setup tasks. For
example, code can be continuously parsed while it is being edited, providing ins
tant feedback when syntax errors are introduced. That can speed learning a new p
rogramming language and its associated libraries.
Some IDEs are dedicated to a specific programming language, allowing a feature s
et that most closely matches the programming paradigms of the language. However,
there are many multiple-language IDEs, such as Eclipse, ActiveState Komodo, Int
elliJ IDEA, MyEclipse, Oracle JDeveloper, NetBeans, Codenvy and Microsoft Visual
Studio. Xcode, Xojo and Delphi are dedicated to a closed language or set of pro
gramming languages.
While most modern IDEs are graphical, text-based IDEs such as Turbo Pascal were
in popular use before the widespread availability of windowing systems like Micr
osoft Windows and the X Window System (X11). They commonly use function keys or
hotkeys to execute frequently used commands or macros.
GNU Emacs, an extensible editor that is commonly used as an IDE on Unix-like sys

IDEs initially became possible when developing via a console or terminal. Early
systems could not support one, since programs were prepared using flowcharts, en
tering programs with punched cards (or paper tape, etc.) before submitting them
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 conso
le 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 pre
valent at 2015. However it integrated editing, file management, compilation, deb
ugging and execution in a manner consistent with a modern IDE.
Maestro I is a product from Softlab Munich and was the world's first integrated
development environment[1] 1975 for software. Maestro I was installed for 22,000
programmers worldwide. Until 1989, 6,000 installations existed in the Federal R
epublic of Germany. Maestro I was arguably the world leader in this field during
the 1970s and 1980s. Today one of the last Maestro I can be found in the Museum
of Information Technology at Arlington.
One of the first IDEs with a plug-in concept was Softbench. In 1995 Computerwoch
e commented that the use of an IDE was not well received by developers since it
would fence in their creativity.
As of March 2015, the most popular IDE's are Eclipse and Visual Studio.[2]
[3]Cite error: A <ref> tag is missing the closing </ref> (see the help page). </
Language support[edit]
Some IDEs support multiple languages, such as GNU Emacs based on C and Emacs Lis
p, and IntelliJ IDEA, Eclipse, MyEclipse or NetBeans, all based on Java, or Mono
Develop, based on C#.
Support for alternative languages is often provided by plugins, allowing them to
be installed on the same IDE at the same time. For example, Flycheck is a moder
n on-the-fly syntax checking extension for GNU Emacs 24 with support for 39 lang
uages.[4] Eclipse, and Netbeans have plugins for C/C++, Ada, GNAT (for example A
daGIDE), Perl, Python, Ruby, and PHP, which are selected between automatically b
ased on file extension, environment or project settings.
Attitudes across different computing platforms[edit]
Unix programmers can combine command-line POSIX tools into a complete developmen
t environment, capable of developing large programs such as the Linux kernel and
its environment.[5] The free software GNU tools (GNU Compiler Collection (GCC),
GNU Debugger (gdb), and GNU make) are available on many platforms, including Wi
ndows.[6] Developers who favor command-line oriented tools can use editors with
support for many of the standard Unix and GNU build tools, building an IDE with
programs like Emacs[7][8][9] or Vim. Data Display Debugger is intended to be an
advanced graphical front-end for many text-based debugger standard tools. Some p
rogrammers prefer managing makefiles and their derivatives to the similar code b
uilding tools included in a full IDE. For example, most contributors to the Post
greSQL database use make and gdb directly to develop new features.[10] Even when
building PostgreSQL for Microsoft Windows using Visual C++, Perl scripts are us
ed as a replacement for make rather than relying on any IDE features.[11] Some L
inux IDEs such as Geany attempt to provide a graphical front end to traditional
build operations.
On the various Microsoft Windows platforms, command-line tools for development a
re seldom used. Accordingly, there are many commercial and non-commercial produc
ts. However, each has a different design commonly creating incompatibilities. Mo
st major compiler vendors for Windows still provide free copies of their command

-line tools, including Microsoft (Visual C++, Platform SDK, .NET Framework SDK,
nmake utility), Embarcadero Technologies (bcc32 compiler, make utility).
IDEs have always been popular on the Apple Macintosh's Mac OS, dating back to Ma
cintosh Programmer's Workshop, Turbo Pascal, THINK Pascal and THINK C environmen
ts of the mid-1980s. Currently Mac OS X programmers can choose between native ID
Es like Xcode and open-source tools such as Eclipse and Netbeans. ActiveState Ko
modo is a proprietary multilanguage IDE supported on the Mac OS.
With the advent of cloud computing, some IDEs are available online and run withi
n web browsers.
See also[edit]
Portal icon
Computer programming portal
Wikimedia Commons has media related to Integrated development environmen
Comparison of integrated development environments
Computer-aided software engineering
Game integrated development environment
Multiple document interface#IDE-style interface (MDI)
Rapid application development (RAD)
Read eval print loop (REPL)
Software development kit (SDK)
Software engineering
Web integrated development environment
Requirements management
Documentation generation tools
Code analysis tools
Source code refactoring tools
Software building tools (the compiler, linker, etc., and the build automation to
ol used to control them)
Revision control, also called source repository (configuration management)
Problem reporting and bug tracking tools
Jump up ^ "Interaktives Programmieren als Systems-Schlager" from Computerwoche (
Jump up ^ Top IDE index
Jump up ^ === Visual programming === Visual programming is a usage scenario in w
hich an IDE is generally required. Visual IDEs allow users to create new applica
tions by moving programming, building blocks, or code nodes to create flowcharts
or structure diagrams that are then compiled or interpreted. These flowcharts o
ften are based on the Unified Modeling Language. This interface has been popular
ized 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 fo
und at Mozilla. KTechlab supports flowcode and is a popular opensource IDE and S
imulator for developing software for microcontrollers. Visual programming is als
o responsible for the power of distributed programming (cf. LabVIEW and EICASLAB
software). An early visual programming system, Max, was modelled after analog s
ynthesizer design and has been used to develop real-time music performance softw
are 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 special
ist software such as Openlab, where the end users want the flexibility of a full
programming language, without the traditional learning curve associated with on
Jump up ^
Jump up ^ Rehman, Christopher Paul, Christopher R. Paul. "The Linux Development
Platform: Configuring, Using and Maintaining a Complete Programming Environment"
. 2002. ISBN 0-13-009115-4

Jump up ^ "Use Emacs with Microsoft Visual C++ ... use Emacs as an IDE"
Jump up ^ "Emacs: the Free Software IDE"
Jump up ^ "Using Emacs as a Lisp IDE"
Jump up ^ "Emacs as a Perl IDE"
Jump up ^ PostgreSQL Developer FAQ
Jump up ^ PostgreSQL Installation from Source Code on Windows
[hide] v t e
Integrated development environments
C and C++
Anjuta C++Builder Code::Blocks CodeLite CodeWarrior Dev-C++ Eclipse GNAT Program
ming Studio IBM VisualAge KDevelop Kuzya MonoDevelop NetBeans Pelles C QDevelop
Qt Creator Sun Studio Ultimate++ Visual Studio Express wxDev-C++ Xcode
Android Studio BlueJ Codenvy Eclipse JetBrains IntelliJ IDEA Greenfoot KDevelop
JBuilder JCreator JDeveloper jGRASP MyEclipse NetBeans IBM Rational Application
Developer for WebSphere
Metrowerks CodeWarrior Pro for Java Kalimantan Sun Java Studio Creator (supersed
ed by NetBeans) Visual Age (superseded by Eclipse) Visual Caf (aka Espresso, supe
rseded by JBuilder) Visual J++ Xelfi (became NetBeans)
MonoDevelop SharpDevelop Visual Studio Express
Adobe Flash Builder FlashDevelop Powerflasher FDT