Hinrich Specht, born in 1974, is Lead Software Architect at Zühlke Engineering in Hannover. Before joining Zühlke in 2007, he worked as a Software Engineer at Siemens. During his more than 16 years in software development by now he gained a lot of experience in many projects, covering different programming languages, architectural aspects and software development processes. In the last five years he focused on embedded software architecture and embedded UI technologies, including Silverlight for Embedded and Qt / QML.
If making yourself understood in a software development project seems too difficult maybe it is time to rethink the language you use. Consider using domain specific language (DSL).
My recommendation: Use QML for its extensible type system. QML offers a simple, yet powerful way for creating and using a custom domain specific language. It will let you describe not only user interfaces but also a model and business logic in a declarative way.
My session will be packed with the many possibilities QML has to offer. We will share our insights into exactly where QML is the right answer and we will discuss some of the scenarios in which QML based DSL might deserve a place on the technology shortlist of your project.
In detail we will provide answers to the following questions:
Why domain specific languages rock
- What is the motivation for using a domain specific language in a software development project?
- Which parts of the software are typical candidates for a declarative approach?
What does QML for us building a DSL?
- Which possibilities does QML offer to extend its type system?
- How are custom C++ objects prepared for the use in QML
- Which types of object registration are available?
* Creatable / Uncreatable types
- How are custom types used in QML?
- How are custom properties registered and used in QML?
- How can QML Objects be accessed from C++?
- We will also cover the few but relevant challenges you might encounter when engaging in your own DSL project.
QML vs. other DSL development frameworks
- How does QML compare to other available tools and frameworks that are specialized for language development?
- When might QML be the right choice?
- Which tradeoffs or limits do we have to accept when using QML?
Outlook & Discussion
- How can code generation extend the possible uses of QML based DSLs?
- Which kinds of software projects can benefit from QML based DSLs?
- Which features should be on the wish list for future QML versions to provide even better support for language development?