I just saw that Ayende Rahien wrote a book about Domain Specific Languages using Boo? I have never heard of Boo before that point. Can anyone speculate as to the reason he would choose that language?
Boo is another .NET language; it's as good a choice as any. The author of your material is probably familiar with it, or thought that it made a good example language. You might want to see the Boo web site for more information on the language itself.
BOO is a powerful domain-specific language specifically for building domain-specific languages. It would be hard to write a meaningful text on DSLs without at least bringing it up.
Boo has a nice clean syntax and some syntax features that make it DSL friendly. In my opinion, Boo makes a few cool choices around syntax deviation from Python.
Also I think Ayende has been working with the language for a while now. So familiarity probably played a factor. He has been working on it with the Rhino stuff and NHiberbate I think.
If you're going to implement a DSL in .NET, Boo is a reasonably obvious choice because you can influence the compiler pipeline yourself. This allows you to add to the syntax of the language, just like C# language designers did in C# 3 by introducing query expressions. This gives you greater flexibility in making the DSL look exactly how you want it to look.
Some notorious projects using Boo and taking advantage of its special features:
Just to be complete:
- Some chapters of Ayende's book are now available to be read for free, and one of them is just about Boo and why it was chosen to develop the many DSLs the author created and qualified him to write the book
- As many said the foremost reason to use Boo is that it has meta-language features, which is to say you can, for example, create macros that add syntactic elements to the language in the same code stretch that uses them, and doesn't have to pay a performance penalty for it, as the language is statically typed and compiled.