Okay, so I’m thinking of taking the plunge and scripting my game in Boo, but I just want to double-check with the community first. I am fully confident in terms of speed/functionality/ease-of-use of the language, however, I am skeptical of it’s stability. Has anyone here written a full Unity game in Boo?
I’m just noticing that the Boo language hasn’t even reached version 1.0 and it’s been in development since 2003. It makes me wonder if I might start programming in Boo and realise that there still several issues with the language (bugs and undeveloped features) that still need to be worked out.
Can anyone confirm or deny this fact? Is Boo stable enough to comfortably script an entire medium-size game with? (I’ll be working on this game with one other person for probably around six months)
Anyway, any information on the topic would be much appreciated. I’ve read several previous posts about Boo in this forum, however it seems like some of the people advocating Boo like the idea of the language but haven’t actually used it in a production environment.
I like the idea of Boo, except for the indentation syntax. I have used it, but not in a production environment, and expect to get most of what I want from it when Unity supports C# 3.0, without the whole are-they-spaces-or-tabs issue.
If it’s worth it depends entirely on what you’re looking for:
Do you like Python or C# syntax better?
Is the less verbose language worth the much smaller percentage of people using it in the community, ie, reduced chances of community support?
Will you actually be using most of its features, or just write shorter C#? If you’re not sure about what features would help you, then stick to C# unless you’re willing to spend extra project time on grokking Boo.
Will you be bringing more people into your project? Are they likely to be comfortable with Boo?
On my tests, both in Unity and on independent scripts, it seems stable enough. Most likely it is because 95% of what you end up using is actually provided by the .Net libraries and not added by the language. Where Boo not having reached 1.0 may bite you along the way is if the language changes between now and the next Unity release and Unity updates their mono version, so that’s something to consider.
Thanks for the response. I’m in love with the Python syntax. However, your point about community support is well taken… it’s probably better to stick with C# for that reason alone.
Err… I just dislike the idea of not using something simply because it’s not “the standard”. Oh well, thanks again. Your reply was very helpful.
Yeah, as I was writing it I became aware of how corporate that sounded. Brrrrr. But I’m glad it was of assistance.
My main dislike of Boo is the indentation. For me the optimal language would be something like Groovy, but C# 3.0 comes relatively close.
Why not do a trial run? Come up with project that is short enough to work as a test, but has at least one complex area, and try implementing it in Boo. You’re likely to run into at least one issue where you need to ping the community - and even if you don’t, pick the trickiest implementation detail for posting - and that will allow you to evaluate how well the support translates to Boo.
It might encourage more people to try it out, and in the process get your preferred language more support.
I do all my stuff in Boo. There are not a lot of other (vocal) Unity Boo users that I have found. Unity’s JS is written in Boo I’m pretty sure, so stability does not seem to be a problem. It is possible to turn off indentation and use end statements in Boo. I have not done it but the Boo site says it is an option. I have found that for Unity stuff you can use JS examples of CS xamples and use them pretty easily. I like the syntax for hashtables and slicing ( [3:-4] stuff).
The only probablem I have found is I bought a ddl that does some automated GUI building and it only spits out CS and JS code . If you will be expanding thec oders you are working find Boo coders will be tough, but Boo is really just another C based procedural language, it is not a LISP, APL, Haskel or prolog, so a good programmer comfortable with C base languages and .NET should have no problem using it.
Boo does have a lot DSL building features with macros and meta programming. I have not used any of that so I can’t comment on it. I just use it like a strongly typed python. The Boo Mailing list was very responsive to questions whne was first using Boo. Most of Boo’s basics are documented but things like genrics you have to ask about.
P.S. if you do use Boo get Sharpdevelop install it on VM or Windows machine that is sharing the drive with the scripts on it. the autocomplete and which includes the whole Untiy API Check on the wiki for where to get the help file and how to install them using Visual studio. the same files that work for C# work for Boo and the procedure is about the same.