Eclipse Spray 0.4: Geburtsstunde eines neuen Standards für grafische Editoren?

Hartmut Schlosser

Unter dem Namen Spray entsteht derzeit ein neues Eclipse-Projekt, mit dem sich grafische Editoren erstellen lassen. Mittels domänenspezifischer Sprachen sollen visuelle DSL-Editoren für die Runtime des Eclipse-Frameworks Graphiti entwickelt werden können; die Editor-Implementierung wird von Code-Generatoren übernommen.

Aktuell erschienen ist Version 0.4 von Spray, also eine relativ frühe Version, mit der man aber bereits recht komfortabel arbeiten kann. Entwickelt wird Spray im Dunstkreis der Xtext-Entwicklergruppe, anstatt textueller DSLs geht es nun aber um graphische DSLs.

Die Spray-Entwickler Prof. Dr. Marko Boger und Karsten Thoms beschreiben das Spray-Projekt im aktuellen Eclipse Magazin.

Was war die Motivation für den Start von Spray?

Grafische Modellierungssprachen sind wohl jedem in der einen oder anderen Form vertraut. UML oder BPMN sind die bekanntesten. Aber wer ein UML-Tool braucht, wird sich auch in Zukunft kaum die Mühe machen, sich selbst eines zu entwickeln. Wir sehen allerdings einen Trend zu domänenspezifischen Modellierungssprachen. Sie lassen sich nämlich sehr effizient in der Codegenerierung einsetzen. Damit erhöht die Entwicklung einer grafischen Modellierungssprache und eines entsprechenden Generators die Produktivität für eine sehr große Bandbreite an Projekten – vorausgesetzt, die Werkzeuge sind gut genug.

Es geht also um Produktivitätssteigerungen beim Entwickeln von visuellen Editoren mittels einer DSL?

Für textuelle DSLs bestehen bereits sehr schöne Lösungen wie Xtext oder Spoofax, die aus nur wenigen Zeilen – formuliert als Grammatik in etwas erweiterter EBNF-Form – ein fertiges Eclipse-Plug-in zaubern, mit allem drum und dran. In etwa diese Produktivität und Eleganz möchten wir für grafische DSLs erreichen.

Spray basiert auf Graphiti. Weshalb?

Für die Entwicklung grafischer Editoren auf Basis von Eclipse werden üblicherweise die Frameworks GEF und EMF verbunden. GEF ist für die Darstellung und Manipulation grafischer Primitive in Eclipse zuständig. EMF speichert und verwaltet die Modellinformationen. Das Projekt GMF hat die Brücke bereits vor einigen Jahren generativ geschlagen. Doch der rechte Durchbruch hatte gefehlt. Ein relativ junges Projekt verbessert nun die Ausgangssituation erheblich: Das noch im Incubation-Status befindliche Graphiti-Framework baut zwar auf GEF auf, verbirgt dieses aber durch ein kompaktes und eingängiges API, wodurch man mit verhältnismäßig wenig Aufwand zu ansprechenden Ergebnissen kommt. Schon von Hand lassen sich damit sehr schöne grafische Editoren entwickeln. Man muss aber weiterhin Experte für dieses Framework sein, um es effektiv einsetzen zu können. Außerdem wird schnell auffallen, dass man recht große Mengen schematischen, also sich wiederholenden Code, schreiben muss. Wir möchten auch diese verbleibende Komplexität verbergen und entwickeln daher Codegeneratoren gegen dieses Framework.

Die weitere Entwicklung von Spray wird zu beobachten sein – Potenzial, sich im Verbund mit Graphiti zu einem neuen Eclipse-Standard zu entwickeln, hat das Projekt. Wer sich näher mit Spray beschäftigen möchte, sollte einen Blick auf den ausführlichen Artikel im Eclipse Magazin 3.12 werfen.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.