Coexistence of Graphical and Textual DSLs
Maybe round-tripping of models can be avoided by using the same underlying storage format.
Join the DZone community and get the full member experience.Join For Free
A major part of my research/work at the university and in some of my personal projects is about integrating business experts into the development process. You can read more about it in my dissertation. We reincarnated a very ambitious project, which now focuses on modeling complete web applications. We defined different interconnected graphical DSLs (Domain-Specific Languages) with Cinco and allowed them to one-click generate and deploy on an application server. I am very excited about this great project and some of my posts are (and will be) inspired by it.
As of recently, we used XText as an alternative serialization format to XMI for our graphical DSLs. XText languages have some nice properties over XMI, like syntax highlighting, scoping, validation, just not being XML, compatibility with VCS, etc.. But most important it is much easier to “repair” XText models after a format/meta model change than with a graphical editor (which just ignores friendly inquiries to open an incompatible file), or with XMI (trust me it is a pain).
This brings me near to a dream I have had for quite some time: Bringing together textual and graphical DSLs to describe the same model. This is great because all the integration efforts of business experts (i.e. non-programmers) into the development process has been a one-way approach. But with a textual representation, both the technical and the business experts are likely to use (different views on) the same modeling artifact. Since December 2015, XText (2.9.x) supports IntelliJ IDEA, Eclipse some web editors, and standalone usage. This is great news again (although I have some problems getting it up and running the way I would like to. But more on that later!)
So stay tuned to news. This great new project is called DIME (Dynamic web application Integrated Modeling Environment).
Published at DZone with permission of Johannes Neubauer, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.