Was ist eine IDE?

 

Eine IDE (Integrated Development Environment) oder integrierte Entwicklungsumgebung ist Software für die Anwendungsentwicklung, die gängige Entwicklertools in einer zentralen grafischen Oberfläche vereint. Eine typische IDE besteht aus folgenden Komponenten:

  • Quellcode-Editor: Ein Texteditor, der eine Programmierung von Software-Code mit folgenden Features unterstützt: Syntaxhervorhebung mit visuellen Hinweisen, sprachspezifische Autovervollständigung und eine Bug-Prüfung, während der Code geschrieben wird.
  • Automatisierung lokaler Builds: Dienstprogramme, mit denen sich einfache wiederholbare Aufgaben im Rahmen der Entwicklung lokaler Software-Builds zur Nutzung durch die Entwickler automatisieren lassen, wie beispielsweise die Kompilierung von Quell- in Binärcode, dessen Paketierung und die Ausführung automatischer Tests.
  • Debugger: Ein Programm zur Prüfung anderer Programme, mit dem sich die Position von Bugs im Originalcode grafisch anzeigen lässt.
Mithilfe von IDEs können Entwickler schneller mit der Programmierung neuer Anwendungen beginnen, weil nicht mehrere Dienstprogramme als Teil des Setup-Prozesses manuell konfiguriert und integriert werden müssen. Die Entwickler müssen auch nicht mehr Stunden damit verbringen, die Bedienung unterschiedlicher Tools zu erlernen, da jedes dieser Dienstprogramme in derselben Workbench enthalten ist. Dies kann sich speziell beim Onboarding neuer Entwickler als nützlich erwiesen, da sich diese mithilfe der IDE bei den Standard-Tools und -Workloads eines Teams in kürzester Zeit auf den neuesten Stand bringen können. Tatsächlich ist es so, dass die meisten Features einer IDE konzipiert wurden, um Zeit zu sparen, sodass z. B. intelligente Code-Vervollständigung und automatische Code-Generierung dafür sorgen, dass komplette Zeichensequenzen nicht mehr komplett ausgeschrieben werden müssen.
Andere allgemeine IDE-Features wiederum sollen die Entwickler dabei unterstützen, ihre Arbeitsabläufe zu organisieren und Probleme zu lösen. IDEs parsen den Code, während er geschrieben wird, sodass von Menschen verursachte Bugs in Echtzeit festgestellt werden können. Und weil die Dienstprogramme auf einer zentralen grafischen Oberfläche dargestellt werden, können die Entwickler Aktionen ausführen, ohne zwischen Anwendungen wechseln zu müssen. Die Syntaxhervorhebung, die man in den meisten IDEs ebenfalls häufig vorfindet, nutzt visuelle Hinweise, um Grammatikelemente im Texteditor zu unterscheiden. Manche IDEs umfassen außerdem Klassen- und Objekt-Browser sowie Klassenhierarchiediagramme für bestimmte Sprachen.
Es ist möglich, Anwendungen ohne IDE zu entwickeln. Alternativ können Entwickler auch Ihre eigene IDE erstellen, indem sie verschiedene Dienstprogramme manuell mit einem kompakten Texteditor wie Vim oder Emacs integrieren. Manche Entwickler schätzen hierbei den hohen Grad der Anpassungsfähigkeit und die vorhandene Kontrolle. In einem Unternehmenskontext jedoch sind moderne IDEs dank ihrer Zeitersparnis, der standardisierten Umgebung und den Automatisierungsfunktionen anderen Konzepten weit überlegen.Aktuell setzen die meisten Teams bei der Enterprise-Entwicklung auf eine
vorkonfigurierte IDE, die für ihren Use Case am besten geeignet ist. Die Frage ist also nicht, ob eine IDE, sondern welche IDE ausgewählt werden sollte. 

Es existieren viele unterschiedliche technische und geschäftliche Use Cases für IDEs, was wiederum bedeutet, dass der Markt diverse IDE-Optionen im proprietären wie im Open Source-Bereich bietet. Die wichtigsten Unterscheidungsmerkmale bei den IDEs sind im Allgemeinen:

  • Die Anzahl der unterstützten Sprachen: Manche IDEs wurden speziell für eine bestimmte Sprache geschrieben und sind daher für eine spezifische Programmierung besser geeignet. So ist z. B. IntelliJ in erster Linie als Java-IDE bekannt. Andere IDEs wiederum bieten eine Vielfalt an unterstützten Sprachen, wie beispielsweise die Eclipse-IDE für Java, XML, Python und andere.
  • Unterstützte Betriebssysteme: Das Betriebssystem des Entwicklers schränkt Typ und Zahl der möglichen IDEs ein (es sei denn, die IDE ist cloudbasiert). Dazu kann die entwickelte Anwendung für Endbenutzer mit einem bestimmten Betriebssystem (wie Android oder iOS) weitere Einschränkungen vorgeben.
  • Automatisierungsfunktionen: Auch wenn die meisten IDEs mit Texteditor, Build-Automatisierung und Debugger bereits drei grundlegende Features umfassen, unterstützen viele von ihnen noch weitere Funktionen wie Refactoring, Code-Suche und CI/CD-Tools (Continuous Integration/Continuous Deployment).
  • Auswirkungen auf die Systemleistung: Entwickler, die gleichzeitig mehrere speicherintensive Anwendungen ausführen möchten, sollten zudem darauf achten, wie viel Arbeitsspeicher die IDE benötigt.
  • Plugins und Erweiterungen: In manchen IDEs ist es möglich, Workflows an die Anforderungen und Präferenzen des Entwicklers anzupassen. 

IDEs für eine mobile Entwicklung

Nahezu alle Branchen sind von der steigenden Popularität von Apps für Smartphones und Tablets betroffen. Dies hat viele Unternehmen dazu veranlasst, neben traditionellen Webanwendungen auch mobile Apps zu entwickeln. Einer der wichtigsten Faktoren bei der Entwicklung solcher Apps ist die Wahl der Plattform. Wenn eine Anwendung z. B. für iOS, Android und Webseiten geeignet sein soll, benötigen Sie eine IDE, die plattformübergreifende Unterstützung für mehrere Betriebssysteme bietet. 

Cloud-IDEs

IDEs, die auf einer Cloud und auf SaaS (Software-as-a-Service) basieren, bieten gegenüber lokalen Entwicklungsumgebungen diverse entscheidende Vorteile. Zunächst einmal müssen in einem SaaS-Modell weder Software heruntergeladen noch lokale Umgebungen und Abhängigkeiten konfiguriert werden, sodass die Entwickler umgehend Beiträge zum jeweiligen Projekt leisten können. Dies führt außerdem zu einer Standardisierung in allen Umgebungen der Teammitglieder und sorgt dafür, dass von einem Rechner zum nächsten keine Kompatibilitätsprobleme auftreten. Und da die Entwicklungsumgebung dazu zentral verwaltet wird, wird auf den Rechnern der einzelnen Entwickler kein Code gespeichert, was die Sicherheit erhöht und geistiges Eigentum schützt. 

Die Auswirkung von Prozessen auf lokale Rechner ist ebenfalls ganz anders. Prozesse wie die Ausführung von Builds und das Testen von Suites sind normalerweise sehr rechenintensiv. Dies bedeutet, dass Entwickler ihre Workstations während dieser Zeit nicht nutzen können. In einer SaaS-IDE lassen sich Jobs mit langer Ausführungszeit durchführen, ohne dass die Rechenressourcen eines lokalen Rechners übermäßig belastet werden. Cloud-IDEs sind dazu plattformunabhängig, sodass eine Verbindung zu unterschiedlichen Cloud-Anbietern möglich ist.