Boo celebrates its 0.5.3 release today, featuring a host of bug fixes and features. Boo is a new object oriented statically typed programming language for the Common Language Infrastructure with a python inspired syntax and a special focus on language and compiler extensibility. It features ASP.NET support and dynamic duck-typing. For SharpDevelop users, BooBinding has been updated to work with the latest SharpDevelop release. MonoDevelop users will be interested to know that a Boo Addin is available in SVN.
Boo looks like it has got a lot of good things going for it. It incorporates many modern ideas from type theory, + a syntax which is refreshing in comparison to more verbose languages (I especially like the [getter] property for fields – goodbye aching wrists!).
All this makes it a winner for me and worthwhile learning.
btw. anyone know if it runs on mono or pnet?
For Mono on Windows, Boo runs great.
“btw. anyone know if it runs on mono or pnet?”
Yup. Monodevelop intergration is in the works also:
http://www.tenslashsix.com/index.php?p=60
“What language did you write it in?”
“Boo.”
[Sounds of someone getting their butt kicked]
The next version of Boo will include a few attributes that generate code.
[Asynchonous]
def Foo():
pass
generates the async pattern
def BeginFoo():
def EndFoo():
[Singleton]
class Foo:
generates code that implements the singleton pattern
[Disposable]
class Foo:
generates the disposable pattern. All disposable fields will be disposed of.
[Disposable(“Close”)]
class Foo:
generates the disposable pattern with foo.Close().
[Disposable(FreeUnmanagedResources)]
class Foo:
def FreeUnmanagedResources():
generates the disposable pattern plus calls your method that deals with extern methods.
[Disposable(true)]
class Foo:
generates the disposable pattern with thread safety
[Disposable(managedDisposeMethod, unmanagedDisposeMethod, threadSafe)]
Down there, but you really need to survey http://www.99-bottles-of-beer.net/ before making this claim.