IDEs im Überblick
Eine integrierte Entwicklungsumgebung (IDE, von englisch integrated development environment) ist eine Software, die verschiedene Funktionalitäten zum Schreiben, Kompilieren, Ausführen, Debuggen, Veröffentlichen und Analysieren von Code bereitstellt. Mittlerweile gibt es eine Reihe an kostenlosen und kommerziellen IDEs, die verschiedene Sprachen unterstützen. Doch nicht jede IDE ist für jeden Entwickler und jedes Projekt geeignet. Wir klären daher in diesem Artikel, was alles zu einer IDE gehört, und welche IDEs für welche Sprachen besonders beliebt sind.
Was genau ist eine IDE?
IDEs sind Teil der rechnergestützten Softwareentwicklung (CASE, von computer-aided software engineering). Ebenfalls zu CASE gehören einfache, auf die Programmierung ausgerichtete Texteditoren wie Sublime oder Programme, mit denen Quellcode separat kompiliert werden kann. Von einer integrierten Entwicklungsumgebung spricht man erst, wenn mehrere solcher Werkzeuge zusammengefasst werden und den gesamten Lebenszyklus der Software von Entwicklung über Deployment bis Wartung unterstützen.
Eine IDE besteht aus mindestens folgenden Komponenten:
- Einem Texteditor bzw. Codeeditor, der Funktionen zur effektiven Codebearbeitung bereitstellt. Das umfasst unter anderem Syntaxhighlighting, also die Hervorhebung bestimmter Keywords im Quellcode, Autovervollständigung und Codenavigation. Viele IDEs stellen zusätzlich Funktionen zum Refactoring, beispielweise durch die projektübergreifende Umbenennung von Variablen oder das Extrahieren von Methoden, zur Verfügung.
- Einem Compiler oder Interpreter, der den menschenlesbaren Code in maschinenausführbare Anweisungen umwandelt und auch ausführt.
- Einem Debugger, mit dem beispielsweise Breakpoints im Code gesetzt werden können, um mit dem Code zur Laufzeit zu interagieren.
Je nach Umfang der jeweiligen IDE kommen diverse weitere Tools hinzu, unter anderem:
- Linter, also Werkzeuge zur statischen Codeanalyse, um Bugs, Fehler oder den Verstoß von Coding Conventions bereits während der Implementierung zu finden
- Tools, um Unit Tests auszuführen und die Testabdeckung zu analysieren
- Tools für Build und Deployment Automation
- Versionsverwaltung durch eine Anbindung an VCS (version control systems) wie Git, Subversion oder Team Foundations Server (TFS)
- Profile und Performance Tracker
- Database Integrations
- UML-Modellierer und Werkzeuge, um Objekt- und Klassenhierarchien in Übersichten und Diagrammen abzubilden
- Code-Formatter
Warum sollte man IDEs verwenden?
IDEs vereinen verschiedene Funktionen, sodass Medienbrüche während des Programmierens vermieden und formale Aufgaben automatisiert werden. Das macht die Arbeit mit einer IDE effizienter als einen Workflow, bei dem zum Schreiben, Kompilieren und Ausführen von Code verschiedene Programme verwendet werden.
Die Editoren einer IDE sind außerdem mächtiger als normale Texteditoren. So kann im Code schnell navigiert werden, denn die IDE übernimmt die Verwaltung von Packages, Namespaces und der Projektstruktur. Durch die Hervorhebung von Keywords ist der Code besser lesbar und Autovervollständigung und Vorschläge reduzieren die Zeit, die zum Programmieren selbst benötigt wird.
Weiterhin erhöht sie die Codequalität, indem viele IDEs Warnungen für ungenutzte Importe oder Variablen anzeigen, Code automatisch formatieren und sogar auf Verstöße gegen Coding Conventions hinweisen.
Einer der größten Vorteile von IDEs ist schlussendlich der Debugger. Ein Debugger ermöglicht es, den Code zur Laufzeit zu betrachten und beispielsweise den Inhalt von Variablen oder Ausdrücken auszuwerten. Dadurch ist es deutlich einfacher, Fehler zu finden und zu beheben.
Die Vorteile von IDEs kommen allerdings mit einem Preis: Häufig müssen die Projekte nach dem Start der IDE erst einmal kompiliert und die Dateien indiziert werden, sodass es einige Minuten dauert, bis man mit der Entwicklung beginnen kann. Viele IDEs nehmen außerdem einiges an Speicherplatz ein und benötigen zur Ausführung mehr Rechenressourcen als ein einzelner Texteditor oder Compiler.
IDEs im Überblick – die 10 besten IDEs
Mit Skriptsprachen oder dynamischen Sprachen, als kleines Programm oder in einem großen Projekt, als Web-, Desktop oder mobile Anwendung: Jede Software hat andere Rahmenbedingungen und entsprechend unterschiedliche Ansprüche an die Umgebung, mit der sie entwickelt wird. Werfen wir daher einen Blick auf einige der momentan beliebtesten IDEs und was sie alles bieten:
IntelliJ IDEA
IntelliJ IDEA ist eine IDE von JetBrains, die vorwiegend für die Programmiersprachen Java, Kotlin, Groovy und Scala verwendet wird und selbst in Java geschrieben ist. In Umfragen über die Beliebtheit bzw. den Marktanteil verschiedener IDEs wird IntelliJ oft auf Platz 1 gelistet, relativ dicht gefolgt von Eclipse. Das liegt unter anderem an dem großen Funktionsumfang von IntelliJ, der sowohl Tools zur Codevervollständigung und -verbesserung als auch den Support vieler Sprachen und Frameworks umfasst und durch diverse Plugins erweitert werden kann.
IntelliJ läuft in der Java VM und kann daher unter Windows, MacOS und Linux verwendet werden. Es gibt eine kostenlose Community Edition und eine kommerzielle, kostenpflichtige Ultimate Edition für 499€ pro Jahr. Beide Editionen unterstützen die bereits erwähnten Sprachen und die Frameworks Android, Swing und JavaFX. Damit eignet sich IntelliJ sowohl für die Entwicklung von Desktopanwendungen, als auch für die Web- und mobile Entwicklung. Weiterhin gibt es einen Debugger, Decompiler, Unit Test Runner, eine Anbindung an Git, Subversion und TFS sowie die Integration der Buildtools Maven und Gradle. Mit diesen Features können sowohl Einsteiger als auch Fortgeschrittene gut eigene Projekte entwickeln.
Die Ultimate Edition bietet zusätzlichen Support für die Sprachen JavaScript, TypeScript, SQL, Python, Ruby, PHP und Go und für die Frameworks Spring, Java EE, Angular, NodeJS und VueJS. Der Funktionsumfang erweitert sich um Analysetools, mit denen beispielsweise die Klassen- und Objektstruktur oder Abhängigkeiten innerhalb eines Moduls oder Projektes analysiert und dargestellt werden können.
Grundsätzlich hat sich IntelliJ seinen Platz an der Spitze sicherlich verdient, allerdings gilt es anzumerken, dass der Umgang mit der IDE eine hohe Lernkurve hat. Obwohl die UI grundsätzlich übersichtlich gestaltet und frei konfigurierbar ist, bedarf es einiger Zeit, bis man alle Tricks und Kniffe kennt und mit IntelliJ wirklich effizient umgehen kann.
Eclipse
Eclipse ist ebenfalls eine IDE, die hauptsächlich zur Entwicklung von Java verwendet wird und selbst in Java geschrieben ist. Der Herausgeber des Tools ist die Eclipse Foundation und die Software ist open-source, plattformunabhängig und kostenlos verfügbar – auch für kommerzielle Entwicklung. Es gibt ein umfangreiches Plugin-System, das unter anderem der sehr aktiven Community zuzuschreiben ist. Durch diese Plugins ist mittlerweile auch Support für andere Sprachen, wie C++, C#, Python, JavaScript oder PHP gegeben.
Eclipse arbeitet mit Arbeitsbereichen, sogenannten Workspaces, denen mehrere Projekte und Dateien hinzugefügt werden können. Die IDE stellt verschiedene Fenster und Sichten (Views) zur Verfügung, mit denen die Oberfläche per Drag and Drop frei zusammengesetzt wird. Zu den verfügbaren Views gehören u.a. ein Projektexplorer, Debugging-Tools, Objekt- und Klassenhierarchien und Fenster, in denen Java-Ausdrücke direkt evaluiert werden können. Um während der Arbeit zwischen Programmierung und Debugging zu wechseln, gibt es außerdem verschiedene Perspektiven, die aus unterschiedlichen Views bestehen. Zuletzt stehen diverse Projektvorlagen bereit, um Projekte aller Art schnell zu beginnen. Durch Plugins kann Eclipse neben der Desktop-Entwicklung auch für Web- und mobile Development eingerichtet und um entsprechende Vorlagen erweitert werden.
Einige Nutzer kritisieren an Eclipse allerdings, dass die Einrichtung sehr umständlich ist und es immer wieder zu Problemen beim Update von Plugins kommt. Zudem dauert es nach dem Start, bis ein Workspace fertig kompiliert ist und die Arbeit beginnen kann. Ebenfalls für einige Nutzer relevant: Das Dark-Layout der IDE ist nicht so schön, wie bei anderen Produkten.
NetBeans
Die NetBeans IDE, die zur Apache Software Foundation gehört, wird ebenfalls hauptsächlich für Java verwendet, unterstützt aber auch C, C++ und weitere dynamische Programmiersprachen. Die IDE ist open-source, plattformunabhängig und kostenfrei verfügbar. In Umfragen über die Beliebtheit von IDEs steht NetBeans meist auf Platz 3 hinter IntelliJ und Eclipse.
NetBeans ist modular aufgebaut, wobei jedes Modul eine eigene Funktion, wie Java oder CVS Support umfasst. NetBeans wird direkt mit allen zur Entwicklung notwendigen Modulen, u.a. einem Codeeditor, einem Debugger, einem Profiler und Support für den Webserver Tomcat, den Applicationserver GlassFish, das Buildtool Maven und das VCS Git installiert. Weitere Funktionen wie spezielle Code-Formatter, Linter oder Support für anderen Sprachen und Frameworks können über Plugins jederzeit hinzugefügt werden. Mit vielen verschiedenen Projekttemplates kann der Entwickler direkt ein neues Projekt beginnen. Damit ist auch NetBeans insgesamt ein Allrounder, mit dem Software für alle Zielplattformen und -geräte entwickelt werden kann.
Ein Nachteil von NetBeans ist, dass die IDE relativ viel Speicherplatz verbraucht und vergleichsweise schwergewichtig ist. Insbesondere beim Debugging ist NetBeans langsamer als andere IDEs.
Microsoft Visual Studio
Microsoft Visual Studio ist die Entwicklungsumgebung aus dem Hause Microsoft und unterstützt unter anderem C#, Visual Basic, Visual C++, ASP.NET, JavaScript, Visual F# und XAML. Grundsätzlich ist Visual Studio nur für Windows-Betriebssysteme verfügbar. Seit 2017 gibt es allerdings auch Visual Studio 2017 for Mac, das auf Xamarin basiert und bei der Entwicklung die Zielplattformen Android, macOS, iOS, Web und Cloud untertsützt.
Ähnlich zu IntelliJ gibt es von Visual Studio sowohl eine kostenlose Community Edition als auch eine kostenpflichtige Professional Version. Die Community Edition richtet sich an einzelne Entwickler und kleine Teams und darf für open-source Projekte und zur Selbstbildung verwendet werden. Die IDE untertsützt Refactoring, Debugging, Codemetriken und Unit Testing. Mit IntelliSense gibt es außerdem ein umfangreiches Hilfsmittel zur Codevervollständigung. Visual Studio zeichnet sich durch eine große Menge an Bibliotheken und Erweiterungen aus, die die Entwicklung von Desktop-, Web und mobilen Anwendungen ermöglichen.
Visual Studio Professional kostet 870$ (ca.720€) pro Jahr und ist insbesondere für Unternehmen oder Einzelpersonen, die ihre Software verkaufen wollen, relevant. Erst mir Visual Studio Enterprise für 2.569$ (ca. 2305€) pro Jahr kommen neue Features wie umfangreiche Debugging- und Testfunktionen und ein Xamarin Inspector bzw. Profiler hinzu. Für Privatpersonen ist die Community Edition daher vollkommen ausreichend.
Grundsätzlich ist Visual Studio
relativ schwergewichtig und benötigt daher einige Ressourcen um gestartet zu
werden und Code zu bearbeiten. Auch die Bindung an Microsoft und das
.NET-Framework wird von manchen Nutzern als Nachteil empfunden.
Visual Studio Code (VS Code)
VS Code gehört wie Visual Studio zu Microsoft und ist im Grunde vor allem ein Quelltexteditor, der zusätzlich zur Syntaxhervorhebung interaktives Debugging, Buildtools und Codeverwaltung in Form einer Git-Anbindung bereitstellt. Zu beachten ist, dass VS Code keine Anbindung an den Team Foundations Server, die Microsoft-eigene Plattform für kollaborative Softwareprojekte, mitbringt.
Insbesondere Debugging ist ein Feature, das in leichtgewichtigen IDEs und Texteditoren oft fehlt oder nicht ausreichend gut untertsützt wird. VS Code soll diese Lücke füllen und die Simplizität eines Texteditors mit den wichtigsten Features für die Softwareentwicklung in einer möglichst frei konfigurierbaren Software verbinden.
Obwohl man auf Grund des Namens Ähnlichkeiten zu Visual Studio vermuten könnte, haben beide IDEs bis auf IntelliSense wenig gemeinsam. VS Code arbeitet nicht auf Basis von Projekten, sondern mit Quelltextdateien und Ordnern in Workspaces. Zudem stellt die IDE mehr Funktionalität zur Webentwicklung bereit, wie Support für NodeJS, JSX/React, HTML, CSS und JSON. Dafür fehlt bisweilen Support für ältere .NET-Technologien. So können nur Projekte ab Visual Studio 2017 geöffnet und bearbeitet werden.
Im Gegensatz zu Visual Studio ist VS Code auch unter Linux und MacOS und nicht nur unter Windows verfügbar.
PyCharm
PyCharm ist eine Entwicklungsumgebung für Python, die wie IntelliJ zu JetBrains gehört. Es gibt eine kostenlose Community Edition und eine Professional Edition, die ab 199$ (ca. 178€) verfügbar ist. Während die Community Edition nur Python und R unterstützt, bietet die Professional Version auch Support für HTML, JavaScript und SQL. Tools für Fullstack Web Development und die Integration von Python Web Frameworks sind ebenfalls erst Teil der Professional Edition.
Der Vorteil von PyCharm gegenüber anderen Python Editoren wie der Python IDLE sind die integrierte Autovervollständigung, bessere Codenavigation, Versionskontrolle und die Möglichkeit, den Quellcode interaktiv zu debuggen. Auch Funktionen zum Refactoring stehen zur Verfügung. Insbesondere für größere oder kollaborative Projekte mit Python ist es sinnvoll, eine vollumfängliche IDE zu verwenden – und Pythonentwickler sollten PyCharm zu diesem Zweck auf jeden Fall ausprobieren.
Code::Blocks
Code::Blocks ist eine freie und quelloffene Entwicklungsumgebung, die vorrangig für C, C++, D und Fortran verwendet wird und auf allen Betriebssystemen läuft. Es hat ein eigenes, anpassbaren Build-System und untertsützt Make, ein Tool zur Build-Automatisierung mit sogenannten Makefiles. Da die IDE in C++ geschrieben ist, ist sie nicht von einer proprietären Sprache abhängig.
Code::Blocks ist sehr leichtgewichtig und stellt dabei trotzdem die wichtigsten Bestandteile einer IDE, also einen Codeeditor, einen Compiler und einen Debugger bereit. Der Compiler ist sehr schnell und frei konfigurierbar. Die Lernkurve für den Umgang mit der IDE ist dank der Leichtgewichtigkeit eher niedrig. Manche Entwickler sehen darin einen Vorteil, andere können sich durch die Limitationen insbesondere bei größeren oder fortgeschrittenen Projekten eingeschränkt fühlen. Die Autovervollständigung und die Anzeige von Fehlern und Warnungen ist in Code::Blocks ebenfalls nicht so ausgereift wie in anderen IDEs. Wer bisher vor allem mit Texteditoren programmiert hat oder gerne mit VIM arbeitet, findet in Code::Blocks aber sicherlich eine geeignete IDE für seine Projekte.
XCode
XCode ist eine IDE für macOS, die von Apple vertrieben wird. Entsprechend lassen sich mit dieser IDE Programme für macOS, iOS, tvOS und watchOS primär in den Sprachen Swift und Objective-C entwickeln. Die IDE untertsützt aber auch C, C++, Java oder Ruby. XCode ist kostenlos verfügbar und läuft nur unter macOS, nicht unter Windows oder Linux. Möchte man seine Apps im AppStore veröffentlichen, muss man zusätzlich eine Developer License für 99$ pro Jahr erwerben. Dann lassen sich die Apps direkt aus der IDE veröffentlichen.
Das gesamte Entwicklungspaket von XCode wird XCode Tools oder XCode Package genannt und enthält neben Editor, Compiler und Debugger einen Interface Builder, verschiedene Analyseprogramme für CPU- und Speicherverbrauch, sowie einen iPhone und iPad Simulator. Der Codeeditor stellt Syntaxhighlighting, Autovervollständigung, Codenavigation und Tools zum Refactoring zur Verfügung.
Android Studio
Android Studio ist eine freie IDE von Google, die für die Android-Softwareentwicklung gedacht ist. Die Software setzt auf der IntelliJ Community Edition auf. Neben dem Funktionsumfang von IntelliJ bietet Android Studio Unterstützung für die Entwicklung von Android, Android Wear und Android TV Apps. Die Apps können für verschiedene Ausgabegeräte emuliert und erstellt werden. Die IDE nutzt ein Build-Management-System auf Basis von Gradle und hat einen eigenen Android-bezogenen Linter, der auch die Kompatibilität von Versionen und die Performance der App analysieren kann. ProGuard, eine freie Software, die das Dekompilieren von Jars erschwert und deren Größe optimiert, sowie Mechanismen zum Signieren einer App sind im Build-Prozess integriert. Zuletzt gibt es Templates für beliebte Android Designs und Komponenten, um das Design der Oberfläche zu erleichtern.
Alles in allem ist Android Studio ein guter Editor, wenn man Android-Apps entwickeln möchte und spezielle, explizit für diese Entwicklung ausgelegt Features, benötigt.
Komodo
Komodo ist eine IDE, die vor allem für die Webentwicklung gedacht ist. Sie ist als Teil der ActiveState Platform mittlerweile kostenlos verfügbar und vereint Support für die wichtigsten Sprachen im Bereich des Web Development – unter anderem Python, JavaScript, PHP, Perl, Ruby und Go. Um die Software nutzen zu können, braucht man einen Account, der ebenfalls kostenlos angelegt werden kann.
Der Codeeditor der IDE ist Komodo Edit. Komodo Edit kann separat installiert werden und stellt alle üblichen Features wie Autovervollständigung, Syntaxhervorhebungen, Refactoring und Navigation bereit. Neben diesen Features bietet die Komodo IDE Unit Testing, Print und Chrome Debugging, einen Dependency Detector und viele weitere mächtige Tools zur Softwareentwicklung.
Der Hintergrundgedanke von Komodo ist, dass sich die IDE eher wie ein Texteditor anfühlen und den Entwickler nicht mit zu vielen Funktionen überfordern soll. Zwar können alle Features konfiguriert und der Oberfläche hinzugefügt werden, es steht dem Nutzer aber auch frei, Komodo auf das Aussehen eines Texteditors herunterzubrechen.
Fazit – Was ist die beste IDE?
Wie Sie sehen, gibt es verschiedene IDEs, die für einzelne Sprachen und Projekttypen besser oder schlechter geeignet sind. Keine davon kann pauschal als die beste IDE bezeichnet werden.
Für Java sind insbesondere IntelliJ, Eclipse und NetBeans die wichtigsten IDEs. Alle drei sind kostenlos verfügbar (wobei IntelliJ noch eine kostenpflichtige Version für kommerzielle Entwicklung anbietet), plattformunabhängig und unterstützen Desktop-, Web und mobile Entwicklung. Für C# und das .NET-Framework sind sowohl Visual Studio als auch Visual Studio Code sehr gut geeignet, wobei Visual Studio Code plattformunabhängig und leichtgewichtig, Visual Studio dafür sehr mächtig und durch viele Bibliotheken erweiterbar ist. Mit diesen fünf IDEs lassen sich dank umfangreichen Plugins auch die meisten anderen Sprachen wie C, C++, JavaScript oder Python entwickeln.
Wer auf der Suche nach einer spezialisierten IDE ist, findet eine solche in Code::Blocks für C / C++, in PyCharm für Python, in XCode für die Entwicklung unter Mac, in Android Studio für Android-Apps und in Komodo für Webentwicklung.
Bei der Auswahl einer IDE sollte man vor allem den Funktionsumfang und Support für einzelne Sprachen und Frameworks zu beachten. Die meisten IDEs stellen mittlerweile einen guten, interaktiven Debugger, eine gute Autovervollständigung, Codenavigation, Refactoring-Tools und auch eine VCS-Anbindung bereit, sodass diese Punkte bei beliebten IDEs als gegeben angenommen werden können. Features wie Objekt- und Klassenmodellierung, Datenbankintegration oder fortgeschrittene Codeanalyse und Debugging sind allerdings nicht immer vorhanden oder müssen manchmal gesondert hinzugekauft werden.
Welche IDE bevorzugen Sie? Wir freuen uns über Ihre Meinung in den Kommentaren!
Für Python verwende ich Spyder. Das ist meiner Meinung nach eine sehr gute und komfortable IDE, speziell wenn man DataScience oder ML machen möchte, aber auch fürs allgemeine Python-Programmieren gefällt sie mir sehr gut.
Zur Zeit nutze ich die Arduino IDE für Arduino Projekte und Thonny Python IDE.
Beruflich habe ich Basic, Pascal und Atlas programmiert.
Als ich nnoch beruflich programiert habe (Ass, C, C++, Java) habe ich Visual Studio benutzt. Jetzt entwickle ich zur geistigen Ertuechtigung auf meineem Mac Book apps und benutzte Xcode und Swift als Sprache. Mit Storyboard und oder SwiftUI lassen sich unter XCode sehr einfach und elegant apps entwickeln – macht Spass!
Meine beste IDE ist Codelobster – http://www.codelobster.com
Vorzugsweise wird von mir die IDE des Arduino benützt.
Ich nütze diese IDE ausschließlich für meine privaten nicht kommerziell orientierten
Studien mit dem UNO und dem ATMega 328 und neuerdings auch dem Trinket zur
Aufrecherhaltung meiner geistigen Fähigkeiten.
Wie und wo sehen Sie PlatformIO?
Hallo Herr Kühnel,
für den IoT Bereich ist PlatformIO sicherlich gut geeignet, alternativ bietet auch das Atmel Studio einige Vorteile.
Viele Grüße,
Matthias Kaiser
Hallo,
Die Lazarus IDE ist leistungsstark und für diverse Betriebssysteme verfügbar.
https://www.lazarus-ide.org/
Gruss,
Mat
Hallo Mat,
danke für die Ergänzung!
Viele Grüße,
Matthias Kaiser