Virtual Meetup: JetBrains MPS with Vaclav Pech

We are planning an introduction to the JetBrains MetaProgramming System, presented by Vaclav Pech (@vaclav.pech) , who is working at JetBrains on MPS. MPS is a mature, open-source projectional editor which has been used to build successful projects in medical software, insurance, and even public administration, with the Netherlands using it at their tax office.What is so special about it? It permits the development of rapidly very advanced Domain Specific Languages, which can be used by domain experts such as business analysts, engineers, tax experts, medical doctors. In this way your experts can express their logic without the support of developers, reducing development cycles. The system permits the use of multiple notations: text, tables, decision trees, and more. The result is a very flexible environment which can be evolved to obtain solutions fitting a specific organization

Vaclav has been working for almost 20 years at JetBrains. He covered multiple roles combining technical expertise with his ability to explain and promote the approach to development proposed by JetBrains. In particular he had a pivotal role in promoting MPS and explained to practitioners all around the world what it enables them to do.

How to connect

After the summer we moved the meetup one hour earlier! From now on we will host them at this time.

If this is your first meetup you will find all the instructions to connect here:

(Long story short: click here Launch Meeting - Zoom)

It is hosted on Zoom at 6PM GMT+2/CEST (you can use this link to figure out which time is in your timezone: Dateful Time Zone Converter).


I can’t miss this one :wink:

1 Like

No one should miss this one!

1 Like

We got a very successful meeting, with over 50 persons showing up!

Here are some the questions and comments from the chat

@Gregorio : Do you know of anyone working on a DSL for smart contracts to run in Etherium?

No, but it would be very interesting

@rafael and others : Any support for web-based DSLs?

At the moment MPS does not support editing on the web, however:

  1. You can still generate web applications from MPS
  2. There are open-source projects to help on this Modelix (created by @slisson and @voelter) and MPSServer + WebEditKit (started at Strumenta)

@velulev : Are there any public information about the Siemens MPS application for contracts? Like a case study, or something else on the web.

Not that we know, but maybe @ratiud knows more about this.

From J. Pablo Caballero : You mentiened it’s only Java. Does it have, or will it have Kotlin support?

Unfortunately not. While it is relatively easily to target more languages (using textual generator, but not the advanced transformation generation), it is a lot of work to support existing languages within MPS (while it is easy to develop new DSLs with it). So far there is support for Java, C, JavaScript and C#

@smmribeiro Just a side note: i2S Insurance Knowledge has an MPS based tool where the actuaries from an insurance company can design and test the rules for an insurace contract

I would love to hear more about this :slight_smile:

@fniephaus Have you looked into integrating language implementation frameworks, such as RPython or Truffle? That would allow language-agnostic tooling

No, but generating code using this framework should be possible

@HermanPeeren You could combine MPS with ANTLR if you want some other target language…

This is an advanced topic. One could take advantage of custom persistence but depending on the level of support you want in the editor this could be a good amount of work. @vaclav.pech cited that there have been some experiments on this and I wrote a basic article about this some years ago

@HermanPeeren Because of the way MPS defines a language you probably cannot export a BNF-grammar?

Exactly: first of all many languages are not text-only but they contain other notations (table, diagrams, etc). In any case one could build in MPS languages that cannot be parsed because of ambiguity. This is not a problem in MPS as there is no parsing happening. MPS stores the AST directly.

@mrtnstn How do you deal with positional info in a graphical editor, as this is usually not in the AST?

You can save the position in the AST and not show it, when using a textual position. Or you could use automatic layout

From Devendra Rane : Can MPS spit out the parser code… such that I can write the DSL and I get the Java code… outside the editor?

Well no. One could try do process the editors definition but it would not be trivial and it would be brittle. One can also implement custom persistence and invert the problem, but this is an advanced topic

From Felix Gast : Is it easy to collaborate with others within MPS, something like git?

Yes, MPS supports Git

From edward : a very clear presentation of a very complicated tool. I have heard about MPS for a while, but nobody ever could explain how it was used so clearly before. Bravo! Can you please comment on the learning curve (and ease of use) for novices compared to Xtext?

Vaclav confirmed there is quite a learning curve

From edward : How many lines/words of code is MPS? It must be huge?

It is huge but it is also open-source, you can check it:

From Nesrine Khouzami : Generating C++ with MPS was a cumbersome task for us :slight_smile:

From Antonio Moratilla : It’s been a great presentation, thank you

@bruce.trask: are there any gui framework used under the hood?

Swing: one could build all sort of extensions using Swing. It requires some experience but it is possible : Thank you very much! It was really good!
From J. Pablo Caballero : This was fantastic. Thank you Vaclav and Federico!
19:10:17 From Bruce Trask : thanks!
19:10:22 From Greg Jarmiolowski : amazing technology! thank you for sharing it and your enthusiasm
19:10:38 From Felix Gast : Thank you !
**19:10:40 From Jan Vladimir Mostert : thanks for this! **
19:10:43 From Drazen : Thanks for sharing, was really interesting!
19:10:44 From Coding School : Thank you
19:11:11 From Jason Coleman : Nice presentation. I have a clear direction to learning more. Thanks.
19:11:19 From Velu Mani : Thanks Vaclav and Federico, it was very interesting & also useful.
19:11:31 From Isabel Azevedo : Thanks
19:11:32 From Adarsh Khanna : Thank you
19:11:38 From Nesrine Khouzami : Thanks :slight_smile:
19:11:38 From Paula Munoz Ariza : Thank you!
19:11:44 From Fabio Niephaus : Thank you! :slight_smile:
19:11:45 From Coding School : Can you share the presenation ?
19:11:46 From Alexandre Bragança : thank you
19:11:47 From Coding School : thanks
19:11:50 From Antonio Moratilla : bye
19:12:12 From Pedro J. Molina : Thsnk you!
19:12:13 From Coding School : thanks

Slides and links were added here: JetBrains MPS slides and useful links

I joined very late due to the timezone difference. is it recorded?

no, it was not. So far we did not record any of the meetings

1 Like