Why Python overtook Perl

A decade ago, I used Perl quite a bit. It is a very handy language that makes it possible to do many things quickly and easily.

Python also allows the accomplishment of many tasks with a few lines of code. It has some weird features that continue to annoy me: having to explicitly declare 'self' as a parameter to every class method while never explicitly passing it is close to the top of the list.

Perl had a large head start on Python in terms of users and libraries. And yet Python seems to be passing it by. Why?

My tentative answer: while Perl is very useful, it is clunky and cobbled together.

Python, on the other hand, while it has its flaws, is beautiful.

Human beings are attracted to beauty.


  1. Gene: that is an interesting post. I have thought that Python's elegance was beautiful as well. It reminds me of a thought I had heard a bit ago in an undergraduate mathematics class on intro to Real Analysis: if a mathematical proof was somehow beautiful, it was considered to be more likely true than something that was un-elegant, formless, etc. Hmmm. There seems to be, over and over again, a connection between beauty and function.

    I haven't thought much about this - these are just ramblings from thought.

  2. I loathed Perl. Too many features, too many ways to do every simple thing, no coherent underlying idea. Because of that there was no way to learn just part of the language, you kept running across some oddball feature some guy used to do a simple thing. It was like you had to learn all variants of everything pourquoi que on ne serais pas when ein neue Featur wird pop up out of ganz kein Platz and you had to figure it out.

  3. I'm still pining for Turbo Pascal.

  4. Human beings are attracted to beauty.

    Exactly, which is why people are still attracted to Apple's products despite them being locked down tighter than Fort Knox.