Integrierte Entwicklungsumgebung - Integrated development environment

Anjuta ist eine IDE für die C- und C++- Programmierung in der GNOME- Desktop-Umgebung.

Eine integrierte Entwicklungsumgebung ( IDE ) ist eine Softwareanwendung , die Computerprogrammierern umfassende Möglichkeiten für die Softwareentwicklung bietet . Eine IDE besteht normalerweise aus mindestens einem Quellcode-Editor , Build-Automatisierungstools und einem Debugger . Einige IDEs wie NetBeans und Eclipse enthalten den erforderlichen Compiler , Interpreter oder beides; andere, wie SharpDevelop und Lazarus , tun dies nicht.

Die Grenze zwischen einer IDE und anderen Teilen der breiteren Softwareentwicklungsumgebung ist nicht genau definiert; manchmal sind ein Versionskontrollsystem oder verschiedene Tools integriert, um den Aufbau einer grafischen Benutzeroberfläche (GUI) zu vereinfachen . Viele moderne IDEs verfügen auch über einen Klassenbrowser , einen Objektbrowser und ein Klassenhierarchiediagramm zur Verwendung in der objektorientierten Softwareentwicklung .

Überblick

Vim mit integrierter Autovervollständigung und Linting durch ein externes Plugin

Integrierte Entwicklungsumgebungen sind darauf ausgelegt, die Produktivität der Programmierer zu maximieren, indem engmaschige Komponenten mit ähnlichen Benutzeroberflächen bereitgestellt werden . IDEs stellen ein einziges Programm dar, in dem die gesamte Entwicklung erfolgt. Dieses Programm bietet normalerweise viele Funktionen zum Erstellen, Ändern, Kompilieren, Bereitstellen und Debuggen von Software. Dies steht im Gegensatz zur Softwareentwicklung mit nicht verwandten Tools wie vi , GDB , GCC oder make .

Ein Ziel der IDE ist es, die Konfiguration zu reduzieren, die erforderlich ist, um mehrere Entwicklungsdienstprogramme zusammenzusetzen, stattdessen bietet sie die gleichen Fähigkeiten wie eine zusammenhängende Einheit. Die Reduzierung der Einrichtungszeit kann die Entwicklerproduktivität steigern, insbesondere in Fällen, in denen das Erlernen der Verwendung der IDE schneller ist als das manuelle Integrieren und Erlernen aller einzelnen Tools. Eine engere Integration aller Entwicklungsaufgaben hat das Potenzial, die Gesamtproduktivität über die reine Unterstützung bei Einrichtungsaufgaben hinaus zu verbessern. Beispielsweise kann Code während der Bearbeitung kontinuierlich geparst werden, wodurch bei Syntaxfehlern sofortiges Feedback bereitgestellt wird, sodass Entwickler mit einer IDE viel schneller und einfacher Codes debuggen können.

Einige IDEs sind einer bestimmten Programmiersprache gewidmet und ermöglichen einen Funktionsumfang, der den Programmierparadigmen der Sprache am ehesten entspricht . Es gibt jedoch viele mehrsprachige IDEs.

Während die meisten modernen IDEs grafisch sind, waren textbasierte IDEs wie Turbo Pascal vor der Verfügbarkeit von Windowing-Systemen wie Microsoft Windows und dem X Window System (X11) weit verbreitet. Sie verwenden häufig Funktionstasten oder Hotkeys , um häufig verwendete Befehle oder Makros auszuführen.

Geschichte

GNU Emacs , ein erweiterbarer Editor, der häufig als IDE auf Unix-ähnlichen Systemen verwendet wird

IDEs wurden zunächst bei der Entwicklung über eine Konsole oder ein Terminal möglich . Frühe Systeme konnten dies nicht unterstützen, da Programme mithilfe von Flussdiagrammen erstellt wurden, die Programme mit Lochkarten (oder Papierstreifen usw.) eingeben, bevor sie an einen Compiler gesendet werden . Dartmouth BASIC war die erste Sprache, die mit einer IDE erstellt wurde (und war auch die erste, die für die Verwendung vor einer Konsole oder einem Terminal entwickelt wurde). Seine IDE (Teil des Dartmouth Time Sharing Systems ) war befehlsbasiert und ähnelte daher nicht sehr den menügesteuerten, grafischen IDEs, die nach dem Aufkommen der grafischen Benutzeroberfläche populär waren . Es integrierte jedoch Bearbeitung, Dateiverwaltung, Kompilierung, Debugging und Ausführung auf eine Weise, die einer modernen IDE entspricht.

Maestro I ist ein Produkt von Softlab München und war die weltweit erste integrierte Entwicklungsumgebung für Software. Maestro I wurde weltweit für 22.000 Programmierer installiert. Bis 1989 gab es in der Bundesrepublik Deutschland 6.000 Anlagen . Maestro war in den 1970er und 1980er Jahren wohl weltweit führend auf diesem Gebiet. Heute befindet sich einer der letzten Maestro I im Museum of Information Technology in Arlington in Texas.

Eine der ersten IDEs mit einem Plug-In-Konzept war Softbench . 1995 kommentierte die Computerwoche , dass der Einsatz einer IDE bei den Entwicklern nicht gut ankommt, da dies ihre Kreativität hemmen würde.

Ab Januar 2021 sind die drei IDEs, nach deren Download-Seiten am häufigsten gesucht wird, Visual Studio , Eclipse und Android Studio .

Themen

Satzstellung markieren

Der IDE-Editor bietet normalerweise Syntax-Highlighting , er kann sowohl die Strukturen, die Sprachschlüsselwörter als auch die Syntaxfehler mit optisch unterschiedlichen Farben und Schrifteffekten anzeigen.

Code-Vervollständigung

Die Codevervollständigung ist eine wichtige IDE-Funktion, die die Programmierung beschleunigen soll. Moderne IDEs verfügen sogar über eine intelligente Codevervollständigung .

Refactoring

Erweiterte IDEs bieten Unterstützung für automatisiertes Refactoring .

Versionskontrolle

Von einer IDE wird erwartet, dass sie eine integrierte Versionskontrolle bietet, um mit Quell-Repositorys zu interagieren.

Debuggen

IDEs werden auch zum Debuggen verwendet, indem ein integrierter Debugger verwendet wird , mit Unterstützung für das Setzen von Breakpoints im Editor, das visuelle Rendering von Schritten usw.

Codesuche

IDEs können erweiterte Unterstützung für die Codesuche bieten: um Klassen- und Funktionsdeklarationen, Verwendungen, Lesen/Schreiben von Variablen und Feldern usw. zu finden. IDEs können verschiedene Arten von Benutzeroberflächen für die Codesuche verwenden, zum Beispiel formularbasierte Widgets und natürliche sprachbasierte Schnittstellen.

Visuelle Programmierung

Visuelle Programmierung ist ein Anwendungsszenario, in dem im Allgemeinen eine IDE erforderlich ist. Visual Basic ermöglicht es Benutzern, neue Anwendungen zu erstellen, indem sie Programmierung, Bausteine ​​oder Codeknoten verschieben, um Flussdiagramme oder Strukturdiagramme zu erstellen, die dann kompiliert oder interpretiert werden. Diese Flussdiagramme basieren oft auf der Unified Modeling Language .

Diese Schnittstelle wurde mit dem Lego Mindstorms - System populär gemacht und wird von einer Reihe von Unternehmen aktiv geprüft , die von der Leistungsfähigkeit benutzerdefinierter Browser wie denen von Mozilla profitieren möchten . KTechlab unterstützt Flowcode und ist eine beliebte Open-Source-IDE und ein Simulator für die Entwicklung von Software für Mikrocontroller. Visuelle Programmierung ist auch verantwortlich für die Kraft der verteilten Programmierung (vgl LabVIEW und EICASLAB Software). Ein frühes visuelles Programmiersystem, Max , wurde dem Design analoger Synthesizer nachempfunden und wird seit den 1980er Jahren zur Entwicklung von Echtzeit-Musik-Performance-Software verwendet. Ein weiteres frühes Beispiel war Prograph , ein datenflussbasiertes System, das ursprünglich für den Macintosh entwickelt wurde . Zur Programmierung von qfix Roboterbausätzen wird die grafische Programmierumgebung "Grape" verwendet .

Dieser Ansatz wird auch in Spezialsoftware wie Openlab verwendet , wo die Endbenutzer die Flexibilität einer vollständigen Programmiersprache ohne die damit verbundene traditionelle Lernkurve wünschen.

Sprachunterstützung

Einige IDEs unterstützen mehrere Sprachen, wie GNU Emacs basierend auf C und Emacs Lisp , und IntelliJ IDEA , Eclipse , MyEclipse oder NetBeans , alle basierend auf Java , oder MonoDevelop , basierend auf C# oder PlayCode.

Unterstützung für alternative Sprachen wird oft durch Plugins bereitgestellt , sodass sie gleichzeitig auf derselben IDE installiert werden können. Zum Beispiel Flycheck ist eine moderne on-the-fly - Syntaxprüfung Erweiterung für GNU Emacs 24 mit Unterstützung für 39 Sprachen. Eclipse und Netbeans haben Plugins für C / C++ , Ada , GNAT (zum Beispiel AdaGIDE ), Perl , Python , Ruby und PHP , die automatisch basierend auf Dateierweiterung, Umgebung oder Projekteinstellungen ausgewählt werden.

Einstellungen über verschiedene Computerplattformen

Unix- Programmierer können POSIX- Kommandozeilentools zu einer vollständigen Entwicklungsumgebung kombinieren , die große Programme wie den Linux-Kernel und seine Umgebung entwickeln kann. In diesem Sinne funktioniert das gesamte Unix-System als IDE. Die freien Software- GNU- Tools ( GNU Compiler Collection (GCC), GNU Debugger (GDB) und GNU make ) sind auf vielen Plattformen verfügbar, einschließlich Windows. Die allgegenwärtige Unix - Philosophie von „alles ist ein Text - Stream“ ermöglicht es Entwicklern , die bevorzugen Befehlszeilenorientierte Werkzeuge Editoren für viele der Standard - Unix und GNU Build - Tools mit Unterstützung zu verwenden, eine IDE mit Programmen wie den Aufbau Emacs oder Vim . Der Data Display Debugger ist als fortschrittliches grafisches Frontend für viele textbasierte Debugger- Standardtools gedacht . Einige Programmierer bevorzugen die Verwaltung von Makefiles und deren Derivaten den ähnlichen Code-Building-Tools, die in einer vollständigen IDE enthalten sind. Beispielsweise verwenden die meisten Mitwirkenden an der PostgreSQL- Datenbank make und GDB direkt, um neue Funktionen zu entwickeln. Selbst beim Erstellen von PostgreSQL für Microsoft Windows mit Visual C++ werden Perl- Skripte als Ersatz für make verwendet, anstatt sich auf irgendwelche IDE-Funktionen zu verlassen. Einige Linux-IDEs wie Geany versuchen, ein grafisches Frontend für traditionelle Build-Operationen bereitzustellen.

Auf den verschiedenen Microsoft Windows- Plattformen werden Befehlszeilentools für die Entwicklung selten verwendet. Dementsprechend gibt es viele kommerzielle und nicht-kommerzielle Produkte. Jedes hat jedoch ein anderes Design, das häufig Inkompatibilitäten verursacht. Die meisten großen Compiler-Hersteller für Windows bieten immer noch kostenlose Kopien ihrer Befehlszeilentools an, einschließlich Microsoft ( Visual C++ , Platform SDK , .NET Framework SDK, nmake Utility).

IDEs sind auf der Apple Macintosh ist immer beliebt klassische Mac OS und macOS , um aus dem Jahr Macintosh Programmer Werkstatt , Turbo Pascal , DENKEN Pascal und THINK C Umgebungen der Mitte der 1980er Jahre. Derzeit können macOS-Programmierer zwischen nativen IDEs wie Xcode und Open-Source-Tools wie Eclipse und Netbeans wählen . ActiveState Komodo ist eine proprietäre mehrsprachige IDE, die auf macOS unterstützt wird.

Künstliche Intelligenz

Einige Funktionen von IDEs können von Fortschritten in der KI profitieren . Insbesondere kann man entwicklerübergreifend Informationen aus IDE-Aktionen sammeln, um die IDE-Funktionen zu erweitern. Ein datengesteuerter Ansatz zur Codevervollständigung führt beispielsweise zu einer intelligenten Codevervollständigung .

Webintegrierte Entwicklungsumgebung

Eine webintegrierte Entwicklungsumgebung (Web-IDE), auch bekannt als Online-IDE oder Cloud-IDE , ist eine browserbasierte IDE, die Softwareentwicklung oder Webentwicklung ermöglicht. Auf eine Web-IDE kann über einen Webbrowser zugegriffen werden, was eine portable Arbeitsumgebung ermöglicht. Eine Web-IDE enthält normalerweise nicht dieselben Funktionen wie eine herkömmliche oder Desktop-IDE, obwohl alle grundlegenden IDE-Funktionen, wie z. B. Syntaxhervorhebung, normalerweise vorhanden sind.

Siehe auch

Verweise