We interviewed Markus Völter, one of the people behind the LIonWeb Initiative.
An initiative to create an ecosystem of interoperable components for building language-oriented modeling tools on the web.
We believe that a lively ecosystem will facilitate the adoption of language engineering and modeling solutions by reducing vendor lock-in. Development of advanced solutions will be accelerated by mixing and matching components, potentially sourced from different vendors or open-source initiatives. It will also foster innovation, as incremental improvements can be defined on top of the existing libraries and components.
Federico Tomassetti
Okay, so first of all, thank you, Markus, for agreeing to this. And it’s a great pleasure to have you as one of the minds behind the LIonWeb initiative. And, of course, for all the ones that are involved with language engineering, they know Markus. But for people that are new to this field, let me just share a couple of contribution that Markus has made. So first of all, this book, “How to understand almost anything“, so very high bar. But the idea of this book is that you can use it to understand how to perform domain analysis. So in other words, how to understand that our domain experts think their mental models, their vocabulary. This is useful for a lot of possible goals, but one of them is to then implement domain specific languages. And in that case, you can take a look at “DSL engineering” from Markus.
Markus Völter
Although one has to admit that the “DSL engineering” book it’s 10 years old now, I think; so, it’s not nothing is wrong in there, right. But obviously, it’s outdated, a little bit. And they’re also parts on language design, which of course, I would write differently these days. But, I mean, it’s still I think, good foundational reading.
Federico Tomassetti
Yeah, well, this will keep people busy while you work on the second edition, at some point. So, not happening right now, maybe I will ask in a couple of years. About LIonWeb, so how did you come up with this idea? Why were you interested in starting this initiative?
Markus Völter
Well, the thing is that there are lots of people, most of them are friends of ours, right? Who have been working with mostly MPS in the last 10 years. But also other language workbenches, like Xtext and small, custom developed solutions. And all of this stuff has to move to the web. I mean, we all know that, right? The whole field of tools, IDEs, especially end-user focused tools, which DSL mostly are, they have to be able to live in the browser and be good web citizens. Meaning that the usual web standards, web conventions idioms, look-and-feel are more or less supported and MPS, Xtext just isn’t. So this means that there are lots of different initiatives that build some kind of MPS or Xtext like thing in the browser. Some of these things have gotten to a point where they are useful, others are still in more early stages. But the problem is, these are all islands. And so that means that everybody has to build everything, which of course, takes forever considering these are relatively small projects. And even assuming that everybody can build everything, the whole stack for language engineering, then these things are still not compatible. And if you want to use some kind of best of breed approach, you know, X person’s editor and Y person’s repository then it doesn’t work. So it’s kind of obvious that in a small community, like the language engineering community, that needs to renovate their tech stack to get the web, that we need some level of interoperability for this to be fast and meaningful: fast enough to be developed and meaningful enough for users. And that’s basically the idea of LIonWeb. LionWeb stands for two things: language interfaces on the web and language infrastructure on the web. They are more or less same but the idea is to provide a bunch of means, you know that right and talked about in previous recording, to provide this interoperability layer between the various initiatives and projects that the MPS++ community is kind of developing. It’s not intended to be MPS specific, I’m just saying that, because it’s growing out of this MPS world, basically.
Federico Tomassetti
If I understand correctly, you’re saying it’s not MPS specific, but it will permit to combine the best of MPS with the best of other tools, and provide a richer solution.
Markus Völter
Yes, one of the if you will, participants or components should be able to interoperate with, you know, in this LIonWeb world is MPS. Absolutely.
Federico Tomassetti
So our experience with that will not be thrown away, good
Markus Völter
The old guys trying not to become irrelevant.
Federico Tomassetti
That’s a topic that I’m involved into a lot because of legacy modernization efforts. Okay, so maybe my next question will be a follow up on what you said, because if I understand correctly, you explain how these benefit, in a way, the user of a language engineering solution because they can combine better pieces, and reduce lock-in and also make the whole effort of implementing this stuff more manageable for the different small vendors that are active in the area. Maybe expanding on this, how do you think that language engineering in general can benefit from LIonWeb, or which actual results do you expect in the field?
Markus Völter
Well, I said it before language engineering, and the use of language workbenches is a relatively small community, it has never, you know, succeeded in becoming mainstream. And we’ve all had lots of discussions flying, and we, you know, depending on the numbers of beer, people drink, I don’t drink beer, but there’s more creative reasons. But in the end, it just is too advanced, narrow, I don’t know, whatever; but of course, to make it more relevant to a broader audience, if you can use in the frontend and more familiar notations and stuff that looks less like code language, and more webby; but in the backend, you can still use, you know, meta-models and meta-meta-models, and you know, homogeneous storage and queries and the ability to version your stuff and all these benefits, that you get type-systems analysis, if you can do that in the backend while in the frontend is kind of looking like a web application, then maybe the appeal of the whole approach, bronze. The thing is, most of the people who have worked with language engineering and kind of model-driven approaches are pretty convinced that that is a really good way to go. And that’s not just true for, you know, the evangelists and people who sell this stuff like me or you. But lots of my customers think that too, right? So once you understand this stuff, and experience the benefits, people like it, but it’s still hard to sell. And, again, if things become more webby and look less strange in the beginning, then maybe that helps.
Federico Tomassetti
Make sense, it makes me a little bit, think about the idea behind Subject Matter Manifesto, because you were talking about combining two different goals or the interest of two different stakeholders, the people actually using the stuff and the people implementing this stuff.
Markus Völter
Yes, I answered the question from the perspective of the end-user. Absolutely. And the reason why is the following: if you work with MPS now, and if you have overcome the MPS learning wall, as people jokingly say, then you live in a very, very productive world, despite all the quirks and some of the bugs of MPS, it’s an extremely productive tool once you’ve learned it. And it will be a long time until anything we’re building now with LIonWeb or without LIonWeb gets to that point. So for the language engineer, moving to a web-based, more distributed LIonWeb based environment will be a step back, if you will, right. So the argument why LIonWeb is necessary, is really mostly from the end-user. And here’s the thing. Of course, with LIonWeb, it will be faster to build language engineering based solutions for the end users; and because it’s faster, this benefits the end-users. But I still think if you look at it purely from the perspective of the language engineer, then you will want to stay in MPS because it’s such a nicely optimized, you know, garden. But again, that’s not an option. So the argument for me is mostly from the end user perspective, and then of course, transitively, if it’s faster for the language engineer to build the stuff that’s a benefit for the end user.
Federico Tomassetti
I understand the benefit of having complete solution and well integrated, but maybe also, now sometimes one is forced to escape MPS, because maybe they need to integrate with things like C#, Python, whatever, so that is hopefully an impulse in that direction.
Markus Völter
I absolutely agree, right? I mean, if you then can take an MPS language, add a bunch of LIonWeb, salt and pepper, and then it comes out as a JSON data structure at the other end, and then you use a library implemented in C# that’s already there, from LIonWeb, or in Kotlin, for Java world, and you can directly load it, of course, that’s huge deal, you can use MPS, you know, for some tasks in your domain, and use custom built whatever it is Java, .net, web stacks to do others, absolutely a benefit. And you’re right to emphasize that this benefit has nothing to do necessarily with moving to the web, right? You can just use LIonWeb, as a way of accessing MPS models in a standardized way from TypeScript or hopefully C# and Java.
Federico Tomassetti
So even one key thing of this initiative is integration with different tools. Can I ask you what integration in your opinion will be the most important to have in LIonWeb?
Markus Völter
Well, again, from my perspective, anything that runs in the browser, so this might be custom, Angular UIs, write some stuff that looks like dialogues, and buttons and text fields and stuff, but still communicate with a language oriented backend. Or, for example, there is by Jos and also by Itemis, there are projectional text. So it was hard to say projectional editors that use textual notations, right? So for editing expressions and stuff like that. And you could then imagine, well, it’s been prototyped, you don’t have to imagine it, a custom web application built with a standard technology like Angular, whatever you prefer. But then inside this web UI, there is a there’s one of these input fields boxes, where you have the ability to enter textual expressions with code completion. And the whole stack, the whole model, the expressions and the stuff around it, some of it implemented or edited by Angular, some of it edited with a reusable, let’s say, Modelix text editor of this stored homogeneously in the backend, and you can run type checks over it. Right. So that is, again, that’s for me, that’s the biggest benefit. Currently working for a customer, they who has C# .Net and the back end, and Typescript and the front end. So they’re, the benefit would just be, you know, there would be no Modelix, it would be no MPS. It’s just a shared understanding of how models are described between the .Net and the web platform. So that’s certainly absolutely also beneficial. It wasn’t my main driver for kind of, you know, trying to get this LIonWeb thing off the ground, but it’s certainly also relevant. I mean, absolutely relevant. Have a customer right now. So yeah.
Federico Tomassetti
And that is perfect. Because my next question was about, how do you think that LIonWeb can specific specifically benefit you or your clients? But you provided already an example
Markus Völter
Yeah. I mean, how does it benefit me? So let me add another kind of wrinkle to this discussion. I’m not as much as earlier, but I still act a little bit as an evangelist for this whole language engineering thing. I give talks, again, not as much as I did years ago, somehow COVID made this less fun. Anyway, so, I advertised for the approach, right? Not in a stupid way. But I explained why it’s beneficial and was great and stuff. And then, you know, if I get then asked, yeah, okay. It’s all nice, but I want this in the web. And then I say, Yeah, I understand but there’s nothing, right? And even if I can say yeah, sure, use your Jos’ tool or use Itemis’ tool, they’re both open source. And then customer says okay, fine, but I would like to combine these two and that was not possible, you know, so my point is that you can’t sell the idea. If this again, small community isn’t able to integrate, at least on a fundamental or foundational level; and so for me as a propaganda person about this topic, having the ability to explain that the community is actually doing something together, in order to provide this interoperability it’s very helpful in selling the idea.
Federico Tomassetti
And yeah, accidentally, probably it reduces also the risk of lock-in to some extent,
Markus Völter
Sure. Absolutely. That’s why customers are asking for the integration. So totally, yeah.
Federico Tomassetti
Good, good. And can I ask you, what are you working on at the moment? Specifically, maybe related to LIonWeb?
Markus Völter
Well, first of all, I’m not doing as much in terms of concrete coding, as I would like to. Usual reasons: so I’m participating in meetings and stuff; but mostly, I’m working with one of my customers on the C# implementation. We’re making good progress, I recently got stuck trying to bootstrap the meta-meta-model, because I ran into Stack Overflow exceptions all the time, because the thing was trying to look at itself while it was building itself. And so, it’s a price to the punch not into my brain, which still haven’t completely resolved. So, that’s currently what I’m doing. And again, yes, I should do more, and I apologize for not doing it. But hopefully, hopefully, I will.
Federico Tomassetti
But it’s good to know that maybe one day there will be an implementation for C# or at least that there is some work going in that direction.
Markus Völter
It’s currently customer proprietary, but of course trying to get it out.
Federico Tomassetti
Fingers crossed! And can I ask you, what do you think we need to make LIonWeb successful? I mean, any risk that you see, or anything that could really increase our probability of success?
Markus Völter
Yeah. We all have to work more on it! And no, I mean, and I say we, right, so I have the same problem, and honestly, realistically speaking, this only works if there is funding. I mean, people are working in their spare time, and some are doing more, some are doing less; and it’s it’s great, right, but many of the people involved here are freelancers, and they need, at least if they want to ramp up the effort, they need some kind of funding. So in my opinion, the biggest thing we need is money. Right? Basically customers, essentially, who are willing to spend some of the money on their particular consultant to implement these standards. I don’t think that just doing it in people’s spare time is, I mean, it’s not that people are doing nothing, but it’s too slow.
Federico Tomassetti
Yeah. And then it’s always having a real case where to test out ideas, helps improving faster.
Markus Völter
Yeah, but finding the real case is not so much the problem. I mean, I have customers where can stop this right now? It’s more finding the money, less time and same thing to build the infrastructure far enough for it to be useful.
Federico Tomassetti
Good. Yeah. So if someone is watching this and want to invest in LIonWeb, can read the comment to these videos wherever we publish. Okay, so this was my last question. So thank you very much. I think it’s been very interesting. And let’s hope it’ll pass spread your voice about LIonWeb.
Markus Völter
You’re welcome. Thanks for the invitation.