Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Integrated development environment

From Wikipedia, the free encyclopedia
Software development tool that provides an integrated user experience
This article is about software development. For the PC storage connector, seeParallel ATA.

An integrated development environment running on a desktop operating system
Part of a series on
Software development

Anintegrated development environment (IDE) issoftware that provides a relatively comprehensive set of features forsoftware development. An IDE is intended to enhance productivity by providing development features with a consistentuser experience as opposed to using separate tools, such asvi, GDB, GCC, andmake.

At a minimum, an IDE typically supports source-code editing,source control,build automation, anddebugging. An IDE may include support for integrating tools such as acompiler,runtime environment orversion control system, but sometimes such tools are bundled with the IDE. Some IDEs provide special support for constructing agraphical user interface (GUI). Many IDEs supportobject-oriented programming via features such asclass browser andobject browser. Typically, an IDE provides special support for one or moreprogramming 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 alibrary, often designed for a particularsoftware platform. For example, althoughEclipse is a platform for which there are manyplugins 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 likeWindows and theX Window System (X11). For example,Turbo Pascal forDOS had a full-screen, text-based user experience.

History

[edit]

IDEs initially became possible when developing via aconsole orterminal. Early systems could not support one, since programs were submitted to acompiler orassembler viapunched 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 theDartmouth Time-Sharing System) was command-based, and therefore did not look much like the menu-driven, graphical IDEs popular after the advent of thegraphical 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 theFederal 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 wasSoftbench. In 1995Computerwoche 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 onGoogle Search wereVisual Studio,Visual Studio Code, andEclipse.[2]

Features

[edit]

Features commonly found in an IDE include:

Language support
Some IDEs support multiple languages, such asGNU Emacs,IntelliJ IDEA,Eclipse,MyEclipse,NetBeans,MonoDevelop, JDoodle or PlayCode. Support for alternative languages is often provided byplugins, 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 forGNU Emacs 24 with support for 39 languages.[3] Another example is JDoodle, an online cloud-based IDE that supports 88 languages.[4]Eclipse, andNetbeans have plugins forC/C++,Ada,GNAT (for example AdaGIDE),Perl,Python,Ruby, andPHP, 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 theUnified Modeling Language.
This interface has been popularized with theLego Mindstorms system and is being actively perused by a number of companies wishing to capitalize on the power of custom browsers like those found atMozilla.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 ofdistributed programming (cf.LabVIEW and EICASLAB software).[clarification needed] An early visual programming system,Max, was modeled after an analogsynthesizer design and has been used to develop real-time music performance software since the 1980s. Another early example wasPrograph, adataflow-based system originally developed for theMacintosh. The graphical programming environment "GRAPE" is used to programqfix 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 inWindows environments than onUnix-like environments. A notable exception is Apple platforms. IDEs have been popular onclassic Mac OS andmacOS, dating back toMacintosh Programmer's Workshop,Turbo Pascal, THINK Pascal andTHINK C environments of the mid-1980s. Currently, macOS programmers can choose between native IDEs likeXcode and third-party tools such asEclipse,Netbeans andActiveState Komodo.

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

Instead of using an IDE, developing software for aUnix-like environment often involves using variouscommand-line tools[9][10] such as theGNU toolchain (including GCC,GDB, and make)[11] and an text editor such asEmacs[12][13][14]orVim. Some programmers prefer managingmakefiles (and similar build files) over the build configuration experience presented by an IDE. For example, most contributors to thePostgreSQL database use make and GDB directly.[15] Even when building PostgreSQL forWindows viaVisual C++,Perl scripts are used as a replacement formake rather than relying on any IDE features.[16] Some Linux IDEs such asGeany attempt to provide a graphical front end to traditional build operations.Data Display Debugger is graphical front-end for many text-baseddebugger tools.

Online

[edit]
Main article:Online integrated development environment

Anonline integrated development environment, also known as a web IDE or cloud IDE, is abrowser 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 toIntegrated development environments.

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" fromComputerwoche (German)
  2. ^"TOP IDE Top Integrated Development Environment index".pypl.github.io. Retrieved8 August 2023.
  3. ^"Introduction - Flycheck 0.18-cvs".Read the Docs. Archived fromthe original on 10 March 2014. Retrieved10 March 2014.
  4. ^[1]
  5. ^abc"Course CS350 Integrated Development Environments".cs.odu.edu. Old Dominion University. Retrieved10 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 fromthe original on 9 October 2018. Retrieved10 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 fromthe 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 fromthe original on 21 May 2016. Retrieved11 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
C,C++
Open source
Freeware
Retail
Discontinued
Java
Open source
Freeware
Retail
Discontinued
JavaScript
Open source
CLI (.NET)
Open source
Freeware
Retail
Discontinued
Flash
PHP
Open source
Proprietary
R
Python
Open source
Proprietary
Pascal,
Object Pascal
Open source
Freeware
Retail
Discontinued
BASIC
Open source
Freeware
Retail
Discontinued
Go
Open source
Freeware
Retail
Eiffel
Haxe
POP-11
Online
Note: This template roughly follows the 2012ACM Computing Classification System.
Hardware
Computer systems organization
Networks
Software organization
Software notations andtools
Software development
Theory of computation
Algorithms
Mathematics ofcomputing
Information systems
Security
Human-centered computing
Concurrency
Artificial intelligence
Machine learning
Graphics
Applied computing
Specialized PlatformDevelopment
Retrieved from "https://en.wikipedia.org/w/index.php?title=Integrated_development_environment&oldid=1338110028"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp