He usado Eclipse Xtext en varios proyectos. Me encantó la facilidad de definir una gramática sobre un modelo Ecore (meta) y dejar que todo se generara para ti, incluido el impresionante editor de plugins de Eclipse, pero me sentí bastante incómodo con el subyacente EMF framework con todo cableado en campos estáticos.¿Cuáles son las principales diferencias entre Jetbrains 'MPS y Eclipse Xtext?
Últimamente me encontré con Jetbrains 'MPS (Meta Programming System). Está basado en una filosofía completamente diferente. Mientras que Xtext es para crear DSL basadas en texto que generan un analizador para usted (y crear instancias de esos EObjects), en el lenguaje creado por MPS uno edita directamente la estructura del modelo subyacente. Hasta ahora lo entiendo.
Alguien tiene experiencia con ambas herramientas DSL para señalar las principales diferencias en términos de trabajar con ellos, casos de uso previstos y audiencia, complejidad, curva de aprendizaje (para ser honesto, para empezar a usar Xtext uno debe saber bastante sobre las tripas de EMF), generación de código, etc.
Gracias, Heiko, ahora tengo una idea mejor :) Obtuve el material basado en texto basado en la proyección v y sus consecuencias en el control de versiones, diff, etc. Lo que me gustaría saber más es las diferencias en el "uso típico" de las herramientas y en sus cadenas de herramientas. Con Xtext, obtengo un código Java de lotta generado a partir del modelo Ecore subyacente que puedo usar de forma instantánea en cualquier programa Java. Lo que me asustó al leer el tutorial oficial de MPS fue el material de la plantilla de generación de código que se llevó una buena parte. ¿Puedo atravesar de algún modo el modelo creado a partir de lo que escribo en mi idioma ... fácilmente como con EMF? –
En realidad, las personas detrás de Xtext están haciendo un gran esfuerzo para hacer posible el uso de lenguajes Xtext en otros entornos además de Eclipse, por ejemplo editores web mediante el proyecto Orion, y soporte para IntelliJ IDEA. Puede leer más sobre esto en https://eclipse.org/Xtext/news.html –
Todo esto es cierto, sin embargo, MPS admite el almacenamiento personalizado. Si bien de forma predeterminada guarda el archivo en su propio formato (basado en XML), puede proporcionar una serialización/desinstalación personalizada. –