Donnerstag, 24. Mai 2012


Artikel

Juni 2010 | Artikel

Eclipse Helios: "Es macht schlichtweg Spaß, mit Xtext Sprachen zu bauen"

(Link zum Artikel: http://www.entwickler.de/jaxenter//003170)

Was Xtext in der Helios-Version zu bieten hat

  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Xtext, das Framework für textuelle domänenspezifische Sprachen (DSLs), ist im Rahmen des Eclipse-Helios-Release-Zugs in Version 1.0 erschienen. Welchen Reifeprozess das Framework im letzten Jahr durchlaufen hat - und warum Xtext schlichtweg Spaß macht -, erklärt Xtext-Committer Sebastian Zarnekow im Gespräch mit JAXenter.
Teil 1   Teil 2   

JAXenter: Xtext ist ein Framework für die Entwicklung textueller domänenspezifischer Sprachen. Wo liegen die Besonderheiten von Xtext?

Sebastian Zarnekow: Mit Xtext 1.0 hat sich das Framework gemausert: Nicht nur die Entwicklung kleiner, domänenspezifischer Sprachen ist mit Xtext kinderleicht möglich. Vielmehr sprechen wir inzwischen von Xtext als "Language Development Framework". Es eignet sich damit hervorragend dafür, Programmiersprachen einschließlich einer integrierten Entwicklungsumgebung auf Basis von Eclipse zu erstellen.

Jeder, der dies einmal mit Xtext ausprobiert, wird erstaunt sein, wie schnell erste Erfolge erzielt werden können und wie stetig neue Ideen mit dem Framework umsetzbar sind. Ein Alleinstellungsmerkmal ist dabei aus meiner Sicht, dass Xtext sich dem Anwender nicht in den Weg stellt, sondern vielmehr an allen Stellen erweitert und angepasst werden kann, ohne aber Einsteiger zu überfordern. Tatsächlich sind die Implementierungen, die wir für die verschiedenen Aspekte einer Sprache mitliefern, in vielen Fällen schon passgenau für die eigene Sprache. Wenn nicht, dann lassen sie sich durch wenige Aktionen maßschneidern. Außerdem sind die Turn-Around-Zeiten mit Xtext sehr kurz - einem agilen Vorgehen, iterativen Prozessen und sukzessiver Spracherweiterung steht damit nichts im Wege.

Sollte ich jedoch genau eine Besonderheit benennen, dann möchte ich gern hervorheben, dass es schlichtweg Spaß macht, Xtext einzusetzen, um Sprachen zu bauen.

JAXenter: Können Sie ein Beispiel nennen, wo und wie Xtext heute produktiv zum Einsatz kommt?

Sebastian Zarnekow: Da fallen mir unterschiedliche Themen aus der Forschung, dem Open-Source-Bereich und aus der Wirtschaft ein. Das Fraunhofer Institut für Windenergietechnik in Bremerhaven verwendet Xtext beispielsweise, um Eingangsdaten für verschiedene Simulatoren einheitlich zu bearbeiten.

Unterschiedliche Projekte bei Eclipse setzen auf Xtext, um einen komfortablen Editor für Modelle zu bieten. Hier ist b3 oder RelaxNG zu nennen, oder OCL, die im Helios Release einige beispielhafte Editoren mit Xtext erstellt haben. Ein anderer Anwendungsfall ist das ARText-Projekt, das von BMW Car IT im Rahmen des Autosar-Standards entwickelt wird. Hier ist das Ziel, eine Möglichkeit zu bieten, unterschiedliche Versionen eines sehr umfangreichen Standards mit einer einheitlichen Syntax zu bearbeiten. Die NordLB hat mehrere, miteinander verwobene Sprachen gebaut, die bei der Migraton einer Host-Anwendung auf eine moderne Architektur zum Einsatz kommen.

Die Liste der Projekte, in denen Xtext produktiv eingesetzt wird, ließe sich fast beliebig fortführen. Im Migrationsbereich finden wir die automatische Transformation hunderter Dateien einer proprietären Scriptsprache auf eine Standardlösung oder auch die Ablösung alter, stark angepasster UML-Werkzeuge durch maßgeschneiderte Lösungen. Außerdem werden Mapping-Vorschriften für die Anbindung von Legacy-Datenbankschemata in einer J2EE-Anwendung mit Xtext beschrieben. Selbst bis hin zu domänenspezifischen Language Workbenches ist fast alles vertreten.

JAXenter: Xtext ist nun zum zweiten Mal beim jährlichen Eclipse Release Train dabei. Was hat sich im letzten Jahr getan?

Sebastian Zarnekow: Während das im letzten Jahr veröffentlichte Xtext 0.7 in erster Linie verwendet wurde, um Editoren für die eigenen Sprachen zu erstellen, haben wir jetzt die Grenzen des Editors verlassen. Eines der Kernthemen in der Helios-Version ist die neue Builder-Infrastruktur, die eine Zeit lang unter dem Begriff 'Index' die Runde gemacht hat. Wir haben einen inkrementellen Builder implementiert, der für beliebige EMF-basierte Ressourcen funktioniert - einschließlich transitiver Abhängigkeitsanalyse. Auf dieser Basis sind Funktionen wie ‘Find References’ oder 'Go To Model Element' umgesetzt worden.

Außerdem haben wir in diesem Zuge auch das Handling bei mehreren geöffneten Editoren verbessert. Es ist jetzt nicht mehr notwendig, einen Editor zu speichern, um auf dessen aktualisierten Inhalt aus anderen Dateien zu verweisen.

Die Möglichkeit, die eigene Sprache mit den Java Development Tools von Eclipse zu integrieren, ist ebenfalls hervorzuheben. Darüber hinaus hat sich gerade im UI-Bereich viel getan: Quick Fixes, Quick Outline oder Code Folding stehen neu auf der Feature-Liste, während der Formatierer und Content Assist stark verbessert wurden. Und natürlich sind zahlreiche Fixes und Korrekturen in die Codebasis eingeflossen.

Teil 1   Teil 2   

andere Artikel dieser Serie

Kommentare