Más was my attempt at a Web-based workbench for projectional modelling languages which I’ve effectively abandoned late 2014. You can still try it out at the link given, although you’ll have to use a non-WebKit browser such as Firefox: the JavaScript happens to rely on some API which has been patched shut in WebKit.

A short history of Más

In 2011, I attended the CodeGen conference with the co-located Language Workbench Competition (LWC). My key takeaways from the latter were:

  1. None of these were Web-based in the sense that they produced languages and environments for them that lived in the browser. (The remarkable thing is that almost 7 years later the situation’s hardly improved: we now have DSL Forge for textual — i.e., non-projectional — languages, and that’s really about it… We do have Web-based IDEs as well as the Language Server Protocol, so things might certainly improve.)
  1. I was starting to regard a modelling environment as “just another application to manipulate data”, as epitomised by this blog. This blog post argues that we primarily need a good programming language/paradigm for data-driven, UI-rich applications, and that such a “Generic Application Language” would make language workbenches to some extent superfluous since you’d “just as easily” could create a modelling environment directly in GAL code. This was also one of the main drivers for me to join Mendix, since their visual modelling language and environment certainly strives to be a GAL.
  2. I was using Martin Thiede’s Concrete editor which was proving to be insufficient for what I wanted to do with it.
    Mainly this was because Concrete is many things at once: a model framework akin to EMF, a rendering engine for such models, as well as the actual user interaction. This turned out to be hard enough to integrate and use myself for the one language (the Language Definition Language; LDL, for short) that Más has built-in, and even harder to parametrise so that language developers could define their own projections. This meant that language builders would’ve needed to inject HTML+CSS+JavaScript in a way which was going to be anything but declarative, to build languages with customised layout and interaction.
    I would have to disentangle Concrete into several separate concerns to allow myself to move forward, but that would have cost me a lot of effort.

Pitfall 1 — no integration

As already advertised: it took me a long while to come out of denial on this one…

Pitfall 2 — not picking the most boring technology

This is a general thing for startup-type software — see e.g. Zef Hemel’s blog. Either you’re building a pet project to get you up to speed with new and cool/hot technologies, (exclusive-)or you’re building a product in the most efficient and effective manner possible, so you can spend time on working towards a market fit, traction, and hopefully paying customers.

Pitfall 3 — meta-circularity is overrated

The fact that you can implement your piece of software using the same software might be a strong show for the likes of a GPL, but I don’t see any real use for it. Not only does it make for raging meta-headaches and ensuing low productivity because it makes your code base the solution to an intricate fixed-point problem…right until it fails to do that, and you have to break out your Git-fu to be able to go anywhere.

Pitfall 4 — selling to developers

And I’m not the only one saying this. Selling to “the business” is much easier — almost ridiculously so. Thing is: you have to also convince the IT guys and girls servicing the business guys and girls that (1) your product is working, and (2) is not making them have a more difficult job, nor obsolete. After climbing that hill, you’ll still have to convince the people that hold the actual bags of money and fountain pens to bank on your tiny company providing such a new-fangled Cloud service™ and trusting that you’re still in business in a year time.

Conclusion

Am I sad I abandoned Más? Yes, since I really believed in it, and I would’ve liked to see it get traction. I still believe firmly in the usefulness of a Web-based, projectional modelling environment, so it’s also sad to see only little activity in that area.

All-round software value creator, specialising in DSL construction and language engineering.