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.
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.
And what does it solve?
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
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.