Hi all, my name is Jos Warmer

Hi all,

This is Jos Warmer, I have been doing modeling, meta-modeling and domain specific languages for quite some time. I have used many different tools like Xtext, Graphiti , Microsoft DSL Tools, MPS, plain old Java and TypeScript.

I started out doing research on SGML (nowadays XML), developing a projectional editor for text processing using Eiffel, then went on building a fast prototyping tool using Smalltalk.
From there on I got interested in modeling at a higher abstraction level than the typical programming language. After a while I became IBM’s representative in the UML standardization team, and managed to get OCL accepted into the standard.

But … I found developing models and then implementing them manually in code rather dissatisfying. After some experiments trying to use UML for generating code from models, I concluded that UML is totally unsuitable for this purpose. UML is (and was meant to be!) for human communication.

I moved on to developing domain specific languages, and lucky for me, at the same time language workbenches were getting more popular and more powerful. Xtext was growing (I think it was version 0.7) and with the help of some Xtext team members I quickly built my first DSL’s with Xtext. With thanks to Bernd Kolb, who build new features into Xtext on the same day (!) that I asked him for it.

With a team of Microsoft developers we jumped onto the Microsoft DSL Tools and built a automated software factory (the buzz word at the time). Within the same company we developed a similar set of DSL’s for Java. using Xtext, called Mod4j.

When I became independent in 2010, I developed graphical DSL’s for insurance and logging analysis using Graphiti.

In 2013 I became involved in a project for I2S in Porto where we were going to build a DSL for insurance experts. Their users had refused to use text based DSL’s saying “we are not programmers”. For this reason I decided that we needed more flexible notations that would be much closer to the business users. I proposed to use MPS for this and with the help from Markus we convinced the customer and built a very nice DSL for insurance mathematics. The users turned out to be very happy with the results.

At Mendix R&D I was responsible for developing the meta-model tooling, which was instrumental for creating their web modeler. Currently I am involved in a large scale MPS project at the Dutch Tax Office (together with Meinte, see https://d.strumenta.community/t/hi-im-meinte-boersma/149).

My experience learned me that DSL’s for different users have very different requirements. Where text based DSL’s are usually fine for developers, projectional DSL’s using notations like (pseudo) natural language, tables, graphics, mathematical notations, etc. are necessary for most business (i.e. non IT) users.

I find the projectional editor the killer feature of MPS, and think we need such an editor on the Web. Therefore I am now developing ProjectIt, a web based open source projectional editor framework.

Thank to Federico for starting this community, I am looking forward to productive discussions, and hopefully also some interesting collaborations.

Best wishes to all, Jos

11 Likes

What is the development status of ProjectIt? I haven’t heard of it before.

3 Likes

Yes, I would also be interested in that

Hi Jos,
It is great to have you here. Many of the technologies you named have a place in my heart. For example, Eiffel :slight_smile:

Nice to see you named @bernd.kolb . We have also him in this community :slight_smile:

Microsoft DSL Tools is something I did not get a chance to try. Was it any good?

You named so many interesting things that you sent my brain in overload.

One thing I would be eager to chat with you about would be your experience with graphical languages, as mine is very limited. I hope we will have many chances to talk here.

Welcome!

Hi,

To answer you question about the status of ProjectIt: this is work in progress (as you can see from the realse number which is still 0.**. At this moment we have the following functionality:

  • A TypeScript framework to build projectional editors
  • Support for text, images, tables.
  • Support for expressions including automatic balancing based on priorities of binary expressions
    (a la grammarcells from Mbeddr if you know this, although implemented differently)

The big caveat is that it is quite some work to develop a projectional editor, as you need to write all the TypeScript code by hand. To make editor development faster there are two additions that I am working on:

  1. A generator that takes the meta model of a language and a few very simple editor annotations (like e.g. priority for binary expressions) and generates a working editor. The generated editor is far from perfect, but gives you a starting point from where you can tune generated projections for chosen model elements, and you can add your own actions in addition to the generated ones.

  2. An editor definition language, which allows you to describe the projection of your language in a declarative way. This should be enough to get a nicely working editor, without the direct need to start tuning. For fine-tuning and e.g. custom actions you can still use TypeScript.

The first generator is already working locally, and needs some work to finalize it. I expect to release somewhere around the end of the month. The editor definition language is currently in de design phase, I just started on the first PoC implementation.

Apart from this, some started working on improving the documentation, so that will be improved with the following release as well.

4 Likes

Hi,

The Misrosoft DSL Tools have been quite nice to work with. We used the first version, so we did miss some functionality that we added ourselves, like a broker to handle cross model references. I think they are currently called the Visual Studio Modeling and Visualization SDK (VMSDK) . I have not used them recently, so I don’t know about the current status.

1 Like

I’ve worked on this project and it resulted in a very friendly way of defining the insurance rules. All actuaries that saw the “i2S Configurator”, loved it.
With the help of Niko Stotz, we even implemented an interpreter that allowed testing the DSL code in several scenarios…

Even though I left i2S two years ago and my current work is not related, I still follow Jetbrains MPS and, as my interest in this community shows, these subjects.

As for the “i2S Configurator”, I think it was ahead of its time; unfortunately, it was also caught in the middle of some internal politics/battles at the company :-/

Then, there was the problem with getting people with MPS expertise: there were none!
Asking for modelling in general: there were very few!
Most wouldn’t consider that “way”…

I think that, at least here in Portugal, schools are not exposing their students to “models” and that it’s a shame!

When are you coming to Porto :portugal: again @jos.warmer? :wink:

1 Like

Hopefully we could change that, making easier to find MPS expertise. For example, in this community alone there are companies and freelance with MPS expertise. We should do a better work communicating to possible clients that those service providers exist

I think it is the same in most universities. We have a discussion about listing the universities where DSLs/modeling are taught. Maybe we can then start proposing these topics to professors in the different universities not offering courses on these topics.

I hope that in this community we can all share ideas, collect energies and do some very concrete actions to change the state of things

These days everything seems to look guided (I would almost say ‘limited’) to “just know how to use [SomeProgrammingLanguage]”… no more theory, no computer history, no “there’re alternatives”…

The other day, someone sent me this 2013 presentation by Bret Victor on “The Future of Programming” and made me think a lot on these subjects! The talk is a must from beggining until the end; and his final thoughts are very insightful

Let’s hope it’s not too late!

5 Likes

I really like the last minutes, starting somewhere at 28:30 minutes. There are too many developers who “know what they are doing”.

3 Likes

Haha, spot on! That’s why I sometimes muse about us humans being “ROM people”: Able to learn, but not often able to unlearn and then learn something new. I see it in myself, I started out when console GUIs were a novelty and to this day, I don’t really trust them :slight_smile:

2 Likes

Thanks a lot for sharing it! I just watched it and it has been super inspiring it. I think I would use the blindness to the need of assembly as an example for years to come

1 Like

Nice to meet you, Jos :wink:
Errm, welcome back I mean.