Markus Vöelter interviewed Federico Tomassetti, 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.
Markus Völter
Hello Welcome everybody. This is another interview about LionWeb or with LionWeb participants or members about their involvement and why they are involved. My name is Markus Völter; I was the interviewee last time this time I’m the interviewer, because Federico is the interviewee, and since he can’t interview himself, I guess we needed to find somebody and that somebody is me. Backgrounds is a bit strange, because I’m still more or less in bed with my broken leg, but I have lots of time because I can’t do anything. So it’s a great opportunity to do the interview. Hi Federico.
Federico Tomassetti
Hi, Markus.
Markus Völter
So let me introduce you a little bit. Federico has been a longtime member of the language engineering and MPS communities starting, I guess with your work in 2011 at Fortiss on a mbeddr right?
Federico Tomassetti
Yes, for which, by the way, I should thank you for all the support that you gave me at the time.
Markus Völter
There was no point, but since then, you have founded Strumenta. I called it a boutique consulting and development company, right? Small but beautiful! Focused on all things language engineering. And you’re also one of the more regular conference speakers and you publish tutorials and articles and stuff, mostly on LinkedIn. And of course, in your website, and you do a lot of stuff in the open source community, which is a nice segue to LionWeb. So why did you decide to join LionWeb?
Federico Tomassetti
Well, I think, for me, the LangDev conference was a very important moment where I noticed there were a lot of very interesting ideas, like people working on typesystems, people working on interpreters, people working on code generators, on editors on the web. And I like a lot of these things. I mean, a lot of these solutions, add a nice bit, and not so nice rest. I really thought if I could take the best of everything it would be great; and so on a more practical level, I thought about that, on the other end, I remember about my time as a PhD student, and how frustrating it was that, you know, if you wanted to make any meaningful contribution, you had to do a lot of legwork to create some basic stuff, and I didn’t really have the time, so it was really impossible, right? So I was thinking if we have this common shared base on which people can plug in meaningful contributions that will be really a totally different world.
Markus Völter
Yeah, that’s something that I was also annoyed by, especially when I was still more involved in academic conferences, where every university that dealt with language engineering, built their own complete stack from the ground up, usually worse than what was already available. And then at the time, when they could add something like meaningful, then, you know, the PhD student left, so they just build another base stack instead of doing interesting stuff. So yeah, I agree the infrastructure should be commodified. Right. So is that the main way how you think that LionWeb will benefit the community acting as this kind of foundational layer on top of which to innovate?
Federico Tomassetti
Yes. I think it will lower the barrier for innovation but also permit to make more valuable solutions, because, you know, if I could combine the best interpreter with the best code generator with a great web editor, and so on, I can put together solutions that, at this stage, no one can put together also considering that most actors are relatively small, and there have maybe the resources to do one thing decently, but not a lot of things.
Markus Völter
Yeah. Obviously, totally agree. So in addition to working with MPS, and all its projectional magic, you also work a lot with parser based tools in the context mostly I guess, of legacy modernization and for building kind of smallish utility style DSLs. How do you see LionWeb helping there?
Federico Tomassetti
Well, there are different ways in which I think LionWeb can help what but first of all, when when we perform legacy modernization, typically we want to use some parser and combine it with some module for model- to-model transformation and some code generators. These same modules could be useful also, for other projects, for example, a DSL could want to generate Java or Kotlin to be later executed. In some other cases, we also use interpreter for implementing legacy modernization, for example, you need an interpreter for RPG. So this module could be reusing in that context. And then I forgot what else I wanted to say.
Markus Völter
So, but you would basically use the LionWeb meta-meta-model and meta-models based to build on top of that, to represent the result of the parsing, for example, RPG. And then assuming there is lots of LionWeb based transformers and generators and stuff, then, of course, from there on, it is much less work.
Federico Tomassetti
Yes, and I remember now, what I wanted to say that we can also have a lot of facilities tha can that can work on all sorts of modules, like models repositories, but also tools to perform analysis on large models. For example, in the context of legacy modernization, it’s interesting to be able to pass a large application with all the ASTs in a model repository, and then run some statistics to find which statements are more frequently used or verify if there are certain patterns, so group of statements used together in a certain way. And these kinds of facilities can be used for all sorts of languages. So would it make sense to have them built by someone and reused by everyone else.
Markus Völter
Yeah. So have you already integrated some of your parsing and text language transformation, utility things that you built at Strumenta with LionWeb?
Federico Tomassetti
Yes, in two ways. First way, I tried something more experimental. So I tried to make all of our system extend LionWeb itself so that they were natively supporting LionWeb. But then I thought that maybe we will still evolve a little bit LionWeb in the coming months. So I added an other mechanism to have compatibility with LionWeb that is an export and import facility so that we can use it with the current version of our frameworks.
Markus Völter
And by the way, you can definitely mention the name of your frameworks. I didn’t because I couldn’t remember but lasu, StarLasu, PyLasu.
Federico Tomassetti
The name is terrible. But we originally started with a one in Kotlin. So created KoLasu for KOtlin LAnguage SUpport. But then we needed one for Python, one for TypeScript, and one for C#. In the end, we call them StarLasu. So like, in the sense of an *Lasu, all sorts of Lasu. Yeah, I probably should not be authorized to give names to things.
Markus Völter
You can ask me for name suggestions, I came up with a great names like mbeddr, and IETS3. So I’m great at naming. Okay, this is a joke, for the non involved people. So what are you working on? What are you working on at the moment in the context of LionWeb? What’s your personal, most relevant or interesting aspect?
Federico Tomassetti
I don’t know if it’s interesting but the main I am working on is the implementation of the boring layer that we need for Java. And as we said before, there is a lot of boring legwork that all people need to replicate every time they start a modeling solution. So we’re trying to write these boring things here has a library that people can reuse. And so that is what I’m focusing on the most. Other things that I and my colleague, Alessio will work in the future could be the support for Python, for example; and maybe a toy model server that we use just to store models, to then perform statistics without versioning, without support for multiple user at the same time.
Markus Völter
Yeah, because your use case is basically import from Legacy system, do analysis, throw it away, import another one, so you don’t have these repositories, the core lifecycle supporting thing; it’s just a temporary storage for the past result.
Federico Tomassetti
Exactly. Yeah. So we started using MongoDB for now, we then started experimenting with Neo4J; and we save stuff do analysis, or attach some web application to visualize something, and that’s it.
Markus Völter
By the way, dear audience member who is watching this, if you notice, or wonder why these questions that we’re asking each other are kind of repetitive and always the same. That’s intended, right? The idea is to basically have the same framework for these short conversations and get everybody’s perspective on these questions. So continuing in that in that vein, what do you think we need to make LionWeb successful?
Federico Tomassetti
That’s a good question.
Markus Völter
You came up with it?
Federico Tomassetti
Okay. No, I think that we need more people on board and using this thing, because it’s an ecosystem. So it’s valuable only if people are on it; is like, the network effect, like, Facebook: if everyone is on Facebook, then it’s valuable, otherwise, it’s not. So I think that having a couple of good tools compatible with LionWeb could be a good start. And then maybe collaboration with universities, because if a bunch of master’s students, PhD students start using it and maybe find some bugs, or maybe write a tutorial, or maybe showcase some interesting solution, then I think they can help us refine the solution, but also, you know, having people start using it and providing feedback.
Markus Völter
Yeah. Obviously, you already had at least one good idea already regarding how we can quote advertise, which is these videos made this where your idea, right, but we have any other ideas, what we can do to kind of broadcast the message further to get more people to join?
Federico Tomassetti
Well, besides advertising this at that next LangDev and maybe reach out to people in the EMF community, that because in a way, I see LionWeb as sort of a new version of EMF built 20 years later with support for the web, and we support four different languages. So not just Java. So these are the main differentiators, but if people are willing to consider moving from EMF to LionWeb, or use them together, because there is an import and export facility, also, we should test it if it works, but there is one; so maybe that could be one thing. And for the rest, probably reach out to some professors and have them join. Right. And perhaps write an article for modeling-languages.com.
Markus Völter
Yeah, that’s one thing we talked about last time, specifically, right? And then we could probably actually talk to, we both have kind of friends and acquaintances in the academic world. Maybe 20, kind of usual suspects, kind of language engineering professors around mostly Europe, we could systematically ping them and make them aware of this thing. So that would probably also be a concrete step. Cool. Anything else you want to add?
Federico Tomassetti
No, just that, I think this is has potential to be quite exciting, because could maybe lower the entry barrier for a lot of people, putting our energies together, so I have big hopes for LionWeb. So let’s hope the rest of the world agrees.
Markus Völter
Yes, I’m gonna join you in that hope. So that’s a hopeful message to the end, towards the end of this interview as always good. All right, Federico, thank you very much for being a guest here. All right.
Federico Tomassetti
Thank you.