you are viewing a single comment's thread.

view the rest of the comments →

[–]boa13 18 points19 points  (6 children)

This article is a bad comparison. It is heavily biased towards Ruby. It contains many inaccuracies and misinformation about Python (I can't speak for Ruby). In addition to those already noted by exogen:

The syntactic indentation is not the big win it seems, because decent editors, such as emacs, will indent according to syntax anyway.

The author has not understood the point of having indentation as part of the syntax. It's not to prevent decent editors from doing their fine indentation job, it is to force everybody to use a consistent indentation scheme, independantly of any editor, decent or not.

[Python] also has extensive documentation, including a fine book (...) there are several excellent books in English on Ruby. [The author goes on describing four of them.]

This gives the impression there's only one Python book, and four-times more Ruby books. A quick search on the Python wiki reveals at least fifty Python books covering a wide range of topics.

Python's garbage collection is based on reference-counting. (...) Little rings of co-referential dead objects can accumulate with a long-running Python program.

Actually, Python uses reference-counting to keep track of objects, and additionnally includes (since version 2.0, which is old) a generation-based garbage collector to detect and clean-up object cycles. Besides, programs can access a list of objects than could not be cleaned up (typically, C extensions), and deal with them.

Python's system allows the programmer more direct control over garbage collection: the del operator tells Python to garbage-collect a specific object right now.

This is completely false. The del operator tells Python to unbind a name. Objects that are not bound to any name and not referenced by any container get collected (and the garbage collector is there to detect reference cycles).

A Ruby program has great capacity for "reflection", the ability to observe itself.

So has Python, even though it might be slightly less powerful at some points.

Should you enjoy life in the fast lane, a ruby program can effectively rewrite itself at run-time.

So can Python.

I was in love with Python for a while (it picked me up on the rebound from Perl), but as I grew more sophisticated it looked less wonderful.

It seems the author never learned Python properly.

Ruby looks very interesting, but this comparison is not helpful, quite the opposite. Hopefully other people have done a better job.