Integrated Development Environment - Wikipedia

Software development tool that provides an integrated user experience This article is about software development. For the PC storage connector, see Parallel ATA.
An integrated development environment running on a desktop operating system
Part of a series on
Software development
Core activities
  • Data modeling
  • Processes
  • Requirements
  • Design
  • Construction
  • Engineering
  • Testing
  • Debugging
  • Deployment
  • Maintenance
Paradigms and models
  • Agile
  • Cleanroom
  • Incremental
  • Prototyping
  • Spiral
  • V model
  • Waterfall
Methodologies and frameworks
  • ASD
  • DAD
  • DevOps
  • DSDM
  • FDD
  • IID
  • Kanban
  • Lean SD
  • LeSS
  • MDD
  • MSF
  • PSP
  • RAD
  • RUP
  • SAFe
  • Scrum
  • SEMAT
  • TDD
  • TSP
  • UP
  • XP
Supporting disciplines
  • Configuration management
  • Deployment management
  • Documentation
  • Project management
  • Quality assurance
  • User experience
Practices
  • ATDD
  • BDD
  • CCO
  • CD
  • CI
  • DDD
  • PP
  • SBE
  • Stand-up
  • TDD
Tools
  • Build automation
  • Compiler
  • Debugger
  • GUI builder
  • IDE
  • Infrastructure as code
  • Profiler
  • Release automation
  • UML Modeling
Standards and bodies of knowledge
  • CMMI
  • IEEE standards
  • IREB
  • ISO 9001
  • ISO/IEC standards
  • ITIL
  • OMG
  • PMBOK
  • SWEBOK
Glossaries
  • Artificial intelligence
  • Computer science
  • Electrical and electronics engineering
Outlines
  • Software development
  • C programming language
  • C sharp programming language
  • C++ programming language
  • Java programming language
  • JavaScript programming language
  • Python programming language
  • Rust programming language
  • v
  • t
  • e

An integrated development environment (IDE) is software that provides a relatively comprehensive set of features for software development. An IDE is intended to enhance productivity by providing development features with a consistent user experience as opposed to using separate tools, such as vi, GDB, GCC, and make.

At a minimum, an IDE typically supports source-code editing, source control, build automation, and debugging. An IDE may include support for integrating tools such as a compiler, runtime environment or version control system, but sometimes such tools are bundled with the IDE. Some IDEs provide special support for constructing a graphical user interface (GUI). Many IDEs support object-oriented programming via features such as class browser and object browser. Typically, an IDE provides special support for one or more programming languages, allowing for features tailored to a language. Some IDEs can be extended to support additional languages.

Although some IDEs are implemented as an application, some are implemented as a library, often designed for a particular software platform. For example, although Eclipse is a platform for which there are many plugins that each provide an IDE experience, the core application does not.[a]

While a modern IDE provides a GUI, there were IDEs before the availability of windowing systems like Windows and the X Window System (X11). For example, Turbo Pascal for DOS had a full-screen, text-based user experience.

History

[edit]

IDEs initially became possible when developing via a console or terminal. Early systems could not support one, since programs were submitted to a compiler or assembler via punched cards, paper tape, etc. 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 August 2023[update], the most commonly searched for IDEs on Google Search were Visual Studio, Visual Studio Code, and Eclipse.[2]

Features

[edit]

Features commonly found in an IDE include:

Language support Some IDEs support multiple languages, such as GNU Emacs, IntelliJ IDEA, Eclipse, MyEclipse, NetBeans, MonoDevelop, JDoodle 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.[3] Another example is JDoodle, an online cloud-based IDE that supports 88 languages.[4] 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. Syntax highlighting The source-code editing feature usually includes syntax highlighting, it can show both the structures, the language keywords and the syntax errors with visually distinct colors and font effects.[5] Continual syntax checking Code syntax can be continuously validated while it is being edited and errors can be provided an error are introduced instead of the developer waiting until a build is run. Code search The IDE may support 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[6] and natural-language based interfaces. The IDE may also support searching for an implementation of a declaration.[7] Code completion Refactoring[5] Version control[5] Simplified configuration One typical aim of an IDE is to reduce the configuration necessary to integrate multiple development utilities. An IDE can provide for a cohesive configuration aspect that reduces setup time and therefore increases productivity, especially in cases where learning to use the IDE is faster than otherwise integrating and learning multiple tools. Debugging Debugging support usually includes setting breakpoints in the editor, visual rendering of steps, etc.[8] Visual programming Visual Basic allows users to design an application 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).[clarification needed] An early visual programming system, Max, was modeled after an 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,[clarification needed] where the end-users want the flexibility of a full programming language, without the traditional learning curve associated with one.

Use

[edit]

For a long time and still somewhat today, IDEs are used more commonly in Windows environments than on Unix-like environments. A notable exception is Apple platforms. IDEs have been popular on 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 third-party tools such as Eclipse, Netbeans and ActiveState Komodo.

Vim with integrated auto-completion and linting through an external plugin
GNU Emacs, an extensible editor that is commonly used as an IDE on Unix-like systems

Instead of using an IDE, developing software for a Unix-like environment often involves using various command-line tools[9][10] such as the GNU toolchain (including GCC, GDB, and make)[11] and an text editor such as Emacs[12][13][14] or Vim. Some programmers prefer managing makefiles (and similar build files) over the build configuration experience presented by an IDE. For example, most contributors to the PostgreSQL database use make and GDB directly.[15] Even when building PostgreSQL for Windows via Visual C++, Perl scripts are used as a replacement for make rather than relying on any IDE features.[16] Some Linux IDEs such as Geany attempt to provide a graphical front end to traditional build operations. Data Display Debugger is graphical front-end for many text-based debugger tools.

Online

[edit] Main article: Online integrated development environment

An online integrated development environment, also known as a web IDE or cloud IDE, is a browser based IDE that allows for software development or web development.[17] An online IDE can be accessed from a web browser, allowing for a portable work environment. An online 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.

A Mobile-Based Integrated Development Environment (IDE) is a software application that provides a comprehensive suite of tools for software development on mobile platforms. Unlike traditional desktop IDEs, mobile-based IDEs are designed to run on smartphones and tablets, allowing developers to write, debug, and deploy code directly from their mobile devices.

Agentic Development Environment

[edit]

As AI-Assistance is increasing in IDEs, the concept of Agentic Development Environment(ADE) began to appear. agents not only suggest code completions but explain code, analyze bugs, suggest solutions, plan them and implement them. Some ADEs are plugins in regular IDEs as GitHub Copilot, Cline and Continue for Visual Studio Code, while some are deeply integrated as Windsurf, cursor and Google Antigravity. Zed Editor also has optional AI, while the upcoming Jetbrains Fleet Editor was cancelled in favor of an ADE called Jetbrains Air that is based on it.[18]

See also

[edit] Wikimedia Commons has media related to Integrated development environments.
  • iconComputer programming portal
  • Comparison of integrated development environments
  • Collaborative development environment (CDE)
  • Computer-aided software engineering (CASE)
  • Software engine
  • Multiple document interface § IDE-style interface (MDI)
  • Rapid application development (RAD)
  • Read–Eval–Print Loop (REPL)
  • Notebook interface
  • 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 Environment

Notes

[edit]
  1. ^ Eclipse is often called an IDE since it was originally and still is today commonly installed with the Java IDE plugin. The plugins provide development environments. With no plugins enabled, the Eclipse application does not provide an experience that includes the typical, basic features of an integrated development environment.

References

[edit]
  1. ^ "Interaktives Programmieren als Systems-Schlager" from Computerwoche (German)
  2. ^ "TOP IDE Top Integrated Development Environment index". pypl.github.io. Retrieved 8 August 2023.
  3. ^ "Introduction - Flycheck 0.18-cvs". Read the Docs. Archived from the original on 10 March 2014. Retrieved 10 March 2014.
  4. ^ [1]
  5. ^ a b c "Course CS350 Integrated Development Environments". cs.odu.edu. Old Dominion University. Retrieved 10 October 2018.
  6. ^ "Eclipse Cookbook - Searching Code". O’Reilly.
  7. ^ 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. S2CID 8558710.
  8. ^ "Programming software and the IDE". BBC Bitesize. Archived from the original on 9 October 2018. Retrieved 10 October 2018.
  9. ^ Rehman, Christopher Paul, Christopher R. Paul. "The Linux Development Platform: Configuring, Using and Maintaining a Complete Programming Environment". 2002. ISBN 0-13-009115-4
  10. ^ "UnixIsAnIde".
  11. ^ ""Use Emacs with Microsoft Visual C++ ... use Emacs as an IDE"". Archived from the original on 4 July 2013.
  12. ^ "Emacs: the Free Software IDE | Linux Journal". www.linuxjournal.com.
  13. ^ "The Common Lisp Cookbook - Using Emacs as a Lisp IDE". cl-cookbook.sourceforge.net.
  14. ^ "Emacs as a Perl IDE". obsidianrook.com. Archived from the original on 21 May 2016. Retrieved 11 May 2011.
  15. ^ "Developer FAQ - PostgreSQL wiki". wiki.postgresql.org.
  16. ^ "Chapter 18. Installation from Source Code on Windows". PostgreSQL Documentation. 29 September 2021.
  17. ^ "Web-based vs. desktop-based Tools – EclipseSource". eclipsesource.com. 19 June 2018.
  18. ^ https://www.jetbrains.com/help/air/quick-start-with-air.html
  • v
  • t
  • e
Integrated development environments
C, C++
Open source
  • Arduino IDE
  • Code::Blocks
  • CodeLite
  • Dev-C++
  • Eclipse
  • Emacs
  • Geany
  • GNOME Builder
  • Kakoune
  • KDevelop
  • NetBeans
  • QDevelop
  • Qt Creator
  • TheIDE
  • Vi–Vim
  • OpenWatcom
Freeware
  • DevEco Studio
  • Oracle Developer Studio
  • Visual Studio Code
  • Visual Studio Community
  • Xcode
Retail
  • C++Builder
  • Eclipse-based
    • CodeWarrior
    • MyEclipse
  • Visual Studio
  • By JetBrains
    • IntelliJ IDEA
    • CLion
  • LabWindows/CVI
  • IBM Rational Software Architect
  • Understand
  • SlickEdit
Discontinued
  • Anjuta
  • By JetBrains
    • AppCode
  • VisualAge
  • Visual C++ Express
  • MonoDevelop
  • SharpDevelop
  • Turbo C, C++
  • QuickC
Java
Open source
  • Anjuta
  • BlueJ
  • DrJava
  • Eclipse
  • Geany
  • Greenfoot
  • IntelliJ IDEA Community Edition
    • Android Studio
  • NetBeans
  • DevEco Studio
Freeware
  • jGRASP
  • JDeveloper
Retail
  • JCreator
  • MyEclipse
  • JetBrains IntelliJ IDEA
  • SlickEdit
  • Understand
Discontinued
  • Metrowerks CodeWarrior Pro for Java
  • JBuilder
  • Sun Java Studio Creator (superseded by NetBeans)
  • VisualAge (superseded by Eclipse)
  • Visual Café (aka Espresso, superseded by JBuilder)
  • Visual J++
  • Xelfi (became NetBeans)
JavaScript
Open source
  • Vim
  • Visual Studio Code
  • Atom
  • Chromium
  • DevEco Studio
CLI (.NET)
Open source
  • Visual Studio Code
  • PascalABC.NET
Freeware
  • Visual Studio Community
Retail
  • Visual Studio
  • Rider
  • Understand
Discontinued
  • Xamarin Studio
  • MonoDevelop
  • SharpDevelop
  • Visual Basic Express
  • Visual Web Developer Express
  • Visual J# Express
  • Visual Studio Express for Windows Phone
  • Visual C++ Express
  • Visual C# Express
  • Express for Desktop
  • Express for Web
  • Express for Windows
Flash
  • Adobe Flash Builder
  • FlashDevelop
  • Powerflasher FDT
PHP
Open source
  • Aptana
  • NetBeans
  • Komodo Edit
  • Komodo IDE
  • KDevelop
Proprietary
  • Codelobster
  • PhpStorm
  • PHPEdit
  • SlickEdit
  • Zend Studio
R
  • RStudio
  • R Tools for Visual Studio
Python
Open source
  • Anjuta
  • IDLE
  • Eric
  • Light Table
  • PyDev
  • PyScripter
  • PIDA
  • Spyder
  • Komodo Edit
  • Komodo IDE
  • KDevelop
  • Vim
  • Visual Studio Code
  • Thonny
  • DevEco Studio
Proprietary
  • PyCharm
  • PythonAnywhere
  • Visual Studio Code
  • SlickEdit
  • Wing IDE
Pascal,Object Pascal
Open source
  • Free Pascal IDE
  • Lazarus
  • Dev-Pascal
  • GNAVI
  • PascalABC.NET
Freeware
  • Delphi Community
Retail
  • Delphi
Discontinued
  • Turbo Pascal
  • Turbo Delphi
  • Virtual Pascal
  • Borland Kylix
  • QuickPascal
BASIC
Open source
  • Basic-256
  • Microsoft Small Basic
  • SdlBasic
  • Gambas
  • Basic4GL
  • VisualFBEditor / WinFBE
  • InForm
Freeware
  • FutureBASIC
  • RapidQ
  • Visual Studio Community
Retail
  • Visual Studio
  • NS Basic
  • PureBasic
  • GLBasic
  • Liberty BASIC
  • Xojo
Discontinued
  • CA-Realizer
  • MonoDevelop
  • QuickBASIC
  • QBasic
  • SharpDevelop
  • Visual Basic
  • Visual Basic Express
Go
Open source
  • Vim
  • Visual Studio Code (VSCode)
  • Eclipse
Freeware
  • Cloud9 IDE
Retail
  • GoLand
Eiffel
  • EiffelStudio
  • LibertyEiffel
  • Visual Eiffel
Haxe
  • IntelliJ IDEA
  • VS Code
  • Sublime Text
  • Powerflasher FDT
POP-11
  • Poplog
Online
  • AWS Cloud9 IDE
  • Eclipse Che
  • Firebase Studio
  • SourceLair
  • Comparison
  • Category
  • v
  • t
  • e
Computer science
Note: This template roughly follows the 2012 ACM Computing Classification System.
Hardware
  • Printed circuit board
  • Peripheral
  • Integrated circuit
  • Very-large-scale integration
  • System on a chip (SoC)
  • Energy consumption (green computing)
  • Electronic design automation
  • Hardware acceleration
  • Processor
  • Size / Form
Computer systems organization
  • Computer architecture
  • Computational complexity
  • Dependability
  • Embedded system
  • Real-time computing
  • Cyber-physical system
  • Fault tolerance
  • Wireless sensor network
Networks
  • Network architecture
  • Network protocol
  • Network components
  • Network scheduler
  • Network performance evaluation
  • Network service
Software organization
  • Interpreter
  • Middleware
  • Virtual machine
  • Operating system
  • Software quality
Software notations and tools
  • Programming paradigm
  • Programming language
  • Compiler
  • Domain-specific language
  • Modeling language
  • Software framework
  • Integrated development environment
  • Software configuration management
  • Software library
  • Software repository
Software development
  • Control flow
  • Software development process
  • Requirements analysis
  • Software design
  • Software construction
  • Software deployment
  • Software engineering
  • Software maintenance
  • Programming team
  • Open-source model
Theory of computation
  • Model of computation
    • Stochastic
  • Formal language
  • Automata theory
  • Computability theory
  • Computational complexity theory
  • Logic
  • Semantics
Algorithms
  • Algorithm design
  • Analysis of algorithms
  • Algorithmic efficiency
  • Randomized algorithm
  • Computational geometry
Mathematics of computing
  • Discrete mathematics
  • Probability
  • Statistics
  • Mathematical software
  • Information theory
  • Mathematical analysis
  • Numerical analysis
  • Theoretical computer science
    • Computational problem
Information systems
  • Database management system
  • Information storage systems
  • Enterprise information system
  • Social information systems
  • Geographic information system
  • Decision support system
  • Process control system
  • Multimedia information system
  • Data mining
  • Digital library
  • Computing platform
  • Digital marketing
  • World Wide Web
  • Information retrieval
Security
  • Cryptography
  • Formal methods
  • Security hacker
  • Security services
  • Intrusion detection system
  • Hardware security
  • Network security
  • Information security
  • Application security
Human-centered computing
  • Interaction design
  • Augmented reality
  • Virtual reality
  • Social computing
  • Ubiquitous computing
  • Visualization
  • Accessibility
  • Human–computer interaction
  • Mobile computing
Concurrency
  • Concurrent computing
  • Parallel computing
  • Distributed computing
  • Multithreading
  • Multiprocessing
Artificial intelligence
  • Natural language processing
  • Knowledge representation and reasoning
  • Computer vision
  • Automated planning and scheduling
  • Search methodology
  • Control method
  • Philosophy of artificial intelligence
  • Distributed artificial intelligence
Machine learning
  • Supervised learning
  • Unsupervised learning
  • Reinforcement learning
  • Multi-task learning
  • Cross-validation
Graphics
  • Animation
  • Rendering
  • Photograph manipulation
  • Graphics processing unit
  • Image compression
  • Solid modeling
Applied computing
  • Quantum computing
  • E-commerce
  • Enterprise software
  • Computational mathematics
  • Computational physics
  • Computational chemistry
  • Computational biology
  • Computational social science
  • Computational engineering
  • Differentiable computing
  • Computational healthcare
  • Digital art
  • Electronic publishing
  • Cyberwarfare
  • Electronic voting
  • Video games
  • Word processing
  • Operations research
  • Educational technology
  • Document management
Specialized Platform Development
  • Thermodynamic computing
  • Category
  • Outline
  • Glossaries

Tag » What Does Ide Stand For