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.
Beliebte Typen von IDEs
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.