Theia: Eine einzige IDE auf dem Desktop und in der Cloud - JAXenter
Yet another IDE?

Theia: Eine einzige IDE auf dem Desktop und in der Cloud

Dominik Mohilo

© Shutterstock.com / Standard Studio

Desktop oder Web-IDE? Diese Frage stellt sich so mancher Entwickler, wenn es darum geht, die Entwicklungsumgebung für das nächste Projekt zu wählen. Mit Theia, dem neuen Open Source IDE Framework von TypeFox, soll diese Frage bald obsolet sein. Wie das funktionieren soll, haben wir uns angesehen.

Seit einigen Wochen arbeiten Entwickler aus dem Hause TypeFox, darunter Sven Efftinge, der manchem als Co-Designer der Sprache Xtend bekannt sein dürfte, gemeinsam mit weiteren Programmierern an Theia. Die neue Entwicklungsumgebung soll durch ihre vielseitige Verwendbarkeit, ihre Erweiterbarkeit und den Einsatz moderner Web-Technologien besonders zukunftssicher sein.

Die Features von Theia

Das Open Source IDE Framework ist komplett in TypeScript geschrieben und verwendet den Code Editor Monaco aus dem Hause Microsoft. Dank der recht guten Erweiterbarkeit der Entwicklungsumgebung (dazu später mehr), ist die Verwendung von Microsoft Monaco allerdings nicht in Stein gemeißelt: Sven Efftinge erklärt auf dem Blog von TypeFox, dass auch zum Beispiel Orions Code Editor genutzt werden kann.

Theia ist zudem darauf ausgelegt, sowohl als native Desktop-Anwendung als auch im Browser verwendet zu werden. Es gibt sogar die Möglichkeit einer „Mischform“ der Anwendung, nämlich als native Desktop-App in Verbindung mit einem verteilten Workspace. Damit ist Theia zukunftssicher, denn egal, ob der eigene Fokus primär auf Cloud- oder Desktop-Entwicklung liegt, die Vorteile von Web-Technologien können in jedem Fall genutzt werden.

Vergleich: Theia im Browser und auf dem Desktop / Quelle: TypeFox

Auch in Sachen Erweiterbarkeit ist Theia gut aufgestellt. Das offene Framework gibt Nutzern alle Möglichkeiten an die Hand, deren Theia-basierte IDEs so zusammenzuschustern, wie sie das gerne möchten. Das Ganze funktioniert so: Jede Funktionalität wird als Erweiterung implementiert und nutzt dementsprechend das gleiche API, das auch eine Erweiterung eines Drittanbieters nutzen würde. Außerdem wird bei Theia das Dependency Injection Framework Inversify.js genutzt, um die Front- und Backend-Anwendung zusammenzustellen und zu konfigurieren.

Wenig überraschend ist die Unterstützung des Language Server Protocols (LSP). Erfahrungen zur Implementierung des LSP-Supports in ein Framework konnten die Entwickler von TypeFox bereits bei der aktuellen Version von Xtext sammeln. Von Haus aus an Bord sind der Java Language Server von Eclipse und der Language Server für Python.

Auch was die individuelle Gestaltung der Benutzeroberfläche angeht, ist Theia anderen Code Editoren voraus: Das sogenannte Dock Layout ermöglicht es, das UI an die Arbeit mit den gerade verwendeten Tools anzupassen. Die Benutzeroberfläche von Theia kann beispielsweise mit Side Panels erweitert werden, die eventuell aus der Arbeit mit Produkten von JetBrains bekannt sind. Hierfür kommt bei Theia die Layout-Manager-Bibliothek phosphor.js zum Einsatz.

Das Dock Layout in Aktion / Quelle: TypeFox

Ausblick

Es ist wichtig zu erwähnen, dass Theia ein Projekt ist, das sich noch am Anfang seiner Entwicklung befindet. Keinesfalls ist die IDE bereits fertig, lediglich die grundlegende Architektur ist aktuell verfügbar. Bereits jetzt arbeitet das CDT-Team von Ericsson an Theia mit und es sollen sich bald weitere Helfer dem Projekt anschließen. In technischer Hinsicht ist geplant, den TypeScript Language Service in das LSP einzubetten, sodass die IDE selbst genutzt werden kann, um Theia zu implementieren.

Weitere Informationen zu Theia, inklusive zweier Beispiele, gibt es auf GitHub, eine detailliertere Übersicht über die Funktionalität und Features von Theia hat Sven Efftinge auf dem Blog von TypeFox veröffentlicht.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.