Interactive GUI development

18.02.2014 Permalink

Although my time for working on my hobby project visuals is currently very limited I have made some progress.

Visuals is a Clojure library for JavaFX GUI development. It has a reactive core and allows specification of forms in an internal DSL. The library is still in its very early stages but so far it looks promising.

Tonight I managed to bring instant feedback to the lifecycle:

In 2011 I started to develop an external GUI DSL for a customer based on an older version of Xtext. This made it into production and I have learned that the textual approach was actually the right choice.

An internal DSL with Clojure has its pros and cons compared to the Xtext thing. It's actually simpler to build despite the lack of specialized tools. It doesn't affect the build process at all. It allows for great interactivity, not only for form building but also for working with the data within forms. The downside of an internal DSL is the non-existent editor support, at least with an editor like Emacs. Therefore structural complexity must be limited, otherwise using such a DSL becomes a nightmare. A great plus of such simple internal DSLs with Clojure is that they perfectly compose with existing Clojure core functions because instances of models are merely Clojure data.

My conclusion for this specific DSL area is that you win a lot through Clojure, and loose a little due to the far lower 'technological footprint'.