What are the main differences between Jetbrains’ MPS and Eclipse Xtext?

Xtext is a traditional parser-based approach that works with ordinary textual files. Those can be mailed, stored and compared with any version control system and even modified outside the editor using your favorite command line tool.
It tightly integrates into Eclipse EMF and works pretty well with a whole bunch of tools you can find in the Eclipse eco-system. Recently, it evolved (and is doing so still) into some kind of “programming language development toolkit” where it allows you to support all kind of additional tooling.

MPS on the other side works with a projection-based editor that just “looks” like text while you are working within the environment. The underlying storage format is tool-specific (read: unusable without special programs) and does not parse plain text files. This offers some great advantages such as embedding of arbitrary langauges (e.g. Regex inside SQL inside Java). The toolchain enables generation in form of model to model transformations that -as the editor- feel unusual at the beginning but are powerful, too.

Both tools are somehow locking you into their world (MPS/Eclipse). Even though you could run both in a headless mode, one cannot easily launch the Xtext editor inside another IDE. The same is true for MPS. I would argue that Xtext is “more open”, since it works with ordinary text files on one hand and plays well with established tools (EMF and Eclipse in general) on the other hand.

Does this answer your question? I will try to give you more precise answers if you have more detailed questions.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)