Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

BOO Vs IronPython

What is the difference between IronPython and BOO? Is there a need for 2 Python-like languages?

like image 351
Ted Smith Avatar asked Mar 01 '09 21:03

Ted Smith


2 Answers

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:

  1. It's designed specifically to take good advantage of the .NET platform
  2. The designer diverges from Python syntax where he doesn't agree with the design decisions (most notably, lack of explicit self)
  3. 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.
  4. 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.

like image 73
Ryan Ginstrom Avatar answered Sep 20 '22 02:09

Ryan Ginstrom


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:

  • http://boo.codehaus.org/Gotchas+for+Python+Users
like image 33
Andrew Barrett Avatar answered Sep 19 '22 02:09

Andrew Barrett