What has been your most painful problem with MPS?

What has been your most consistent, present, painful problem with MPS in the past 12 months? Something you would gladly pay money to have solved and not have to think about it anymore? I'm looking for ideas for a side project and I'd like to do something genuinely useful for MPS developers.



Extension traits like Rust would be extremely useful to write cleaner code while still maintaining proper separation of concerns. This is particularly a challenge in MPS when building plugins & language extensions - we'd like to extend a concept or class's behavior but instead must resort to a delegating visitor pattern.


I am finding something very basic to be frustrating - I am simply trying to output a custom DSL I built to XML, so I can use the XML file in C# code generation. I've been struggling with this for many days. Tried to view the videos, look at samples, read the manual, play around. My personal experience is that because I am not trying to generate Java, the barrier to entry for MPS seems really high. I honestly can't recall the last time I've felt so frustrated by a programming task. I would happily pay a small amount for a PDF and maybe a web session to walk through this.


Generating XML does not differ from generating Java or any other target language, other than the templates being written in core.xml rather than in baselanguage. Can you be more specific about where the difficulties are?




Hi Vaclav, sure thing. I've created a language with a root concept and some properties, and containing a child concept. After some trial and error and using this community post I have been able to generate an XML file that can output the properties of the root concept. However, I'm still struggling to access the child concept's properties and output them in child elements. I think a quick end-to-end example of a language with a root concept and a child concept, then generating an XML output controlling the order and display of those properties and children, would be a welcome time saver and a good entry-point for someone wanting to do code generation in C#.


Vaclav - thank you so much! That's exactly what I needed. I read that this morning, followed along and am now able to generate my XML using my custom language. That was super helpful!


Honestly, I think my biggest pain is just the learning curve.  The tutorials are slightly out of date (things that used to be in the actions aspect aren't there any more).  They're great for learning the concepts, but not so much a how-to. 

I'd also love more inline documentation.  In IntelliJ for instance, I love being able to use quick-documentation to see JavaDoc. 


Big plus-one to inline documentation/javadoc. The lack of that in addition to the lack of javadoc alongside the MPS source has been a huge pain. In some cases I can resort to viewing the MPS repository for information, but there's still a huge gap that has to be solved with trial & error or attempting to decipher what some method call chain actually does.


I agree with the learning curve being an issue but, passed that, I think my biggest problem with MPS was when I had to integrate some Java jars into my project.
I had several problems related with class loading specially with classes that originated from jars that were needed by the ones that were directly added to the MPS project.
At the time I had to resort to creating Uber jars, finding and fixing incompatibilities between artifact versions that existed in those jars and in MPS...
Oh, and please don't remind me when Spring was used in some of those needed jars!

Sérgio Ribeiro
Porto - Portugal


Please sign in to leave a comment.