All the Perl that's Practical to Extract and Report

Navigation

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Without JavaScript enabled, you might want to
use the classic discussion system instead. If you login, you can remember this preference.

Please Log In to Continue

I think one part of the problem with Perl's perception as an evil, hideous language that should be forbidden by some Geneva Convention comes from the association that Perl has with nasty problems. Perl is so dang useful that it's used to solve hard problems. Solving an equivalent problem in Python probably occurs after you have the luxury of actually sitting down and thinking about what you're doing.

I think you are close, but I disagree with some of the details. For all the crap Python gets from Perl programmers (and I am one of those who dislike it), it’s not significantly worse or better than Perl at any particular task. The language has a few horrible flaws, but then Perl also has its own share of those. (I find myself chafing less at Perl’s flaws so that is the language I chose.) So I don’t think it’s that people reach for Perl in situations where they wouldn’t reach for Python.

However, I think “bad by association” applies anyway: back when Perl was the only game in town for web stuff, there was a flood of incredibly terrible programmers writing stuff in it. Some from that suck brigade went on to create PHP and then the rest of them all descended on it like flies on a carcass. But they left behind mountains of hairy code whose maintenance is the first encounter many people today have with Perl. The result is quite predictable.

Another problem that Perl has always fought with is that it’s too much unlike mainstream language – mostly in ultimately insignificant ways, but it’s still different. In contrast, Python feels a bit like a much cleaner and saner Java to me. Ruby feels more like Smalltalk, but of course that too (“everything is an object”) is familiar to Java folk. Perl cares more about feeling familiar to someone steeped in Unix – and that’s not a popular culture any more, in spite of all the Linux users. This unfamiliarity appears to make people approach Perl with a different mindset than their other programming: they set out with the intent of cobbling together something quickly and dirtily. The result is quite predictable.