Well, I'm a Python zealot, so take my statements with whatever grains of salt you wish.
That being said, here goes:
What Python has on Ruby:
Speed of exeuction
- even in normal execution Python is faster than Ruby in most cases. Throw in things like Psyco
and the speed is unmatchable (with Psyco, Python can reach half C-speed).
- I'm gonna go ahead and give the edge to Python here without being sure about this one. There's not many things I've looked at coding which haven't had good Python bindings.
Support/Usage in the community
- Python has a much bigger user base than Ruby, with my only evidence being the number of projects written in Python vs Ruby and the activity on the comp.lang.* mailing lists for each.
Readable, Consistent Syntax
- Yes, some people think the indentation to specify nesting levels is a mistake, but I can guarantee you that 90% of those people haven't given it a fair shot. Ruby chooses to use a mish-mash of brackets and begin..end
blocks as well as other strange delimiters. In my experience Python code generally reads a lot like pseudocode when best practices are applied, the same cannot be said for Ruby.
Where it's about a draw:
Simplicity of language
- Both Python and Ruby are relatively simple languages to learn in terms of syntax and of the languages' best practices. Development time is probably approximately the same for both for any given app.
Power of language
- both are quite powerful, and none more powerful than the next anymore, it would seem. It used to be the case that Ruby had the edge here, but I wouldn't say so with Python 2.2 and greater.
Where Ruby wins:
- Ruby's big in Japan
So, that's my summary of the arguments between the two. I've used Python a ton, and Ruby only a smattering (I started learning it around the same time as I learned Python and once I knew Python I didn't pursue learning Ruby much anymore).