Sonntag, 12. Februar 2012

News

präsentiert von: entwickler.com
Donnerstag, 25. Juni 2009

Galileo-Interview: Textuelle DSLs entwickeln mit Xtext

Dr. Jan Köhnlein

Von den über 50 Projekten und Subprojekten des Eclipse-Galileo-Releases befassen sich allein 22 mit Modell-getriebener Softwareentwicklung. Gerade im Bereich Modeling scheint Eclipse zurzeit die Plattform zu sein, welche die innovativsten Lösungen hervorbringt. Xtext, das Framework zur Entwicklung domänenspezifischer Sprachen, gehört zu den neueren Modeling-Projekten, die zum ersten Mal in einem Eclipse Simultaneous Release vertreten sind. Wir sprechen mit Xtext-Entwickler Dr. Jan Köhnlein über das Xtext-Projekt und die Zukunft von MDD.

JAXenter: Hallo Herr Dr. Köhnlein. Können Sie zu Beginn kurz das Eclipse-Projekt Xtext vorstellen?

Dr. Jan Köhnlein: Xtext ist ein Framework für die Entwicklung textueller domänenspezifischer Sprachen (DSLs). Der User schreibt eine erweiterte Grammatik, aus der das Framework eine komplette, sprachspezifische IDE generiert: Ein Ecore-Modell für die abstrakte Syntax, einen Parser, einen Lexer, einen reichhaltigen Texteditor mit Syntax-Highlighting, Auto-Vervollständigung und Navigation etc. Ein Code-Generator kann ebenfalls leicht angeschlossen werden, sodass man mit Xtext extrem schnell produktiv wird.

JAXenter: Auf welche typischen Situationen im Entwicklungsprozess ist Xtext zugeschnitten?

Dr. Jan Köhnlein: Wenn die Verwendung von Frameworks zu geschwätzigem, stereotypem Code führt, wenn die eigentliche Information des Codes durch technische Details verdeckt wird oder wenn ein spezieller Viewpoint der Architektur eines Softwaresystems redundant und über viele Softwareartefakte verteilt implementiert werden muss. Kurz: Immer wenn die Abstraktionsmöglichkeiten der verwendeten Programmiersprache nicht mehr ausreichen, um Dinge präzise, redundanzfrei, suggestiv und nach Belangen getrennt zu formulieren, dann lohnt es sich, über den Einsatz von DSLs und damit Xtext nachzudenken.

JAXenter: Und was kann hier Xtext, was andere Modellierungswerkzeuge nicht können?

Dr. Jan Köhnlein: Zunächst fokussiert Xtext textuelle DSLs: Diese fühlen sich für den Programmierer natürlicher an und fügen sich oft besser in die existierende Tool-Welt ein als beispielsweise graphische DSLs. Xtext ist außerdem in den Grundkonzepten leicht zu erlernen, und die generierten Defaults decken die meisten Anwendungsfälle gut ab.

Darüber hinaus ist Xtext von vornherein auf Erweiterbarkeit hin gebaut, sodass sich Anpassungen fast überall sehr einfach und elegant vornehmen lassen.

JAXenter: Welche Neuerungen bringt die Galileo-Version von Xtext?

Dr. Jan Köhnlein: Für Galileo wurde die openArchitectureWare-Version von Xtext von Grund auf neuimplementiert. Besonderes Augenmerk lag dabei auf höherer Skalierbarkeit und Performanz. Viele vormals Xtend-basierte APIs wurden daher durch Java-Implementierungen abgelöst. Außerdem wurde die Integration mit EMF verbessert, sodass man Xtext jetzt beispielsweise auch als Serialisierungsformat für EMF-basiert Modelle benutzen kann. Zur Verbindung der funktionalen Bausteine benutzen wir jetzt Dependency Injection mit Google Guice.

JAXenter: Xtext wird als Subprojekt des Textual Modeling Frameworks (TMF) bei Eclipse aufgeführt. Wie ist der Zusammenhang zwischen Xtext und TMF?

Dr. Jan Köhnlein: Xtext ist derzeit die einzige lebendige Komponente im TMF-Projekt.

JAXenter: Spricht man mit verschiedenen Entwicklern über Model Driven Development, so bekommt man den Eindruck, dass viele dem MDD eher kritisch gegenüberstehen, weil sie das Gefühl haben, dabei die Kontrolle über den Code aus der Hand zu geben. Was sagen Sie zu solchen Kommentaren?

Dr. Jan Köhnlein: Das Problem mit vielen MD* Ansätzen ist, dass viele Versprechen gemacht und niemals eingelöst wurden. Stattdessen wurden eine Reihe von Standards ohne Referenzimplementierung etabliert, die sich als wenig praxistauglich erwiesen haben und auch mit schwergewichtigen, kommerziellen Tools schlecht handhabbar bleiben.

Ich bin der festen Meinung, dass Software-Entwickler und -Architekten selbst am besten wissen, welche Abstraktionen für ihre Architektur geeignet sind. Wenn diese mit den Mitteln der Programmiersprache nicht mehr abbildbar sind, benötigt man Werkzeuge, mit denen man seine eigenen DSLs und Code-Generatoren einfach umsetzen kann und die man selbst iterativ weiter entwickeln kann. Dieses Credo verfolgen wir schon seit openArchitectureWare und leben es jetzt im Eclipse-Projekt weiter.

Durch die Verwendung von Open-Source-Werkzeugen wird außerdem die Abhängigkeit von einzelnen Anbietern minimiert.

JAXenter: Welche Vorteile bringt die Beteiligung von Xtext am Eclipse Galileo Release Train?

Dr. Jan Köhnlein: Galileo hat uns einen festen Releaseplan und ein Minumium an Entwicklungsprozessen geliefert. Das hat uns manchmal auch die notwendige Disziplin verliehen, Dinge wirklich zu Ende zu bringen.

Außerdem fühlt es sich nicht nur gut an, ein Teil eines größeren Projektes zu sein, sondern verleiht auch eine gewisse Sichtbarkeit und Relevanz.

JAXenter: Wie wird Xtext nach Galileo weiterentwickelt?

Dr. Jan Köhnlein: Pläne gibt es viele: So wollen wir mit Xtext selbst domänenspezifische Sprachen für konfigurierbare Teilaspekte der IDE wie Validierung oder Scope-Definition erstellen. Die Spracherweiterung soll von Einfachvererbung auf Grammar-Mixins erweitert werden. Eine weitere Idee ist die Entwicklung einer nach Java kompilierbaren DSL für Expressions, da wir festgestellt haben, dass DSLs an dieser Stelle oft aus rein technischen Gründen abbrechen. Noch nichts davon ist fest beschlossen, aber es verspricht spannend zu bleiben.

JAXenter: Vielen Dank für dieses Gespräch.

Dr. Jan Köhnlein arbeitet als Software-Architekt und Berater bei der itemis AG in Kiel (Germany). Seine Spezialisierung liegt in der Entwicklung von Werkzeugen für modellgetriebene Software-Entwicklung. Er ist Committer für das Eclipse Modeling Projekt und für oAW.

(hs)

Konferenzen

BASTA! 2012

BASTA! 2012

27.- 2. März 2012
Maritim Hotel Darmstadt

MobileTech Conference

MobileTech Conference

26.-28. März 2012
München

JAX 2012

JAX 2012

16.-20. April 2012
Rheingoldhalle, Mainz

BigData Con 2012

BigData Con 2012

16.-18. April 2012
Rheingoldhalle, Mainz

Business Technology Days

Business Technology Days

17.-19. April 2012
Rheingoldhalle, Mainz

International PHP Conference

International PHP Conference

3.- 6. Juni 2012
Maritim proArte, Berlin

webinale 2012

webinale 2012

4.- 6. Juni 2012
Maritim proArte Berlin

RailswayCon

RailswayCon

4.- 6. Juni 2012
Maritim proArte, Berlin

Werbung
Top-Jobs

Fraunhofer-Institut für Windenergie und Energiesystemtechnik IWES

Informatikerin / Informatiker

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

Sharepoint

Sharepoint Magazin

Sharepoint

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

PHP User - Praktische Referenz für Internetenthusiasten

PHP User

Praktische Referenz für Internetenthusiasten

Bücher




Webhosting mit Host Europe