Now them’s fighting words.
I also took a look at a discussion on the subject over on Slashdot, where the comments were equally derogatory towards Perl, as well as a number of other languages. It is a amazing the
hatred cluelessness out there. This is a discussion that has been going on forever about what is the most hated, the worst, the ugliest, the … programming language. I know. I’m a Compusaur — I’ve been programming since the mid-1970s, cutting my teeth on languages like BASIC, FORTRAN IV, and APL, and I’ve used even older language. I’m also — and I can say this with absolute confidence — the person who has been programming in Perl the longest with the exception of Larry, it’s author. I’m Perl’s Paternal Godparent; Larry, Mark, Jon, and I were carpooling to SDC when he wrote the first version of Perl, and I’m the person who was doing combo Perl-QMenu scripts to support the BLACKER program. I’m the one who knows that Perl would not exist without the TCSEC (Orange Book), so don’t say the NSA hasn’t given you anything. I wrote the first version of the history section in the Camel book, fuggahdsake.
But back to the question at hand: Whenever anyone tells you that something is the worst or the most hated, you must learn context. You think Perl is bad for readability? Try reading APL or LISP, and remember that COBOL was designed to be readable. Different languages and different editors are good for different things. Almost everything has strengths and weaknesses.
Perl is best at what it was originally designed to do: Text manipulation and report generation. It is great for easy text parsing scripts thanks to regular expressions and associative arrays, and implementing state machine parsing tools isn’t complicated. I have a large tool that at its heart is perl; it is perl that helps me generate the California Highway pages. But is perl the best language for system administration (which is what the Stack Overflow folks do)? No.
I’ve worked with loads and loads of languages, from Algol to Zed (well, I’ve looked at a little Zed — it is a formal methods language like Ina-Jo or Gypsy). I’ve written large programs in Algol 68C and PL/I (actually, both PL/C and PL/I (X)). I’ve worked in BASIC (especially RSTS/E Basic, which was a model for some Perl syntax), Fortran IV and 77 and WATFIV, COBOL, C, Ada, and APL. I’ve even done some LISP and SNOBOL, as well as MINITAB. To me, the language I had the most is Excel Spreadsheet Macro Languages, for I’ve seen difficult to find errors in that language to devastate organizations.
But most of the “kids” responding to that poll grew up in a different era. They learn Java and C++ and drink the Object Oriented Kool-Aide. They deal with PHP and Python and hosts of other new scripting languages, and complain about the old — without realizing that the newer languages are building upon the foundations of the previous ones, correcting the mistakes for a new generation.
In reality, the programming language you hate the most is the one that you’re unfamiliar with, that someone wrote bad code in, with no comments, that you have to maintain. Just as you can write easy to maintain code in any language (including APL — but in APL you can write it in one line), you can write garbage in any language.
All it takes is talent.