Except if you have a good reason for wanting to learn Python, I will say as a rubyist you should learn a functional programming language like clojure or scala if you don't know them already. This is because both Python and Ruby are OO and similar in alot of ways.
I would say you are right except in one case, which is scientific computing. The OP touched on it, but that is definitely the "killer app" of the Python ecosystem, IMHO. Not that the languages you mentioned don't have equivalents, but if you are a rubyist who just wants to do some heavy-duty scientific/data-intensive computing without stepping too far out of your comfort zone, I can see Python being an attractive option.
I am in the exact same situation. I know Ruby, as my first language, but keep running into scientific applications where Python or R is used. The languages are so similar, it is pretty easy to move between the two at a superficial level, but does take away some bandwidth trying to stay current in them both. It seems that if you are going to do web based work, Ruby is a good choice, but it you are going to be actively involved in non-weby stuff, Python is a better choice. I say this as a dedicated Ruby guy, who would rather stay with it, but am being pushed into more and more Python....
I know nothing about scientific computing, but I am sure you took a look at this,right? http://sciruby.com/
It goes like: " Ruby has for some time had no equivalent to the beautifully constructed NumPy, SciPy, and matplotlib libraries for Python. We believe that the time for a Ruby science and visualization package has come..."
But status is pre-alpha, last commit 7 months ago... so dunno how much it can help...
I don't know much about that project, other than the fact that it isn't mature yet. In my comments above, I didn't mean that Ruby _didn't_ have any libraries focused on scientific computing, just that they didn't have the community and tools for scientific computing that Python has.
I would add GIS as a second (if somewhat niche) case. The two big commercial players in the field (ESRI and Safe) as well as most of the open source players all have Python as a scripting language
This influence/importance can also be seen in the existence of GeoDjango, which is shipped with Django itself[0], where Ruby seems to have the old GeoRuby[1], the rather recent (and with unsure following) RGeo[2] or doing raw PostGIS.
Also in OpenGEO, looking at their projects, aside from PostGIS it's either Python (and JS) or Java (and JS)
> Python and Ruby are OO and similar in alot of ways.
They aren't similar. I found Ruby to be really hard to learn: The syntax is a mess, Rails is a nightmare, every Ruby project in existence seems to have a gigantic dependency web consisting of dozens of gems, and the language has a lot of rabid fans (including some HN'ers) who'll become downright hostile to anyone who dares suggest that Ruby's less than perfect...
So if you've survived the clusterf...of the Ruby experience, you may find Python to be a suitable substitute for many projects.
Python has its own set of problems -- the years-long Py3k debacle, super(), and anonymous functions (the latter two of which have been tossed around in this discussion) -- but I've found Python to be a much more positive overall experience than Ruby.
Good point! I know C# and I'm learning Ruby. Next I'll pick clojure for functional programming.
We should learn a new language that will change the way of our thinking.