I've felt the same way as Ceyhun Cipher and specifically I"m worried about the future of "MGrammar", which to me is the most interesting part of Oslo in general. When he talks about DSLs and being more textual I think what he's talking about is MGrammar. I hear lots of talk of M and modeling but what about custom textual DSLs? I've even heard discussion about M and MGrammar merging somehow? Which seems to me to be more evidence of what Ceyhun is saying, which I interpret as meaning Oslo seems to be moving away from arbitrary textual DSLs and more into the specific DSL "M" which is about arbitrary modeling.
THere was another post on this forum that I think is directly related to this discussion.
Here the main point, as I understand it, is that a bi-directional scenario for writing your DSLs isn't a first class concern, which is probably why Ceyhun is feeling like the textual DSL concept is secondary to the visual modeling and is maybe even disregarded to an extent that it would be dropped completely. The ideal workflow:
1 Author textual DSL grammar
2 Author DSL code conforming to this grammar
3 The DSL Code is "compiled" either in a traditional sense or into a repository.
- The DSL Code IS the source of truth, not the repository.
- Which means that either:
A) the only way to change the repository is by steps 1 - 3
B) The DSL is a bidirectional projection of the repository metadata
If you don't support the bidirectional projection of the metadata then what you end up with is multiple sources of truth, which is a flawed by design anti-pattern. If I had a wishlist it would be:
- Keep MGrammar as it's own distinctly separate product from M, where M is simply a specific DSL implementation.
- If quadrant is to be the single source of truth, it must have the ability to allows arbitrary textual DSLs to be defined and authorable directly in quadrant itself (bidirectional).
As an aside, since I'm not sure on the details, how will the repository deal with change history, conflicts and security (and other standard source control features)?