Ich habe Eclipse Xtext in mehreren Projekten verwendet. Ich liebte die Leichtigkeit der Definition einer Grammatik über ein Ecore (Meta) -Modell und ließ alles, was für dich generiert wurde, einschließlich des Eclipse-Plugin-Editors, aber ich war ziemlich unwohl mit dem zugrunde liegenden EMF framework mit allem, was in statischen Feldern fest verdrahtet war.Was sind die Hauptunterschiede zwischen Jetbrains MPS und Eclipse Xtext?
In letzter Zeit stieß ich auf Jetbrains MPS (Meta Programming System). Es basiert auf einer völlig anderen Philosophie. Während Xtext zum Erstellen von textbasierten DSLs verwendet wird, die einen Parser für Sie generieren (und diese EObjects instanziieren), bearbeitet man in MPS-erzeugter Sprache direkt die zugrunde liegende Modellstruktur. Bis jetzt verstehe ich es.
Hat jemand Erfahrung mit beiden diesen DSL-Tools, um die wichtigsten Unterschiede in Bezug auf die Arbeit mit ihnen, beabsichtigte Anwendungsfälle und Publikum, Komplexität, Lernkurve aufzuzeigen (um ehrlich zu sein, Xtext zu verwenden, sollte man ziemlich viel wissen über EMFs Mut), Codegenerierung usw.?
Danke, Heiko, ich habe jetzt einen besseren Einblick :) Ich habe die textbasierten v-projektionsbasierten Sachen und ihre Auswirkungen auf Versionskontrolle, diff usw. Was ich gerne weiter wissen möchte, sind Unterschiede in "typischer Nutzung" der Werkzeuge und in ihren Werkzeugketten. Mit Xtext erhalte ich eine Menge Java-Code, der aus dem zugrunde liegenden Ecore-Modell generiert wird, das ich sofort in jedem Java-Programm verwenden kann. Was mich beim Lesen des offiziellen MPS-Tutorials erschreckte, war das Codegenerations-Template-Zeug, das ein hübsches Stück davon in Anspruch nahm. Kann ich das Modell, das durch das, was ich in meiner Sprache schreibe, irgendwie durchqueren ... einfach wie mit EMF? –
Eigentlich sind die Leute hinter Xtext sehr bemüht, Xtext-Sprachen in anderen Umgebungen als Eclipse zu verwenden, zum Beispiel Web-Editoren mit dem Orion-Projekt und Unterstützung für IntelliJ IDEA. Sie können mehr darüber in https://eclipse.org/Xtext/news.html lesen –
All dies ist wahr, jedoch unterstützt MPS benutzerdefinierten Speicher. Während die Datei standardmäßig in ihrem eigenen Format (basierend auf XML) gespeichert wird, können Sie eine benutzerdefinierte Serialisierung/Deserialisierung bereitstellen. –