What is the difference between IronPython and BOO? Is there a need for 2 Python-like languages?
IronPython is a python implementation wheras Boo is another language with a python-esque syntax. One major difference is that Boo is statically typed by default.
I'm sure there are more differences, I've only looked at Boo briefly, but I've been meaning to look at bit deeper (so many languages so little time!).
Here is a list of Boo gotchas for python programmers which sums up the differences quite nicely:
IronPython is Python. Boo looks like Python.
They have different goals and while IronPython aims to be just like Python, Boo does not. Boo is not worried about compatibility with Python like IronPython is...
IronPython is designed to be a faithful implementation of Python on the .NET platform. Version 1 targets Python 2.4 for compatibility, and version 2 targets version 2.5 (although most of the Python standard library modules implemented in C aren't supported).
Boo's stated aim is to be a "wrist-friendly [dynamic] language for the CLI." It takes a lot of inspiration from Python, but diverges on four main points:
- It's designed specifically to take good advantage of the .NET platform
- The designer diverges from Python syntax where he doesn't agree with the design decisions (most notably, lack of explicit self)
- The language is explicitly designed to be "wrist friendly" -- that is, to minimize the need for the Shift key or other multi-key combinations to be used.
- Boo is statically typed by default, but allows optional duck typing.
There are some other minor differences in implementation/performance, but the divergent design goals above should (IMO) inform your choice of languages.
Two more things to take into account are maturity and community. Python is much more mature than Boo, and has a much larger community. IronPython also has the explicit blessing of Microsoft.