A couple of students have ask why we're using Python instead of Perl in this term's projects. After all, Perl is more popular---there are more books about it, and a lot more libraries for it as well.

The answer is that Brent Gorda and I used Perl to teach classes at Los Alamos National Laboratory for two years. When we switched to Python, we found that it only took two days to cover material that had previously taken three. What's more, students retained more: they were more likely to remember what they'd learned after the class was over, and (crucially) more likely to keep using Python.

If you want to know why students got further with Python than with Perl, check out the Periodic Table of Perl Operators. Yes, that's right: Perl has so many built-in operators that you need a wall chart to keep track of them. And that's even before you start counting all the different ways there are to pass parameters, index structures, and so on.

So if Python is easier to learn, why is Perl more popular? I blame history: Perl was in place and "good enough" when web programming took off in the mid-90s, while Python was still in its infancy. As Stephen Jay Gould observed in his book Wonderful Life, random chance plays a larger part in evolution and history than we're comfortable acknowledging. Sometimes, there is no good reason; sometimes, things just are.