In this talk, I will delve into the seamless integration of language engineering activities and tools into the software development process. We will explore the development of domain-specific languages (DSLs) tailored to users' needs, and how language workbenches play a pivotal role in enabling developers to create DSLs more efficiently and within their usual work routines.
To kick things off, we'll begin with an introduction to language engineering, outlining the key steps involved in DSL development. Along the way, I'll showcase examples of language workbenches that offer essential features such as parsing, validation, serialization, and code generation to assist developers in their language engineering.
Moving forward, we'll examine how developers integrate DSL development activities and tools into their everyday software development routines. We'll explore how language engineering reflects crucial stages like analysis, design, implementation, and testing. As a look-ahead, I'll emphasize the significance of early prototyping, enabling valuable user feedback and fostering familiarity with the language workbench.
But the journey doesn't end with the initial creation of a DSL: In practical scenarios, DSLs need to evolve through iterative processes, which pose further challenges. We'll address topics like managing both (re-)generated and hand-written source code, as well as ensuring scalability of language workbenches. Furthermore, we'll discuss the long-term development of DSLs, including adaptation to evolving technical environments and avoidance of critical vendor lock-ins.
While I won't be conducting an in-depth evaluation of all available language workbenches, my aim is to equip developers with the necessary knowledge to seamlessly integrate language engineering into their software development processes. I'll present typical scenarios encountered during DSL development and provide practical solutions by showcasing examples of graphical and textual DSLs and their respective language workbenches. Notably, we'll explore textual DSLs in web development with Eclipse Langium.
By the end of this talk, you'll be motivated to incorporate DSL development into your regular software development processes, both in the short term and for sustainable, long-term growth.