Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boo vs. IronPython

Tags:

ironpython

boo

After having looked at each of these two projects, it seems that both are VERY similar. Both run on top of the CLI, both have python style syntax, both use .NET instead of the standard python libraries.

So, what are the differences between them and advantages of each?

like image 273
Matthew Scharley Avatar asked Oct 11 '08 08:10

Matthew Scharley


2 Answers

The main difference as I see it is that Boo is statically typed, meaning the type of a variable is inferred on its first assignment and is fixed from there - while IronPython has the "real" dynamic behaviour of normal Python code.

IronPython is officially maintained by Microsoft now and targets the new Dynamic Language Runtime in version 2.0. I suspect because of it's statically typed nature Boo might be faster. I don't have much "real" experience with that though ...

IronPython also reimplements lots of the python standard library so you can run lots of python software without change on IronPython (e.g. Django).

like image 94
VolkA Avatar answered Sep 19 '22 02:09

VolkA


Boo is statically typed, but has optional duck typing (which works fairly well, in my experience). Boo is also specifically designed to be "wrist friendly" -- in other words, to minimize the need to use Shift-key combinations. It has good IDE support in SharpDevelop.

As is pretty evident, Boo takes a lot of inspiration from Python, but is also designed to take good advantage of .NET features.

Performance-wise, Boo feels marginally faster than IronPython, and in particular lacks the noticeable startup lag of IronPython.

Boo is still an immature language, and lacks the community of Python. I'd personally be a bit wary about using it in production. Also, I don't agree with all the departures it's made from Python, such as getting rid of explicit self in classes.

like image 41
Ryan Ginstrom Avatar answered Sep 21 '22 02:09

Ryan Ginstrom