Published Sep 3, 2019

Episode 119: DSLs in Practice with JP Tolvanen

Explore how Domain-Specific Languages (DSLs) revolutionize software development with insights from expert Juha-Pekka Tolvanen, discussing code generation, model transformations, and real-world applications across industries like mobile apps and insurance.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Mobile Apps

    In the realm of mobile applications, Domain-Specific Languages (DSLs) offer a unique approach to user interface design and functionality. and discuss a mobile point of sale application that uses a DSL to mirror the syntax of the final application, enhancing usability and consistency 1. This approach allows developers to create applications with visual syntax that closely resembles the end product, making it more intuitive for users. emphasizes the importance of abstraction in gaining user acceptance:

    In order to get acceptance for your DSL with your users, you should try to make sure the language uses visual syntax that is as close as possible to what they have been working with before.

    ---

    This method not only simplifies the development process but also ensures that the application aligns with user expectations.

       

    Insurance

    In the insurance industry, DSLs have been instrumental in defining products and specifying rules. highlights how graphical languages have been used to model insurance products, allowing domain experts to specify products without needing technical expertise 2. This approach enables the generation of executable code, such as Java, directly from the models, streamlining the process of product definition and rule specification. notes the efficiency of this method:

    We implemented these rules together with this Java generator and we did that in eleven days if I remember correctly.

    ---

    This rapid development is possible because the domain knowledge is already structured, allowing for quick adaptation into a DSL.

       

    Frameworks

    Framework-specific languages provide a tailored approach to configuring and interfacing with existing software frameworks. explains how these languages are derived from existing APIs and code, offering a low-level abstraction that simplifies framework usage 3. While this can lead to a language with a low abstraction level, it is often necessary to manage intricate coding patterns, especially in embedded applications. adds that this method allows for higher levels of abstraction through model-to-model transformations:

    You build your higher levels of abstraction that are more domain specific and use a model to model transformation to go down to that existence.

    ---

    This layered approach ensures that complex frameworks can be utilized effectively without overwhelming the user with technical details.

Related Episodes