InfoQ Homepage Domain Specific Languages Content on InfoQ
-
AI-Based Prose Programming for Subject Matter Experts: Will This Work?
In this article, author Markus Völter discusses the future of programming using Large Language Model (LLM) tools like ChatGPT and GitHub’s Copilot for prose-to-code generation. He also talks about what new approaches and language changes need to be in place to help non-programmers take advantage of the "program in prose" techniques.
-
How DSLs Withstand the Test of Time
Domain-specific languages let domain experts participate in the software development process. Few DSLs however withstand the test of time. Key success factors for longstanding DSLs seem to be user-centered design and adhering to the open–closed principle. Markdown, TeX, and CSS, have remained popular and relevant for two decades, even as their original target audience evolved.
-
Why DSLs? A Collection of Anecdotes
Two years ago, I gave a talk on one of the systems discussed here. Together with a colleague, I explained the business case, the technical benefits, why a regular programming language would not work and the all-around positive outcomes of using the DSLs, plus some of the problems we’ve run into.
-
Q&A on The Rise and Fall of Software Recipes
Darius Blasband has written a book which challenges the conventional wisdom of software engineering: he protests against the adoption of recipes and standards-based approaches and rails against the status-quo. He calls himself a codeaholic who advocates for careful consideration of the specific context and the use of domain specific languages wherever possible.
-
Metadata-Driven Design: Creating an User-Friendly Enterprise DSL
What if we could create a language that could be easily understood by the layman but yet enforce those rules that apply to our business domain? What if a snippet of this language could then be interpreted and performed at runtime, without the need for recompilation or redeployment of the system? Aaron Kendall shows how to build such a domain-specific language for a saavy but non-technical crowd.
-
Introducing Spring XD, a Runtime Environment for Big Data Applications
Spring XD (eXtreme Data) is Pivotal’s Big Data play. It joins Spring Boot and Grails as part of the execution portion of the Spring IO platform. Whilst Spring XD makes use of a number of existing Spring projects it is a runtime environment rather than a library or framework, comprising a bin directory with servers that you start up and interact with via a shell.
-
Interview and Book Review: DSL Engineering
Markus Völter, one of the authors of "Model-Driven Software Development", has published a new book in the field of model-driven software development (MDSD). "DSL Engineering" focusses on the design and implementation of domain specific languages (DSLs).
-
How to Integrate Models And Code
While creating models in a form or another is very common, their combination with the code has been challenging. As a result, models are usually thrown away once the implementation has progressed. The reason is partly in the modeling languages used and partly in the tools applied. The article describes proven practices for working with both models and code.
-
Challenges and Opportunities in Mobile Application Development and Mobile DSLs
Converged Mobile Solutions differ significantly from their Web and Desktop counterparts: they often rely on a sophisticated compared to their scope, while the User Experience and Device Capabilities are paramount to their success. We review the Mobile Technologies, Development Tools and Processes and detail how a DSL can simplify the delivery of Rich Cross Platforms Mobile Solutions.
-
Book on Leveraging Domain-Specific Languages by Martin Fowler with Rebecca Parsons
In their new book Martin Fowler and Rebecca J. Parsons address the topic of Domain-Specific Languages. “Domain-Specific Languages” does not only address the concepts behind DSLs, but also tries to explain the subject in a pragmatic manner using examples in Java, C# and other languages.The book contains different patterns that reveal best practices in designing DSLs.
-
Concrete: Rich, Customizable DSL Editors for the Browser
Text-based DSLs are useful, an custom editor for the DSL is even better. Concrete allows to build customized editors for JSON-based DSLs/Models. InfoQ talks to Concrete's creator Martin Thiede.
-
Xtext/TS - a Typesystem Framework for Xtext
Since the release of version 1.0, it has become feasible to build complex expression languages in Xtext. However, once you have expressions, you typically also need a type system. In this article Markus Völter describes a framework for specifying type systems for expression languages built using Xtext.