Stabil und robust

Eclipse Xtext 2.13 ist erschienen

Karsten Thoms

© Shutterstock.com / Adha Ghazali

Pünktlich zur EclipseCon Europe 2017 erschien Eclipse Xtext 2.13 letzte Woche. Die neue Version wurde designt, um möglichst gut mit Eclipse Oxygen.1a verwendbar zu sein und ist gleichermaßen der erste Meilenstein auf dem Weg zum 2018 folgenden Eclipse Photon Simultaneaous Release. Mit an Bord sind unter anderem eine verbesserte Unterstützung des Language Server Protocols, neue Library-Funktionen und ein API für die Bearbeitung von EMF-Modellen.

Im Fokus des Updates stand erneut die Stabilität und die Mitarbeiter bauten den Ruf Xtexts aus, ein Projekt mit einer der höchsten Fixing-Rate von AERI Problem Reports zu sein. Für Eclipse Photon sollen Language Server, Usability und Skalierbarkeit weiter verbessert werden. Für Nutzer älterer Eclipse-Versionen bleibt Xtext rückwärtskompatibel bis Eclipse Luna.

Xtext 2.13 – das ist neu

Language Server Support

Der New Project Wizard von Xtext wurde überarbeitet und Nutzer können nun ganz einfach Language Server Packages für Sprachen erstellen, die mit Xtext kreiert wurden. Nach dem Update ist es Nutzern möglich, ihre Build Scripts so zu erweitern, dass sie die entsprechenden Packages produzieren. Diese können dann wiederum in jedwedes Tool integriert werden, die die Spachintegration über das Language Server Protocol (LSP) unterstützt, VS Code oder Eclipse Che sind typische Beispiele dafür.

Für die Packages kann man zwischen verschiedenen Formaten wählen, verfügbar sind etwa das Fat Jar Packaging, das die domänenspezifische Sprache (DSL) und alle nötigen Abhängigkeiten in eine einzige ausführbare JAR-Datei fasst, oder das reguläre Format, das jedes einzelne jar für sich lässt und Launch-Skripte für den Language Server beinhaltet. Für gewöhnlich sind Language Server Packages etwa 13 MB groß. Sind sie größer, liegt das für gewöhnlich an den individuellen Abhängigkeiten der DSL.

Der vollständige Support des Language Server Protocols ist eine Toppriorität von Xtext, mit diesem Release gibt es nun wenigstens die Unterstützung für rename refactoring.

Qualität, Stabilität, Robustheit

Oftmals gibt es keine Details zu den gefixten Bugs eines Updates, sondern nur einen Link zu einer Liste in den Release Notes. Dabei handelt es sich beim Bugfixing um die wichtigste und undankbarste Aufgabe, um ein Projekt am Leben zu erhalten. Das ist mit Sicherheit nicht die spaßigste Aufgabe, aber für die Gesundheit eines Projektes unerlässlich.

Mit Xtext 2.13 erreichte das Team einen Break-Even-Punkt, was bedeutet, dass nicht mehr Bugreports eingereicht werden, als vom Team bearbeitet werden können. In manchen Wochen ist es nun sogar möglich, den Rückstau an gemeldeten Bugs abzuarbeiten, ohne mit neuen konfrontiert zu werden. Aktuell sind lediglich 10 Prozent der Reports noch offen, was Xtext in dem Bereich zu einem der aktivsten Projekte macht.

Xbase Library & Model Manipulation API

Das Library Bundle org.eclipse.xtext.xbase.lib hat eine neue Funktion spendiert bekommen: flatMap(). Diese kombiniert map mit flatten, was gerade für die funktionale Programmierung ein sehr wichtiger Befehl ist. Veränderbare Collection-Literale bekommen zudem endlich no-args-Factory-Methoden in der Klasse CollectionLiterals. Der Code von Xtext wurde dementsprechend überarbeitet, um von der Performanzverbesserung durch diese Methoden zu profitieren.

Im Inkubator befindet sich derzeit das neue API für die Bearbeitung des Prozesses für Änderungen des EMF-Modells. Das Kernkonzept ist das Interface IChangeSerializer. Dieses API ist vor allem für den Gebrauch durch erfahrenere Nutzer gedacht, normalerweise ist die Synchronisation von Text mit den EMF-Ressourcen ein Teil dessen, die Xtext für die Nutzer erledigt. Da sich das API noch in der Testphase befindet, kann es zu Änderungen kommen.

Eclipse Photon im Blick

Xtext 2.13 stellt den ersten Meilenstein für das im kommenden Sommer erscheinende Eclipse Photon dar. Geplant ist es, Xtext 2.15 zu diesem Zeitpunkt zu veröffentlichen, was bedeutet, dass ein weiteres Major Release für die Zwischenzeit geplant ist. Bei der itemis AG wird aller Voraussicht nach in nächster Zeit besonders an der Unterstützung der Language Server und von Java 9 sowie der Nutzerfreundlichkeit und der Performance von Xtext gearbeitet werden.

In Bezug auf Java 9 wurden die ersten Probleme festgestellt und identifiziert, allerdings war es nicht möglich, alle für Xtext 2.13 bereits zu lösen. Wer dabei helfen möchte, der ist herzlich dazu eingeladen, Feedback zu geben oder an dem Projekt mitzuarbeiten. Detailliertere Informationen zum aktuellen Update gibt es in den Release Notes.

Diese News erschien im englischem Original auf dem Blog der itemis AG

Geschrieben von
Karsten Thoms
Karsten Thoms
Karsten is a software architect at itemis and part of the Xtext team. He strongly believes that Model Driven Software Development helps to be more efficient in mission critical projects.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: