Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Presentations Mission: Impossible–Purely Declarative User Interface Modeling

Mission: Impossible–Purely Declarative User Interface Modeling



Achim Demelt discusses creating a UI using a completely declarative DSL called S4 without flow control, events or data binding.


Achim Demelt has been writing model-driven software and frameworks for 10+ years, based predominantly on the Java/EMF platform and Eclipse’s Xtend/Xpand/Xtext technologies. After many years working on the back-end side of applications, he now leads the UI DSL and framework development at Wilken GmbH, a maker of ERP software in Germany.

About the conference

The Code Generation conference is the leading event on the practical applications of Model-Driven Software Development (MDSD). It offers a high quality learning experience by combining discussions and debates with a diverse range of practical tutorials and workshops. It will also give you the opportunity to share experiences and knowledge with fellow developers.The conference is now in its 6th year and is known for providing a high-value learning experience. This reputation has been built up by attracting industry-recognised experts to share their experiences at the conference.

Recorded at:

Sep 07, 2012

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • And what does it solve?

    by Adam Nemeth,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    If I'd have a boss who poses meaningless technical challenges to me, I'd quit on the spot.

    It's possible to create a declarative UI: just use HTML and CSS3 without JavaScript. CSS3 even does away with the transitions.

    But what on Earth would it solve for the users?

    Computers are interactive. Users command computers to do stuff for them. This is the basis situation. An imperative language expresses these need rather well.

    Sure, you can build a declarative page descriptor, that's even benefical (albeit the above mentioned two languages are well-suited for this task already), but interacions will be verb-based. "If this button is pressed, we expect you, dear computer,to do this".

    Declarative languages are known to hard to work with: while I'm fluent both in XSLT and TypoScript (just two examples), I know that most programmers find them really hard to work with.

    A good engineering product is one that solves needs perfectly for the users. The user of an API is the programmer, and what a programmer creates is used by the end-user. If the programmer has to do dances, or the end-user gets a software with bad ergonomics, you've failed to create a good engineering product.

    The good reaction to such CTO requests is "you're an idiot, you either forget this sh.t right now or I'm outta here."

  • Nowadays writing the UI in a declarative is not a challenge

    by Javier Paniza,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The Challenge: "We want to write the complete UI of our next generation ERP System in a declarative way. Not a single imperative statement."

    Today, any Java developer can write a business application with automatic UI generation using open source domain-driven frameworks, such as OpenXava. In fact, there is already a complete ERP without a line of User Interface code written with OpenXava.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p