Hacker News new | ask | show | jobs
by gaius 5737 days ago
The code is easy to read. The code is easy to extend. The code is easy to test. The code is easy to deploy

I don't doubt that it is, for its author - but that's what all Perl programmers believe.

Why did Perl fail?

For no purely technical reason. It failed because too many people got burned on inheriting horrifying tangles of spaghetti legacy code and vowed, never again. There's just not a critical mass (left) in the Perl community who believe that the target audience of their code is the next programmer who works on it.

2 comments

I agree with you up until "There's just not a critical mass (left) in the Perl community who believe that the target audience of their code is the next programmer who works on it."

I think those people left and moved to PHP. All that's left in the Perl community are a bunch of people who think tests and readable modular code are good. (Not everyone implements this really well, but at least it's in mind.)

And by community, I mean "people that write CPAN modules and hang out on IRC", not "people that submitted their resume to the open 'PERL' position". Those people are more than happy to write spaghetti, but it's because the market allows it. Start firing people for writing crap code, and start paying the people that write great code a lot of money, and you'll see a lot of great code -- Perl or otherwise. As it stands now, code quality and pay are not linked, so there is a lot of bad code being written for a lot of money.

(Ask me about 10,000 lines of C++ to encrypt a password and send it over a socket...)

By and large the legacy problem isn't because Perl is a bad language per se - but because it's and old language (in popular usage).

Old code in _any_ language tends to be bad. Popular languages especially since popular languages attract more bad developers (there is a reason there isn't a "Clojure for Dummies" book :-)

I've seen horrible Ruby & Python. I've seen horrible PHP. I've seen horrible Lisp and Smalltalk. I've seen horrible C and C++. Pretty much any language that's been around more than a couple of years and has become popular has really ghastly legacy code.

(And yes - lots of horrible Perl)

<p><em> There's just not a critical mass (left) in the Perl community who believe that the target audience of their code is the next programmer who works on it</em></p>

Ironically I think that's the exact opposite of the current problem. The vast majority of the Perl developers I encounter now care very deeply about exactly those topics.

That's because the people who don't care are off playing with the new and shiny toys :-) I absolutely guarantee that in five years we'll have folk complaining about this horrible legacy Rails code - and this is why everybody is now using Clojure (or whatever).

I can pick out problems in the Perl community - but lack of a focus on quality is not one of them.

People see horrible code and think that it's because of a horrible language.

Horrible code is because of horrible (or novice) developers. Or good developers working under horrible management.

Bad legacy code isn't primarily a problem of language. It's a problem of time.