Domain-Specific Languages
When carefully selected and used, Domain-Specific Languages (DSLs) may simplify complex code, promote effective communication with customers, improve productivity, and unclog development bottlenecks. In Domain-Specific Languages, noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs. Then, where DSLs prove suitable, Fowler presents effective techniques for building them, and guides software engineers in choosing the right approaches for their applications.
This book’s techniques may be utilized with most modern object-oriented languages; the author provides numerous examples in Java and C#, as well as selected examples in Ruby. Wherever possible, chapters are organized to be self-standing, and most reference topics are presented in a familiar patterns format. Armed with this wide-ranging book, developers will have the knowledge they need to make important decisions about DSLs—and, where appropriate, gain the significant technical and business benefits they offer.
Review By: Andy Wiesendanger
04/25/2011Much like Martin Fowler’s other books, Domain-Specific Languages has two parts. The first describes the book’s subject matter, and the second gives an organized presentation of patterns related to the topic at hand. The approach is a good one, because readers already familiar with the subject can skip the first part but still use the second part as an easy reference.
This book describes domain-specific languages (DSLs) and why they are useful (including why they may not always be useful). It took me awhile to grasp exactly what Fowler meant by DSLs, but the chapter “A Zoo of DSLs,” which contains examples of DSLs in well-known software, really helped. Those real-life examples brought the rest of the narrative into focus. If you’ve never heard of DSLs before, or if they remain unclear to you, it may help to start with that chapter.
If you’re interested in DSLs—especially if you think they may be useful to your project but aren’t yet sure—this book is a good place to start.