© Excellent backgrounds/Shutterstock.com
Die Vorteile von Xtext

Auf neuen Plattformen


Xtext ist im Eclipse-Umfeld das Standardwerkzeug für die Entwicklung domänenspezifischer Sprachen. Doch viele Entwickler bevorzugen IntelliJ, und Businessexperten machen einen großen Bogen um jede IDE. Jetzt können auch diese Nutzer von Xtext profitieren.

Xtext macht die Entwicklung von Programmiersprachen und DSLs für jeden zugänglich. Aus der Grammatikdefinition leitet das Tool automatisch Parser, Linker und Domänenmodell ab. Auch ein mächtiger Eclipse-basierter Editor gehört zur Serienausstattung jeder Xtext-Sprache dazu. Navigation, Auto-Completion und Syntax-Highlighting sind nur einige der vielen Funktionen.

Doch schon seit langer Zeit berichten uns Nutzer, es sei schwierig, Xtext in einem gemischten Team zu etablieren. Die IntelliJ-Nutzer lehnen verständlicherweise ein Werkzeug ab, das in ihrer IDE nicht unterstützt wird. Andere mussten Eclipse als IDE ihrer Wahl aufgrund äußerer Zwänge aufgeben, zum Beispiel als Google Android Studio veröffentlichte. Damit mussten viele Entwickler auch ihre liebgewonnene Sprache Xtend zurücklassen. Daher entschlossen wir uns, Xtext für IntelliJ zu portieren.

Zugleich sahen wir viele Webanwendungen, in denen Geschäftsregeln entweder über umständliche Formulare konfiguriert oder in primitiven Textfeldern gepflegt werden. Features wie Validierung, Syntax-Highlighting oder Auto-Completion sucht man dort vergeblich. Eine schwergewichtige IDE kommt aber auch nicht in Frage. Darum setzten wir uns als zweites Ziel, Xtext-Sprachen in Webanwendungen integrierbar zu machen.

Als positiver Seiteneffekt dieses Strebens entstand ein neues Teilprojekt, welches wiederverwendbare, plattform­unabhängige Logik enthält. So können Nutzer Xtext auch in Plattformen integrieren, die nicht zum mitgelieferten Umfang gehören. Denkbar wären beispielsweise ­NetBeans, MagicDraw oder Sublime Text.

oehme_1.tif_fmt1.jpgAbb. 1: Validierungsregeln können plattformunabhängig implementiert werden

Xtext in IntelliJ: IntelliJ hat ein eigenes Modellierungsframework, welches zwingend zur Integration in die IDE benutzt werden muss. Xtext hingegen setzt für seine APIs auf das ­Eclipse Modeling Framework (EMF). Diese beiden Modelle müssen vom Parser erzeugt und bei Änderungen synchron gehalten werden – ein Mehraufwand, auf dessen Optimierung wir viel Zeit verwendet haben. Des Weiteren arbeitet IntelliJ hochgradig parallel. Dienste wie Validierung, Syntax-Highlighting und die Structural-View greifen gleichzeitig auf das Modell zu. Die Navigation von EMF-Modellen kann jedoch Sei...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang