Interview mit Dr. Jan Köhnlein, CEO von TypeFox

Neue IDEs im Fokus: Theia, Sprotty und Eclipse Che – wie passen die drei zusammen?

Dominik Mohilo
Theia Eclipse Che Sprotty

© Shutterstock.com / oobqoo

In unserem Interview erläutert Dr. Jan Köhnlein, CEO von TypeFox, wie die Projekte Theia, Sprotty und Eclipse Che miteinander funktionieren. Außerdem gibt es Infos zu den Vorteilen durch Sprotty und zur genauen Funktionsweise des Frameworks.

JAXenter: Hallo Jan und danke, dass du dir die Zeit genommen hast. Auf Twitter hast du geschrieben, dass Theia das neue Frontend für Eclipse Che werden wird. Wie kam es dazu?

Wir arbeiten daran, Theia zu einem Eclipse-Projekt zu machen.

Dr. Jan Köhnlein: Das habe ich nach einem Vortrag von Stevan Le Meur (Eclipse Che Committer, RedHat) und Mélanie Bats (CTO von Obeo) auf der virtuellen CheConf 2018 getweetet. Stevan hat darin offiziell angekündigt, dass Theia das neue Frontend für Che wird und hat einen Prototyp demonstriert.

Natürlich hat das uns bei TypeFox nicht überrascht. Stevan hatte selbst einmal in einem Vortrag die „Development Experience“ mit der alten, auf dem Google Web Tool basierenden Che UI als “funky” bezeichnet; da bestand also offensichtlich Erneuerungsbedarf. Und seit wir auf der EclipseCon France 2017 zum ersten Mal das von TypeFox und Ericsson initiierte IDE-Framework Theia vorgestellt haben, stehen wir natürlich mit dem Che-Team in Kontakt. In diesem Jahr sind die ersten Che-Entwickler bei Theia mit eingestiegen, und wir arbeiten gemeinsam daran, Theia zu einem Eclipse-Projekt zu machen.

JAXenter: In dem Tweet wurde auch sprotty als das neue Standardframework für graphische Modellierung bezeichnet. Was hat es damit auf sich?

Dr. Jan Köhnlein: In demselben Vortrag auf der CheConf hat Mélanie einen Prototyp von Obeos Framework “Sirius” im Browser gezeigt, der auf sprotty basierte. Auch Obeo versucht, seine graphischen Modellierungswerkzeuge webtauglich zu machen, und dafür setzten sie jetzt auf das ebenfalls von TypeFox und Ericsson entwickelte Framework sprotty. Obeo und TypeFox sind in vielen Bereichen Partner, und wir freuen uns, dass auch sprotty in der Eclipse Community auf fruchtbaren Boden fällt.

Insgesamt setzen also zwei wichtige Mitglieder der Eclipse-Community für die Zukunft auf Technologien, die TypeFox initiiert hat und maßgeblich mit vorantreibt. Meine Freude darüber habe ich in diesem Tweet geäußert.

JAXenter: Zu Theia hatte Sven Efftinge sich schon umfassend geäußert, Eclipse Che war schon oft Thema auf JAXenter. Kannst du unseren Lesern vielleicht das Framework sprotty ein wenig näher bringen?

Dr. Jan Köhnlein: Gerne. Sprotty ist ein Open-Source-Framework für Diagramme im Browser. Mit sprotty haben wir alle unsere Erfahrungen mit graphischer Modellierung und Usability ins Web projiziert: schnelles Rendering dank nativer Web-Technologien (SVG, TypeScript, CSS), direkt im Framework eingebaute Animationen, automatisches Layout mit dem Eclipse-Layout-Kernel und Dependency Injection für einfache Anpassung und Erweiterung. Das traditionelle Model-View-Controller-Pattern haben wir aufgegeben, da es zu schnell zu unüberschaubaren Event-Feedback-Loops führt. An Stelle des Model-View-Controller-Pattern tritt eine reaktive Architektur, ähnlich zu React / Flux, mit einem uni-direktionalen Eventzyklus und einem virtuellen DOM.

Die meiner Meinung nach größte Stärke von sprotty ist, dass Aufgaben fast beliebig zwischen dem Frontend-Client im Browser und einem Server verteilt werden können. Jeder Vorgang im Diagramm — bspw. “füge einen Node hinzu” oder “ordne alle Elemente neu an” — wird als einfache Datenstruktur dargestellt. An einer Stelle im Eventzyklus werden diese “Actions” dann entweder lokal ausgeführt oder an einen Server weitergeleitet. Dieser kann wiederum selbst Actions generieren und in den Eventzyklus des Clients einspeisen.

Mit sprotty kann man einen Language Server zum Diagram Server ausbaucen.

Dieser Mechanismus ermöglicht es, sehr große Modelle einfach auf dem Server zu belassen und nur die für das Diagramm notwendigen Informationen an den Client zu schicken. Woran erinnert diese Trennung? Richtig, an das Language Server Protocol (LSP), bei dem der Editor auch nur mit dem Programmtext versorgt wird. Alle Aufgaben, die genauere Kenntnisse der Sprache benötigen, muss der Editor bei LSP an den Server delegieren.

Mit sprotty aber kann man einen Language Server einfach zum Diagram Server ausbauen. So etwas haben wir zum Beispiel im Yangster -Projekt realisiert, wo ein Xtext-basierter Language Server für die Programmiersprache YANG zusätzlich sprotty-Diagramme bereitstellt. Mit einem um den sprotty erweiterten Theia-Client erhalten wir dann einen Texteditor mit live aktualisierten Diagrammen des Inhalts. Im Browser oder als Rich-Client. Oder in Eclipse, wo wir den lsp4e-Editor mit sprotty im Browser-Widget kombiniert haben.

JAXenter: Welche Vorteile ergeben sich durch Theia und sprotty für Eclipse Che?

Dr. Jan Köhnlein: Stevan hat in seinem Talk bereits zwei Vorteile hervorgehoben: Die schnellere Startzeit und die stark reduzierte Compile-Zeit. Theia bringt da als native Web-Technologie (TypeScript) deutliche Vorteile gegenüber der alten (mit GWT geschriebenen) UI.

Da eine Integration von sprotty und Theia bereits existiert, können wir mit wenig Aufwand Tools mit schlauen Texteditoren und unterstützenden Diagrammsichten bauen, die im Browser oder als Rich-Client mit einem Che Backend auf Workspace-Containern in der Cloud laufen.

Das Theia-Projekt selbst bekommt durch die Che-Community natürlich eine Menge Rückenwind. Da es wirklich einfach ist, Theia zu erweitern, rechnen wir mit einem schnell wachsenden Ökosystem von Theia-Extensions, z.B. zur Unterstützung weiterer Sprachen oder zur Einbindung nützlicher Tools, von denen man dann auch als Che-User automatisch profitiert.

JAXenter: Vielen Dank für diese spannenden Einblicke!

Dr. Jan Köhnlein ist Geschäftsführer von TypeFox, einem Kieler Unternehmen das auf die Entwicklung von Programmierwerkzeugen für Entwicklern und Fachexperten spezialisiert ist. Jan ist der Kopf hinter FXDiagram und Committer in den Open-Source-Projekten Xtext und Xtend.

 

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

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: