I also used to think there were no compelling differences between Perl and Python. Then I was forced to learn Python for my new job. Two weeks later I started a new hobby project for myself. I started it in Perl, because I've been programming Perl for a couple of years, and Python for a couple of weeks (and I still didn't believe there were any compelling differences at that time). After a couple of hours I gave up, rewrote it in Python, and never looked back.

It's not just the language, but the traditions, ways of writing code, ways of designing APIs. I'm significantly more productive in Python than in any other language I know (Pascal, C, C++, Java, Perl).

I'm not trying to convince you to start learning Python right now; just to point out that it's hard to see what's compelling about Python without actually using it for a while.

-- Marius Gedminas (marius@gedmin.as)

While I haven't bothered to learn it, I'm familiar enough with python that I can extrapolate how productive I would be in it if I invested, say 5 years into learning and becoming extremely familiar with the language (as I did with perl).

One benefit of python is that it might only take 3 years to get to that point, thanks to things like the more regular calling conventions for fuctions, less quirky syntax, better introspection, more standardised OO. I might find learning all the libraries that much eaiser. Once I know them in detail though, those things rarely matter, they might add a few minutes to learning a new library, that's about all. And I suspect I'd spend marginally more time typing than I do when writing perl, which probably would balance that out pretty well.

Omitting the learning curve issues though, I see no significant difference in productivity between python masters and perl masters. I don't see anything in python or perl that would provide one, and I don't see any evidence of one in the real world.

(The analysis is a bit different for ruby, and made with rather less information, but my gut feeling is the same.)

One of the interesting things about haskell, to me, is that I can't even make this kind of analysis about it yet. It's too different. Maybe haskell masters crank out beautiful functional code with no bugs all day. Maybe they spend all day tracking down hard to debug cases of infinite recusion. The only statement I can make about them based on real world observation is that they seem to think more formally than either perl or python programmers, and that many of them seem to be focused more on theory than on implementing real-world stuff.

--Joey