I spent most of the day reading the language tutorials for Boo after realizing that an internal DSL for discounts and promotions would be one giant leap forward in our e-commerce web front end. Unfortunately as a side affect of spending most of the day learning just how flexible Boo is, C# has lost a lot of its luster to me. Boo is a fantastic language (more on that another day), but C# still has ReSharper and Visual Studio on its side.
Scratch that, Boo now has Visual Studio support too!
It seems for any language in the .NET world to gain wide acceptance it must first be integrated tightly with Visual Studio. With BooLangStudio Boo becomes a first class .NET language. Currently BooLangStudio is under early development, and as such it has a ways to go to become comparable to the VS C# experience, but despite the rough edges, its very usable. I did run into some issues getting started, all very minor considering how early in development the add-in is.
First off, you need to install the MS Visual Studio 2008 SDK, then finally install the BooLangStudio add-in. The BooLangStudio add in is installed from the command line by running the "install.bat" file which essentially bootstraps an NAnt build script.
With that out of the way, you start Visual Studio 2008 using the "development hive". This is done from the start menu from the VS 2008 SDK start menu folder.
After which we can create a new boo project using one of the installed templates.
Choosing the Boo Console Application creates everything for a "boo hello world" application, as seen here.
The nice thing about the .booproj files is that they are MSBuild files just like in C#, which also means they should work in SharpDevelop which includes Boo support. From my standpoint its important that MSBuild is supported for automated builds and customization. Once a boo project is created, building and running is simple as hitting F5.
If you have any compilation errors they show up in the Errors List just like in any other Visual Studio language.
The on issue I did have, is with my tab settings for Boo. Boo uses indentation to track code blocks rather than braces or end statements, so unfortunately it's white space sensitive. Here's my really "super awesome" Car class that I added to my project.
Notice that the syntax highlighting isn't perfect, but that's very minor. Slightly less minor, to get a new Car class to compile I first had to go into the Visual Studio Tools | Options menu and set the tab spacing for Boo. Before I did that I was getting odd, "expecting DEDENT" and "expecting INDENT" errors all over the place.
Once I set the tab size and re-did the tabbing for my class, everything worked just fine.
