Integrated development environment
Encyclopedia
An integrated development environment (IDE) (also known as integrated design environment, integrated debugging environment or interactive development environment) is a software application that provides comprehensive facilities to computer programmers for software development
. An IDE normally consists of:
The boundary between an integrated development environment and other parts of the broader software development environment is not well-defined. 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
.
s. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.
Typically an IDE is dedicated to a specific programming language
, allowing a feature set that most closely matches the programming paradigm
s of the language. However, there are some multiple-language IDEs, such as Eclipse
, ActiveState Komodo
, IntelliJ IDEA
, Oracle JDeveloper, recent versions of NetBeans
, Microsoft Visual Studio
, Genuitec
MyEclipse
, WinDev
, and Xcode
.
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 parsed 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). This contrasts with software development using unrelated tools, such as vi
, GCC
or make.
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 prevalent today. However it integrated editing, file management, compilation, debugging 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 1975 for software. Maestro I
was installed for 22,000 programmers worldwide. Until 1989, 6,000 installations existed in the Federal Republic 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 Computerwoche commented that the use of an IDE was not well received by developers since it would fence in their creativity.
.
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
. KTechlab
supports flowcode and is a popular opensource IDE and Simulator for developing software for microcontrollers. Visual programming is also responsible for the power of distributed programming (cf. LabVIEW
and EICASLAB
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,
, IntelliJ IDEA
, MyEclipse
or NetBeans
, all based on Java
, or MonoDevelop
, 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, Eclipse
and Netbeans
have plugins for C
/C++
, Ada
, GNAT
(for example AdaGIDE
), Perl, Python
, Ruby
, and PHP
, among other languages in use.
programmers argue that traditional command-line POSIX
tools constitute a complete development environment, 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 integrates 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
.
On the various Microsoft Windows
platforms, command-line tools for development are seldom used. Accordingly, there are many commercial and non-commercial solutions, however each has a different design commonly creating incompatibilities. Most major compiler vendors for Windows still provide free copies of their command-line tools, including Microsoft
(Visual C++, Platform SDK, Microsoft .NET Framework
SDK, nmake utility), Embarcadero Technologies
(bcc32 compiler, make utility).
Additionally, the free software GNU
tools (gcc
, gdb, GNU make) are available on many platforms, including Windows etc.
IDEs have always been popular on the Apple Macintosh's Mac OS
, dating back to Macintosh Programmer's Workshop
, Turbo Pascal
, THINK Pascal and THINK C
environments in the mid-1980s. Currently Mac OS X programmers can choose between limited IDEs, including native IDEs like Xcode
, older IDEs like CodeWarrior
, newer IDEs like MyEclipse
, and open-source tools, such as Eclipse
and Netbeans
. ActiveState Komodo
is a proprietary IDE supported on the Mac OS.
Software development
Software development is the development of a software product...
. An IDE normally consists of:
- a source code editorSource code editorA source code editor is a text editor program designed specifically for editing source code of computer programs by programmers. It may be a standalone application or it may be built into an integrated development environment ....
- a compilerCompilerA compiler is a computer program that transforms source code written in a programming language into another computer language...
and/or an interpreterInterpreter (computing)In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language... - build automationBuild AutomationBuild automation is the act of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities including things like:* compiling computer source code into binary code* packaging binary code* running tests...
tools - a debuggerDebuggerA debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...
The boundary between an integrated development environment and other parts of the broader software development environment is not well-defined. Sometimes a version control system and various tools are integrated to simplify the construction of a GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
. Many modern IDEs also have a class browser
Class browser
A class browser is a feature of an integrated development environment that allows the programmer to browse, navigate, or visualize the structure of object-oriented programming code.- History :...
, an object inspector, and a class hierarchy
Class hierarchy
As in taxonomy, the classifications of species, a class hierarchy in computer science is a classification of object types, denoting objects as the instantiations of classes inter-relating the various classes by relationships such as "inherits", "extends", "is an abstraction of", "an interface...
diagram
Diagram
A diagram is a two-dimensional geometric symbolic representation of information according to some visualization technique. Sometimes, the technique uses a three-dimensional visualization which is then projected onto the two-dimensional surface...
, for use with object-oriented software development
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
.
Overview
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaceUser interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
s. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.
Typically an IDE is dedicated to a specific programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
, allowing a feature set that most closely matches the programming paradigm
Programming paradigm
A programming paradigm is a fundamental style of computer programming. Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation A programming paradigm is a fundamental style of computer programming. (Compare with a...
s of the language. However, there are some multiple-language IDEs, such as Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
, ActiveState Komodo
ActiveState Komodo
Komodo Edit is a highly regarded free text editor for dynamic programming languages. Introduced in January 2007, with the release of version 4.3, Komodo Edit is built on top of the Open Komodo project...
, IntelliJ IDEA
IntelliJ IDEA
IntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ."-History:The first version of IntelliJ IDEA was released in January 2001, and at the time was the only available Java IDE with advanced code navigation and code refactoring capabilities...
, Oracle JDeveloper, recent versions of NetBeans
NetBeans
NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...
, Microsoft Visual Studio
Microsoft Visual Studio
Microsoft Visual Studio is an integrated development environment from Microsoft. It is used to develop console and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all...
, Genuitec
Genuitec
Genuitec, LLC is a software development company that operates as an entirely virtual organization. It is best known for its Integrated development environment, MyEclipse, and Application Lifecycle Management and software delivery technologies Pulse ....
MyEclipse
MyEclipse
MyEclipse is a commercially available Java EE and Ajax IDE created and maintained by the company Genuitec, a founding member of the Eclipse Foundation....
, WinDev
WinDev
WinDev is an integrated development environment fourth generation language , first published by PC SOFT in 1993, which is based upon a run-time engine . It uses a 4GL known as WLanguage. The tools enables a predetermined set of standard forms and algorithms to be used in an automated fashion to...
, and Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...
.
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 parsed 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
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
or X11) were text-based, using function keys or hotkeys to perform various tasks (Turbo Pascal
Turbo Pascal
Turbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...
is a common example). This contrasts with software development using unrelated tools, such as vi
Vi
vi is a screen-oriented text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language supported within these programs, is described by the Single Unix Specification and POSIX.The original code for vi...
, GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
or make.
History
IDEs initially became possible when developing via a console or terminal. Early systems could not support one, since programs were prepared using flowcharts, entering programs with punched cards (or paper tape, etc.) before submitting them to a compiler. Dartmouth BASICDartmouth BASIC
Dartmouth BASIC is the original version of the BASIC programming language. It is so named because it was designed and implemented at Dartmouth College...
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
Dartmouth Time Sharing System
The Dartmouth Time-Sharing System, or DTSS for short, was the first large-scale time-sharing system to be implemented successfully. DTSS was inspired by a PDP-1-based time-sharing system at Bolt, Beranek and Newman. In 1962, John Kemeny and Thomas Kurtz at Dartmouth College submitted a grant for...
) was command-based, and therefore did not look much like the menu-driven, graphical IDEs prevalent today. However it integrated editing, file management, compilation, debugging and execution in a manner consistent with a modern IDE.
Maestro I
Maestro I
Maestro I from Softlab Munich was the world's first Integrated development environment for software.Originally named "Program development system terminal," or "PET" At one time there were 22,000 installations worldwide...
is a product from Softlab Munich and was the world's first integrated development environment 1975 for software. Maestro I
Maestro I
Maestro I from Softlab Munich was the world's first Integrated development environment for software.Originally named "Program development system terminal," or "PET" At one time there were 22,000 installations worldwide...
was installed for 22,000 programmers worldwide. Until 1989, 6,000 installations existed in the Federal Republic of Germany
West Germany
West Germany is the common English, but not official, name for the Federal Republic of Germany or FRG in the period between its creation in May 1949 to German reunification on 3 October 1990....
. Maestro I
Maestro I
Maestro I from Softlab Munich was the world's first Integrated development environment for software.Originally named "Program development system terminal," or "PET" At one time there were 22,000 installations worldwide...
was arguably the world leader in this field during the 1970s and 1980s. Today one of the last Maestro I
Maestro I
Maestro I from Softlab Munich was the world's first Integrated development environment for software.Originally named "Program development system terminal," or "PET" At one time there were 22,000 installations worldwide...
can be found in the Museum of Information Technology at Arlington.
One of the first IDEs with a plug-in concept was Softbench
Softbench
HP Softbench was an integrated CASE tool based on the UNIX operating system, UNIX tools and the X Window System.The main ideas were:* Tools and data can reside on many different systems across the network...
. 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
Visual programming is a usage scenario in which an IDE is generally required. Visual IDEs allow users to create new applications by moving programming, building blocks, or code nodes to create flowcharts or structure diagrams that are then compiled or interpreted. These flowcharts often are based on the Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
.
This interface has been popularized with the Lego Mindstorms
Lego Mindstorms
The LEGO Mindstorm series of kits contain software and hardware to create small, customizable and programmable robots. They include a programmable 'Brick' computer that controls the system, a set of modular sensors and motors, and LEGO parts from the Technics line to create the mechanical...
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
Mozilla
Mozilla is a term used in a number of ways in relation to the Mozilla.org project and the Mozilla Foundation, their defunct commercial predecessor Netscape Communications Corporation, and their related application software....
. KTechlab
KTechLab
KTechlab is an Open Source IDE for electronic and PIC microcontroller circuit design and simulation. Featuring an extensive circuit designer with autoroutingand simulation of all common electronic components and logic elements....
supports flowcode and is a popular opensource IDE and Simulator for developing software for microcontrollers. Visual programming is also responsible for the power of distributed programming (cf. LabVIEW
LabVIEW
LabVIEW is a system design platform and development environment for a visual programming language from National Instruments. LabVIEW provides engineers and scientists with the tools needed to create and deploy measurement and control systems.The graphical language is named "G"...
and EICASLAB
EICASLAB
EICASLAB is a software suite providing a laboratory for automatic control design and time-series forecasting developed as final output of the European ACODUASIS Project IPS-2001-42068 funded by the European Community within the Innovation Programme...
software). An early visual programming system, Max
Max (software)
Max is a visual programming language for music and multimedia developed and maintained by San Francisco-based software company Cycling '74. During its 20-year history, it has been widely used by composers, performers, software designers, researchers, and artists for creating innovative recordings,...
, was modelled after analog synthesizer
Synthesizer
A synthesizer is an electronic instrument capable of producing sounds by generating electrical signals of different frequencies. These electrical signals are played through a loudspeaker or set of headphones...
design and has been used to develop real-time music performance software since the 1980s. Another early example was Prograph
Prograph
Prograph is a visual, object-oriented, dataflow, multiparadigm programming language that uses iconic symbols to represent actions to be taken on data. Commercial Prograph software development environments such as Prograph Classic and Prograph CPX were available for the Apple Macintosh and Windows...
, a dataflow-based system originally developed for the Macintosh
Macintosh
The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...
. The graphical programming environment "Grape" is used to program qfix robot kits.
This approach is also used in specialist software such as Openlab
Openlab
Openlab is a software package for doing 2D Microscope image processing, and for integrating and controlling a diverse array of instrumentation in a laboratory environment. It consists of a core application which can manage large arrays of image data, and a series of separate plug-in modules which...
, where the end users want the flexibility of a full programming language, without the traditional learning curve associated with one.
An open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
visual programming system is Mindscript, which has extended functionality for cryptology, database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
interfacing,
Language support
Some IDEs support multiple languages, such as EclipseEclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
, IntelliJ IDEA
IntelliJ IDEA
IntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ."-History:The first version of IntelliJ IDEA was released in January 2001, and at the time was the only available Java IDE with advanced code navigation and code refactoring capabilities...
, MyEclipse
MyEclipse
MyEclipse is a commercially available Java EE and Ajax IDE created and maintained by the company Genuitec, a founding member of the Eclipse Foundation....
or NetBeans
NetBeans
NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...
, all based on Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, or MonoDevelop
MonoDevelop
MonoDevelop is an open source integrated development environment for the Linux platform, Mac OS X, and Microsoft Windows, primarily targeted for the development of software that uses both the Mono and Microsoft .NET frameworks...
, 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, Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
and Netbeans
NetBeans
NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...
have plugins for C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, Ada
Ada (programming language)
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...
, GNAT
GNAT
GNAT is a free-software compiler for the Ada programming language which forms part of the GNU Compiler Collection. It supports all versions of the language, i.e. Ada 2005, Ada 95 and Ada 83; it allows already some constructs of Ada 2012...
(for example AdaGIDE
AdaGIDE
AdaGIDE is an integrated development environment that is designed for use with the GNAT Ada programming language on the Microsoft Windows platform....
), Perl, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
, and PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
, among other languages in use.
Attitudes across different computing platforms
Many UnixUnix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
programmers argue that traditional command-line POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
tools constitute a complete development environment, 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
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...
or Vim
Vim (text editor)
Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
, which integrates support for many of the standard Unix build tools. Data Display Debugger
Data Display Debugger
Data Display Debugger, or DDD, is a popular free software graphical user interface for command-line debuggers such as GDB, DBX, JDB, , XDB, the Perl debugger, the Bash , the Python , and the GNU Make...
is intended to be an advanced graphical front-end for many text-based debugger standard tools
Debugger
A debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...
.
On the various Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
platforms, command-line tools for development are seldom used. Accordingly, there are many commercial and non-commercial solutions, however each has a different design commonly creating incompatibilities. Most major compiler vendors for Windows still provide free copies of their command-line tools, including Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
(Visual C++, Platform SDK, Microsoft .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
SDK, nmake utility), Embarcadero Technologies
Embarcadero Technologies
Embarcadero Technologies is an American computer software company that develops, manufactures, licenses, and supports a wide range of products and services related to software through its various dynamic product divisions...
(bcc32 compiler, make utility).
Additionally, the free software GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
tools (gcc
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
, gdb, GNU make) are available on many platforms, including Windows etc.
IDEs have always been popular on the Apple Macintosh's Mac OS
Mac OS
Mac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...
, dating back to Macintosh Programmer's Workshop
Macintosh Programmer's Workshop
Macintosh Programmer's Workshop or MPW, is a software development environment for the Classic Mac OS, written by Apple Computer. For Macintosh developers, it was one of the primary tools for building applications for System 7.x and Mac OS 8.x and 9.x. Initially, MPW was sold as a commercial product...
, Turbo Pascal
Turbo Pascal
Turbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...
, THINK Pascal and THINK C
THINK C
THINK C was an extension of ANSI C for Mac OS developed by THINK Technologies; although named Lightspeed C in the original mid-1986 release, it was later renamed THINK C. THINK Technologies was later acquired by Symantec Corporation and the product continued to be developed by the original author,...
environments in the mid-1980s. Currently Mac OS X programmers can choose between limited IDEs, including native IDEs like Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...
, older IDEs like CodeWarrior
CodeWarrior
CodeWarrior is an integrated development environment for the creation of software that runs on a number of embedded systems. Prior to the acquisition of the product by Freescale Semiconductor, versions existed for Macintosh, Microsoft Windows, Linux, Solaris, PlayStation 2, Nintendo GameCube,...
, newer IDEs like MyEclipse
MyEclipse
MyEclipse is a commercially available Java EE and Ajax IDE created and maintained by the company Genuitec, a founding member of the Eclipse Foundation....
, and open-source tools, such as Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
and Netbeans
NetBeans
NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...
. ActiveState Komodo
ActiveState Komodo
Komodo Edit is a highly regarded free text editor for dynamic programming languages. Introduced in January 2007, with the release of version 4.3, Komodo Edit is built on top of the Open Komodo project...
is a proprietary IDE supported on the Mac OS.
See also
- WIDEWIDEWIDE or Wide may refer to:*Wide *Wide and narrow data, terms used to describe two different presentations for tabular data*Wide-angle Infinity Display Equipment*WIDE-LP, a radio station licensed to Madison, Wisconsin...
Web Integrated Development Environment - Comparison of integrated development environmentsComparison of integrated development environmentsThe following tables list notable software packages that are nominal IDEs; standalone tools such as source code editors and GUI builders are not included.- ActionScript :- Ada :- Basic :- C/C++ :...
- Computer-aided software engineeringComputer-aided software engineeringComputer-aided software engineering is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products...
- Multiple document interface#IDE-style interface
- List of software engineering topics
- Rapid application developmentRapid application developmentRapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...
- Read-eval-print loopRead-eval-print loopA read–eval–print loop , also known as an interactive toplevel, is a simple, interactive computer programming environment. The term is most usually used to refer to a Lisp interactive environment, but can be applied to command line shells and similar environments for F#, Smalltalk, Standard ML,...
- Software development kitSoftware development kitA software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...
- Software engineeringSoftware engineeringSoftware Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
- Utility program
- GNAVIGNAVIGNAVI is an open source visual software development environment, like Delphi and Visual Basic. It is licensed under the GPL. The language foundation of GNAVI is Ada, a Pascal derived language used commonly in defense and aviation. It is the intention of the GNAVI community to promote the use of Ada...
- Requirements management tools
- Design modeling tools
- Documentation generation tools
- Code Analysis tools
- Code refactoring tools
- Code Referencing tools
- Code Inspection tools
- Software Building tools (the compilerCompilerA compiler is a computer program that transforms source code written in a programming language into another computer language...
, linker, etc., and the build automationBuild AutomationBuild automation is the act of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities including things like:* compiling computer source code into binary code* packaging binary code* running tests...
tool used to control them) - revision controlRevision controlRevision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
, also called Source Repository (Configuration Management) - Problem reporting / bug trackingBug tracking systemA bug tracking system is a software application that is designed to help quality assurance and programmers keep track of reported software bugs in their work. It may be regarded as a type of issue tracking system....
tools