Rolling Your Own: Domain- Specific Languages in Java
Believe it or not, we’re preparing for our last event of 2018! We’re delighted that we’re going to be joined by Dr Steffen Zschaler (@szschaler) for his talk ‘Rolling Your Own: Domain-Specific Languages in Java’.
Domain-specific languages, DSLs, or “little languages” as they’re sometimes known, can have great benefits for making your source code more readable, correct, maintainable and overall provide improvements to the efficiency of the whole team. Everybody has seen and used DSLs before, be it good old SQL, or languages like Docker, Kubernetes, Fn Flow, Terraform, or GraphQL. But isn’t it difficult to build and maintain your own language?
In this talk, through a series of live-coding examples, Steffen hopes to convince you otherwise.
For those of you not familiar with him, Steffen is a senior lecturer in computer science at King’s College London. He’s been researching domain-specific languages, software modelling, and code generation for almost 20 years. He’s built a number of tools, as well as developing foundational theory. Steffen is always looking to convert people to the benefits of using domain-specific languages as part of their development workflow and is happy to discuss this at length with or without drinks at hand…
Ahead of the session we chatted to Steffen to find out a bit more about what we can expect and who will benefit the most from the talk.
Who do you think should come along and why?
Developers primarily, but also for example people with an interest in UX might find this interesting. DSLs can be useful for many users:
- Developers can build DSLs to bring complex problems to a higher level so that they can be expressed, maintained, and solved more efficiently. This can bring down error rates, make it easier to understand the code, and thus improve maintainability and extensibility.
- Another, potentially even more interesting use of DSLs (especially with the modern tools available for building DSLs), is to build DSLs into your applications for use by the application users. I won’t be showing DSLs like this in the talk, but the technologies I will be showing apply there as well and I will be very happy to discuss such use cases.
What do you think are the three most interesting questions that this event will answer?
- Why should I consider building a DSL (and am I perhaps already doing it)?
- What are the elements of DSLs?
- How can I efficiently develop, test, and maintain a DSL in an agile Java world?
Why do you think this presentation is important for people?
DSLs have been around for a long time. But while there seems to be some general agreement that they’re useful, there’s also always been a feeling that building good DSLs takes a lot of effort and substantial specialised expertise. I hope to be able to show that this has changed substantially over the last decade or so with the introduction of language workbenches, which have really matured now. So, perhaps it’s time to re-evaluate these feelings about DSLs…
Do you have an interesting DSL fact you can share with us?
The entire Dutch tax system is now programmed in a DSL, including unit tests etc. As a result, they can test out proposed changes to tax rules and analyse their potential impacts before turning them into law. See https://www.youtube.com/watch?v=_-XMjfz3RcU
If you’d like to join us, the event is happening on Tuesday 18th December, 18.30 @ Skills Matter, EC2M 7EB. You can find the full details and register here.