DSLs in Action introduce the concepts you'll need to build high-quality domain-specific languages. It explores DSL implementation based on JVM languages like Java, Scala, Clojure, Ruby, and Groovy and contains fully explained code snippets that implement real-world DSL designs. For experienced developers, the book addresses the intricacies of DSL design without the pain of writing parsers by hand. This book is written for developers working with JVM languages. Others will find techniques that (generally) work for them too. About The Author: Debasish Ghosh is a senior member of the ACM and an influential blogger. He works with DSLs based on Java, Ruby, Clojure, and Scala. Table of Contents Part 1 Introducing domain-specific languages Learning to speak the language of the domain The DSL in the wild DSL-driven application development Part 2 Implementing DSLs Internal DSL implementation patterns Internal DSL design in Ruby, Groovy, and Clojure Internal DSL design in Scala External DSL implementation artifacts Designing external DSLs using Scala parser combinators Part 3 Future trends in Dsl development DSL design: looking forward Appendix A: Role of abstractions in domain modeling Appendix B: Metaprogramming and DSL design Appendix C: A cheat sheet for Rubys DSL-friendly features Appendix D: A cheat sheet for Scalas DSL-friendly features Appendix E: A cheat sheet for Groovys DSL-friendly features Appendix F: A cheat sheet for Clojures DSL-friendly features Appendix G: Polyglot development Index
দেবাশিস ঘোষ-এর জন্ম ৪ ডিসেম্বর ১৯৭১, হাওড়ায়। বিজ্ঞানে স্নাতক। স্নাতকোত্তর ডিপ্লোমা জার্নালিজম ও মাস কমিউনিকেশনে। চলচ্চিত্র ও প্রকাশনা বিষয়ে শিক্ষা গ্রহণ করেছেন। প্রথম চাকরি হিন্দুস্থান টাইমসের বিপণন বিভাগে। পরে বিভিন্ন সংবাদপত্র সংস্থায় বিজ্ঞাপনের কাজ। সাংবাদিকতার হাতেখড়ি আনন্দবাজার পত্রিকার হাওড়া ক্রোড়পত্রে। আকাশবাণীর সংবাদ বিভাগে কাজের অভিজ্ঞতাও রয়েছে। ছোটদের জন্য গল্প লিখেছেন আনন্দবাজার পত্রিকার রবিবাসরীয় আনন্দমেলা এবং শুকতারা-য়। আবৃত্তি, ছবি আঁকা, বই পড়া ভালবাসেন।
I was not impressed by this book. There are a lot of instances of 'in the next section we'll talk about X' where the section then turned out to be five lines long. Also one of the appendices really should have been a chapter as halfway through the chapters the author says 'if you haven't read the appendix yet, go and do so now'. Finally I didn't feel I really learned anything from the book. Part of this is due to prior knowledge (and not a fault of the book), but the other part is due to not being able to follow along. At quite a few points the code samples (with sidebar explanations) came before the text of the book which asked you to think about whether you knew the answer to the thing that had already been explained in the sidebar.
All in all, I didn't feel comfortable with on the one hand the level of over-explaining and at other times not explaining enough.
Great book on how to design, implement and use domain specific languages. Author started from common description of DSLs, show different approaches to they building (for both internal, and external DSLs), and provided a lot of examples in different languages (Groovy, Ruby, Clojure, and Scala (his favorite ;-)). So, after reading this book, you'll able to design and create your own DSLs.
P.S. there is also great philosophical appendix on designing "good" programs - it really worth to read it to many peoples.
P.P.S. more detailed review will published in my blog - I need some time to think about this book
This is a review of the early access copy of the book. All the chapters were complete when I read it, though there were noticeable editing mistakes.
What I bought this book for was an understanding of parser combinators in Scala. This book provided the depth I needed to be able to write a min-interpreter for Scheme in Scala. It also covers creating DSLs in Clojure, Java, and Groovy, all languages based on the JVM, as well as creating a parser with ANTLR and writing a DSL in Ruby. I'm sure I'll come back to these topics as the book is packed with example code. A great reference!