|
|
| Background |
 |
|
|
About five years ago, I co-wrote a book about Model-Driven Software
Development. The original
German edition was published in early 2005.
The updated English translation
became available in May 2006 and the
further updated, second German edition was in stores in May 2007.
While I don't have the exact sales numbers of the book available, I
think in total 5.000 copies should have been sold. That's of course
not earth-shattering, but also not bad for a technology textbook. I've
received good feedback from readers, and I know the book is still used
in universities today.
However, there is a big problem with the book: it is hopelessly
outdated. The tools have changed a lot! Not just in details, but
fundamentally. Also, my own thinking about the topic has evolved.
This is reflected best in the fact that today I mostly talk about
DSLs, and not MDSD anymore. So, an update is in order. However, I
don't think that incrementally updating the old book makes sense,
so I have decided to write a new one.
| The New Book: DSL Engineering with Language Workbenches |
 |
|
|
The new book will reflect these changes. It will be called
DSL Engineering with Language Workbenches and it will become
available end of 2012 or very early in 2013. I had originally
planned to write the book together with Eelco Visser,
but we noticed that the two of us don't have a completely compatible approach to
writing, and we don't have the same schedule/priority, so I am going
to take the lead. Lennart Kats from Eelco's group
will still contribute his experience with grammars and the Spoofax
Language Workbench. And one section is heavily based on a paper I
wrote with Eelco. See below for more details about the structure of the
book.
Since the publication of the old book, a lot has also changed with regards
to books and book publishing. So the new book will certainly be available
as an ebook for the Kindle. I am not sure yet whether there will be a printed
version; but I guess there is always on-demand printing, and I will take a
close look at the possibilities. I am most likely not going to go with a
"real" publisher, so in any case the book should be very cheap to get.
| Structure |
 |
|
|
The book will consist of four parts. The first one will be an introduction to
the topic and the book. It will be written in a very personal style and describe
my "view of the world" regarding DSLs. The second part will cover DSL design: how
do you structure adequate DSLs, and how can you design several DSLs to play together.
This part is mostly tool-independent and will use a set of case studies to illustrate
design alternatives and decisions. Part three will address DSL implementation. We're
going to go through several DSL implementation aspects (such as structure, syntax,
scopes, validation, IDE support, etc.) and then illustrate these with examples from
Xtext, Spoofax and MPS. The book is not intended as a tutorial for any of these tools;
we merely use them to illustrate the concepts. Part four addresses using DSLs in various aspects of software
engineering. There will be chapters on product line engineering, requirements,
architecture, and implementation. Some of these chapters will be case studies or based
on existing papers and articles.
| Current Status |
 |
|
|
As of January 2012, the introduction and the design chapter has gone out
to reviewers and as I am getting the feedback, I am integrating it into
the chapters. Lennart and I are also eagerly working on the implementation
chapter. This should be ready for review by May. Part four will be
addressed in the second part of 2012, so we can do copyediting in late
autumn and then publish by the end of 2012 or early 2013.
| Stay in Touch |
 |
|
|
I will update this page from time to time to reflect substantial new
developments. However, if you're interested in the book, you should follow
my blog, my twitter or
my Google+ page.
|