Boo is a .NET static-typed language with a python scripting feel. It’s neat because you have less to type (and maintain) and get much of the same functionality. SharpDevelop also has lots of built-in support for it, which made trying it out easy. I decided to try it out when writing a program that would do all the mind-work for me in playing the Clue board game.
Here I summarize my experience in bullet form.
Pros:
- Easy to pick up and learn as you go (mostly).
- Type inference means less code.
- Very responsive user base on Google Group.
- Great example of good prototyping language that can grow into large projects.
- Decent IL is emitted by the compiler.
Cons:
- No support for member shadowing (child class redefines a parent’s member as a different type or attributes)
- I miss some of the compile-time errors I get from common mistakes that the C# compiler gives me.
- The compile-time errors the Boo compiler does give are difficult to read to figure out what the root cause was.
- Arrays are confusing (for me, but I’m not a python developer).
- The debugger in SharpDevelop (at least for Boo projects, I don’t know if it’s for all languages) does not support watches, or setting the instruction pointer, or attaching to running processes. It’s amazing what the open-source community has done so far, but a lot of work remains to be done.
Summary
Try Boo out and give feedback. I have to switch to another language for now to get my project finished, but it’s a good start for the language.