I'm more of a Python than a Ruby programmer but it boils down to the following points.
- Personal preference (programming style etc.)
- Problem you're trying to solve (availability of libraries etc. is important here).
- Integration with existing code bases.
That being said, I have a few reasons that are technical because of which I use Python over Ruby. These are personal opinions and not unbiased.
- Ruby was an underdog till Rails came along. And from what I hear, Rails isn't all that hot. The language grew because of a killer app rather than it's own virtues. The rails community is from what I've seen quite abrasive.
- The Ruby Standard library documentation is much poorer than the Python one.
- Till recently, the Ruby interpreter (MRI) didn't have byte compilation and was quite slow.
- Python's emphasis on readability rather than "clever programming tricks" makes for clean code which is easily understood (very little magic - I say this after a couple of years of bad perl).
- I really don't like the
@@
etc. sigils to denote things.
Just to balance it off, here are the things I like about Ruby (with my limited exposure).
- The whole
yield
coroutine thing. It's there in Python as well but not as deeply as it is in Ruby. - The metaprogramming.
- The emphasis on tools and processes in the community (although it does sometimes become overkill).