Textual notations for modeling languages are becoming increasingly popular (you just need to see the growing list of textual UML tools) and I do believe they are useful in many scenarios (sorry, but I don’t buy they are always better! graphical notations have their place and are difficult to beat as the quickest way to play around with some type of models, textual modeling tools are able to render the graphical counterparts but few of them offer interactivity on the graphical renderization).
What I didn’t know is that programmers (well, at least one of them but a very respected one) want the same but in the opposite direction, they would like to have the ability of use visual or table-based or … notations to write their programs.
At least on this we agree, concrete and abstract syntaxes should be kept separated so that we can use the best concrete syntax (either graphical, textual or any kind of mixture we can think of) for each specific scenario/application.
An entirely different approach is the one taken by JetBrains MPS. To avoid forcing users to use a specific concrete syntax, they decided to just avoid concrete syntaxes at all. When writing an MPS program, the editor is always directly modifying its abstract syntax tree. To see an example of DSL where we used MPS ourselves, see our work on modeling self-adaptative IoT architectures.
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
I’m sure you’re already aware of it but for those who are curious, try JetBrains MPS: http://www.jetbrains.com/mps/
(note, I’m not affiliated with JetBrains in any way)
Yes I know MPS but you’re right, they deserve to be mentioned as an alternative solution in the post. I’ll update the text. Thanks!