fbpx
Wikipedia

Integrated development environment

An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

The boundary between an IDE and other parts of the broader software development environment is not well-defined; sometimes a version control system or various tools to simplify the construction of a graphical user interface (GUI) are integrated. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram for use in object-oriented software development.

Overview

 
Vim with integrated auto-completion and linting through an external plugin

Integrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces. IDEs present a single program in which all development is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software. This contrasts with software development using unrelated tools, such as vi, GDB, GCC, or make.

One aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities. Instead, it provides the same set of capabilities as one cohesive unit. Reducing setup time can increase developer productivity, especially in cases where learning to use the IDE is faster than manually integrating and learning all of the individual tools. Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks. For example, code can be continuously parsed while it is being edited, providing instant feedback when syntax errors are introduced, thus allowing developers to debug code much faster and more easily with an IDE.

Some IDEs are dedicated to a specific programming language, allowing a feature set that most closely matches the programming paradigms of the language. However, there are many multiple-language IDEs.

While most modern IDEs are graphical, text-based IDEs such as Turbo Pascal were in popular use before the availability of windowing systems like Microsoft Windows and the X Window System (X11). They commonly use function keys or hotkeys to execute frequently used commands or macros.

History

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

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 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).[citation needed] Its IDE (part of the Dartmouth Time Sharing System) was command-based, and therefore did not look much like the menu-driven, graphical IDEs popular after the advent of the Graphical User Interface. 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[1] for software. Maestro I was installed for 22,000 programmers worldwide. Until 1989, 6,000 installations existed in the Federal Republic of Germany. Maestro 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 in Texas.

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.

As of January 2021, the three IDEs whose download pages are most commonly searched for are Visual Studio, Eclipse and Android Studio.[2]

Topics

Syntax highlighting

The IDE editor usually provides syntax highlighting, it can show both the structures, the language keywords and the syntax errors with visually distinct colors and font effects.[3]

Code completion

Code completion is an important IDE feature, intended to speed up programming. Modern IDEs even have intelligent code completion.

Refactoring

Advanced IDEs provide support for automated refactoring.[3]

Version control

An IDE is expected to provide integrated version control, in order to interact with source repositories.[3]

Debugging

IDEs are also used for debugging, using an integrated debugger, with support for setting breakpoints in the editor, visual rendering of steps, etc.[4]

Code search

IDEs may provide support for code search. Code search has two different meanings. First, it means searching for class and function declarations, usages, variable and field read/write, etc. IDEs can use different kinds of user interface for code search, for example form-based widgets[5] and natural-language based interfaces. Second, it means searching for a concrete implementation of some specified functionality.[6]

Visual programming

Visual programming is a usage scenario in which an IDE is generally required. Visual Basic allows 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 Language.

This interface has been popularized with the Lego Mindstorms system and is being actively perused 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 open-source 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 modeled 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.

Language support

Some IDEs support multiple languages, such as GNU Emacs based on C and Emacs Lisp; IntelliJ IDEA, Eclipse, MyEclipse or NetBeans, based on Java; MonoDevelop, based on C#; or PlayCode.

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 modern on-the-fly syntax checking extension for GNU Emacs 24 with support for 39 languages.[7] Eclipse, and Netbeans have plugins for C/C++, Ada, GNAT (for example AdaGIDE), Perl, Python, Ruby, and PHP, which are selected between automatically based on file extension, environment or project settings.

Attitudes across different computing platforms

Unix programmers can combine command-line POSIX tools into a complete development environment, capable of developing large programs such as the Linux kernel and its environment.[8] In this sense, the entire Unix system functions as an IDE.[9] The free software GNU tools (GNU Compiler Collection (GCC), GNU Debugger (GDB), and GNU make) are available on many platforms, including Windows.[10] The pervasive Unix philosophy of "everything is a text stream" enables developers who favor command-line oriented tools to use editors with support for many of the standard Unix and GNU build tools, building an IDE with programs like Emacs[11][12][13] or Vim. Data Display Debugger is intended to be an advanced graphical front-end for many text-based debugger standard tools. Some programmers prefer managing makefiles and their derivatives to the similar code building tools included in a full IDE. For example, most contributors to the PostgreSQL database use make and GDB directly to develop new features.[14] Even when building PostgreSQL for Microsoft Windows using Visual C++, Perl scripts are used as a replacement for make rather than relying on any IDE features.[15] Some Linux 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 are seldom used. Accordingly, there are many commercial and non-commercial products. 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, .NET Framework SDK, nmake utility).

IDEs have always been popular on the Apple Macintosh's classic Mac OS and macOS, dating back to Macintosh Programmer's Workshop, Turbo Pascal, THINK Pascal and THINK C environments of the mid-1980s. Currently macOS programmers can choose between native IDEs like Xcode and open-source tools such as Eclipse and Netbeans. ActiveState Komodo is a proprietary multilanguage IDE supported on macOS.

Artificial intelligence

Some features of IDEs can benefit from advances in AI.[16]

Online

A web integrated development environment (Web IDE), also known as an Online IDE like Goom.ai[17] or Cloud IDE, is a browser based IDE that allows for software development or web development.[18] A web IDE can be accessed from a web browser allowing for a portable work environment. A web IDE does not usually contain all of the same features as a traditional, or desktop, IDE, although all of the basic IDE features, such as syntax highlighting, are typically present.

See also

References

  1. ^ "Interaktives Programmieren als Systems-Schlager" from Computerwoche (German)
  2. ^ "TOP IDE Top Integrated Development Environment index". pypl.github.io.
  3. ^ a b c "Course CS350 Integrated Development Environments". cs.odu.edu. Old Dominion University. Retrieved 10 October 2018.
  4. ^ "Programming software and the IDE". BBC Bitesize. Retrieved 10 October 2018.
  5. ^ "Eclipse Cookbook - Searching Code". O’Reilly.
  6. ^ Stolee, Kathryn T.; Elbaum, Sebastian; Dobos, Daniel (2014). "Solving the Search for Source Code". ACM Transactions on Software Engineering and Methodology. 23 (3): 1–45. doi:10.1145/2581377. ISSN 1049-331X.
  7. ^ . Read the Docs. Archived from the original on 10 March 2014. Retrieved 10 March 2014.
  8. ^ Rehman, Christopher Paul, Christopher R. Paul. "The Linux Development Platform: Configuring, Using and Maintaining a Complete Programming Environment". 2002. ISBN 0-13-009115-4
  9. ^ "UnixIsAnIde".
  10. ^ . Archived from the original on 4 July 2013.
  11. ^ "Emacs: the Free Software IDE | Linux Journal". www.linuxjournal.com.
  12. ^ "The Common Lisp Cookbook - Using Emacs as a Lisp IDE". cl-cookbook.sourceforge.net.
  13. ^ "Emacs as a Perl IDE". obsidianrook.com.
  14. ^ PostgreSQL "Developer FAQ - PostgreSQL wiki". wiki.postgresql.org. {{cite web}}: Check |url= value (help)
  15. ^ "Chapter 18. Installation from Source Code on Windows". PostgreSQL Documentation. 29 September 2021.
  16. ^ Williams, Christina Mercer & Hannah. . Techworld. Archived from the original on 7 May 2019. Retrieved 10 November 2018.
  17. ^ "Python Playground and Online Python Compiler". goom.ai. Retrieved 18 April 2023.
  18. ^ "Web-based vs. desktop-based Tools – EclipseSource". eclipsesource.com. 19 June 2018.

integrated, development, environment, integrated, development, environment, software, application, that, provides, comprehensive, facilities, computer, programmers, software, development, normally, consists, least, source, code, editor, build, automation, tool. An integrated development environment IDE is a software application that provides comprehensive facilities to computer programmers for software development An IDE normally consists of at least a source code editor build automation tools and a debugger Some IDEs such as NetBeans and Eclipse contain the necessary compiler interpreter or both others such as SharpDevelop and Lazarus do not The boundary between an IDE and other parts of the broader software development environment is not well defined sometimes a version control system or various tools to simplify the construction of a graphical user interface GUI are integrated Many modern IDEs also have a class browser an object browser and a class hierarchy diagram for use in object oriented software development Contents 1 Overview 2 History 3 Topics 3 1 Syntax highlighting 3 2 Code completion 3 3 Refactoring 3 4 Version control 3 5 Debugging 3 6 Code search 3 7 Visual programming 3 8 Language support 3 9 Attitudes across different computing platforms 4 Artificial intelligence 5 Online 6 See also 7 ReferencesOverview Edit Vim with integrated auto completion and linting through an external plugin Integrated development environments are designed to maximize programmer productivity by providing tight knit components with similar user interfaces IDEs present a single program in which all development is done This program typically provides many features for authoring modifying compiling deploying and debugging software This contrasts with software development using unrelated tools such as vi GDB GCC or make One aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities Instead it provides the same set of capabilities as one cohesive unit Reducing setup time can increase developer productivity especially in cases where learning to use the IDE is faster than manually integrating and learning all of the individual tools Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks For example code can be continuously parsed while it is being edited providing instant feedback when syntax errors are introduced thus allowing developers to debug code much faster and more easily with an IDE Some IDEs are dedicated to a specific programming language allowing a feature set that most closely matches the programming paradigms of the language However there are many multiple language IDEs While most modern IDEs are graphical text based IDEs such as Turbo Pascal were in popular use before the availability of windowing systems like Microsoft Windows and the X Window System X11 They commonly use function keys or hotkeys to execute frequently used commands or macros History Edit GNU Emacs an extensible editor that is commonly used as an IDE on Unix like systems 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 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 citation needed Its IDE part of the Dartmouth Time Sharing System was command based and therefore did not look much like the menu driven graphical IDEs popular after the advent of the Graphical User Interface 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 1 for software Maestro I was installed for 22 000 programmers worldwide Until 1989 6 000 installations existed in the Federal Republic of Germany Maestro 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 in Texas 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 As of January 2021 the three IDEs whose download pages are most commonly searched for are Visual Studio Eclipse and Android Studio 2 Topics EditSyntax highlighting Edit The IDE editor usually provides syntax highlighting it can show both the structures the language keywords and the syntax errors with visually distinct colors and font effects 3 Code completion Edit Code completion is an important IDE feature intended to speed up programming Modern IDEs even have intelligent code completion Refactoring Edit Advanced IDEs provide support for automated refactoring 3 Version control Edit An IDE is expected to provide integrated version control in order to interact with source repositories 3 Debugging Edit IDEs are also used for debugging using an integrated debugger with support for setting breakpoints in the editor visual rendering of steps etc 4 Code search Edit IDEs may provide support for code search Code search has two different meanings First it means searching for class and function declarations usages variable and field read write etc IDEs can use different kinds of user interface for code search for example form based widgets 5 and natural language based interfaces Second it means searching for a concrete implementation of some specified functionality 6 Visual programming Edit Visual programming is a usage scenario in which an IDE is generally required Visual Basic allows 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 Language This interface has been popularized with the Lego Mindstorms system and is being actively perused 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 open source 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 modeled 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 Language support Edit Some IDEs support multiple languages such as GNU Emacs based on C and Emacs Lisp IntelliJ IDEA Eclipse MyEclipse or NetBeans based on Java MonoDevelop based on C or PlayCode 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 modern on the fly syntax checking extension for GNU Emacs 24 with support for 39 languages 7 Eclipse and Netbeans have plugins for C C Ada GNAT for example AdaGIDE Perl Python Ruby and PHP which are selected between automatically based on file extension environment or project settings Attitudes across different computing platforms Edit Unix programmers can combine command line POSIX tools into a complete development environment capable of developing large programs such as the Linux kernel and its environment 8 In this sense the entire Unix system functions as an IDE 9 The free software GNU tools GNU Compiler Collection GCC GNU Debugger GDB and GNU make are available on many platforms including Windows 10 The pervasive Unix philosophy of everything is a text stream enables developers who favor command line oriented tools to use editors with support for many of the standard Unix and GNU build tools building an IDE with programs like Emacs 11 12 13 or Vim Data Display Debugger is intended to be an advanced graphical front end for many text based debugger standard tools Some programmers prefer managing makefiles and their derivatives to the similar code building tools included in a full IDE For example most contributors to the PostgreSQL database use make and GDB directly to develop new features 14 Even when building PostgreSQL for Microsoft Windows using Visual C Perl scripts are used as a replacement for make rather than relying on any IDE features 15 Some Linux 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 are seldom used Accordingly there are many commercial and non commercial products 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 NET Framework SDK nmake utility IDEs have always been popular on the Apple Macintosh s classic Mac OS and macOS dating back to Macintosh Programmer s Workshop Turbo Pascal THINK Pascal and THINK C environments of the mid 1980s Currently macOS programmers can choose between native IDEs like Xcode and open source tools such as Eclipse and Netbeans ActiveState Komodo is a proprietary multilanguage IDE supported on macOS Artificial intelligence EditSome features of IDEs can benefit from advances in AI 16 Online EditMain article Online integrated development environment A web integrated development environment Web IDE also known as an Online IDE like Goom ai 17 or Cloud IDE is a browser based IDE that allows for software development or web development 18 A web IDE can be accessed from a web browser allowing for a portable work environment A web IDE does not usually contain all of the same features as a traditional or desktop IDE although all of the basic IDE features such as syntax highlighting are typically present See also Edit Wikimedia Commons has media related to Integrated development environments Computer programming portalComparison of integrated development environments Collaborative development environment CDE Computer aided software engineering CASE Game integrated development environment Software engine Multiple document interface IDE style interface MDI Rapid application development RAD Read Eval Print Loop REPL Code analysis tools Source code refactoring tools Software building tools the compiler linker etc and the build automation tool used to control them Version control also called source repository configuration management Language Server Protocol Structured Programming Facility Transportable Applications EnvironmentReferences Edit Interaktives Programmieren als Systems Schlager from Computerwoche German TOP IDE Top Integrated Development Environment index pypl github io a b c Course CS350 Integrated Development Environments cs odu edu Old Dominion University Retrieved 10 October 2018 Programming software and the IDE BBC Bitesize Retrieved 10 October 2018 Eclipse Cookbook Searching Code O Reilly Stolee Kathryn T Elbaum Sebastian Dobos Daniel 2014 Solving the Search for Source Code ACM Transactions on Software Engineering and Methodology 23 3 1 45 doi 10 1145 2581377 ISSN 1049 331X Introduction Flycheck 0 18 cvs Read the Docs Archived from the original on 10 March 2014 Retrieved 10 March 2014 Rehman Christopher Paul Christopher R Paul The Linux Development Platform Configuring Using and Maintaining a Complete Programming Environment 2002 ISBN 0 13 009115 4 UnixIsAnIde Use Emacs with Microsoft Visual C use Emacs as an IDE Archived from the original on 4 July 2013 Emacs the Free Software IDE Linux Journal www linuxjournal com The Common Lisp Cookbook Using Emacs as a Lisp IDE cl cookbook sourceforge net Emacs as a Perl IDE obsidianrook com PostgreSQL Developer FAQ PostgreSQL wiki wiki postgresql org a href Template Cite web html title Template Cite web cite web a Check url value help Chapter 18 Installation from Source Code on Windows PostgreSQL Documentation 29 September 2021 Williams Christina Mercer amp Hannah AI tools all developers need to try Techworld Archived from the original on 7 May 2019 Retrieved 10 November 2018 Python Playground and Online Python Compiler goom ai Retrieved 18 April 2023 Web based vs desktop based Tools EclipseSource eclipsesource com 19 June 2018 Retrieved from https en wikipedia org w index php title Integrated development environment amp oldid 1150464739, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.