tags:

views:

2305

answers:

10

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?

A: 

http://boo.codehaus.org/

Kb
+3  A: 

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.

Michael Trausch
The author chose Boo because it's especially suited for DSL implementation due to its open compiler architecture, not just because he's familiar with it.
Mauricio Scheffer
+4  A: 

Boo isn't a DSL, it's a python-ish language for .Net.

eduffy
Isn't the book about implementing DSLs? I don't think hes claiming Boo is
tm1rbrt
+4  A: 

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.

Jekke
+1  A: 

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.

tyndall
+22  A: 

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.

Jon Skeet
C# Query Expressions / Expression Trees don't let you make up new keywords in C# does it? Did I miss something? This seems to be the real power in the Boo macro stuff.
tyndall
@Bruno: I meant that you can add your own syntax just like the language designers added query expressions in C# 3.0. Will clarify.
Jon Skeet
I can see it now: "insert language here" -- a syntax extension for boo! :D
RCIX
+2  A: 

It seems that lot of Unity developers uses Boo, like the famous Blurst guys...

Klaim
+2  A: 

Some notorious projects using Boo and taking advantage of its special features:

Mauricio Scheffer
A: 

RenrakuOS is an operating system written entirely in Boo. More information here.

Dan
+1  A: 

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.
Monoman