Saturday, June 28, 2008

Graphical versus textual DSLs

We are presently developing for a customer a DSL that aims to map different data structures. Our solution is based an Xtext of oAW. As its name said, Xtext is a framework that enables the development of textual DSLs. Our customer was scarred when he understood that he will have to WRITE code with our DSL. He had in mind a more user friendly DSL, something more graphical.

But is a graphical DSL more user frienly? Here some advantages that textual representations have over graphical notations:
  • while graphical notations are often useful to describe structural concepts (e.g. class diagrams), textual notations are often a better fit for describing behavior or algorithms (e.g. expressions)
  • expert users often find them faster and easier to modify
  • there is a rich set of existing tooling for dealing with text files (diff, merge, copy & paste, search & replace ...).
  • by using any source control systems (CVS, SVN, ...) it is possible to manage different versions of the DSL.
The textual or graphical nature of a DSL represents only the concrete syntax of the language. The abstract syntax is anyway independant of this discussion. This means also that it should alway be possible to transform a textual representation in a graphical one and vice versa.