In CIO, James Turner writes "You Used Perl to Write WHAT?!", which has the tag line "Every programming language has its strengths...and its weaknesses. We[sic] identify five tasks for which perl is ideally suited, and four that...well, really, shouldn't you choose something else?". He misses the point though, especially for the audience who reads CIO.
He lists five uses for Perl:
Those aren't uses though. They are just features, and they aren't especially interesting features. Most languages can handle that stuff. Pattern matching? Sure, that was sexy back in 1991, but everyone does that now. No CIO sits down with his staff and says "Hey, let's do something with pattern matching! Any ideas?", just like a home contractor doesn't think "I'm going to do something with hammers, but what should it be?"
James says in the first paragraph "And while perl[sic] is certainly a versatile tool, it isn't the right tool for every job." Um, not kidding sherlock. No language is the right tool for every job. However, evaluating languages starts with knowing what the task is, and the important things aren't the basic language features. James, however, doesn't bother with the real problems; he just wants to deal with fads and hype. He prefers the convenient misinformation to the educated decision.
CIOs are interested in how much it is going to cost, which resources it demands, how long it takes, how it fits into existing internal technology, and if it can be done in a way that meets the organizations' needs. Programming languages solve none of these problems. Whenever I leave Programming Perl in a room by itself with a computer (I even spring for the fancy Macs), I always notice that Perl never writes a line of code. I tried it once with The Ruby Way, and it didn't write any code either. Maybe the janitors erased everything those languages wrote on the white board, but neither language admitted to doing any work when I asked them what they accomplished. In fact, they ignored me.
People solve problems, not computer languages. Languages are just means of expressing ideas, and most ideas can be expressed equally well in many languages. I happen to really like expressing myself in Perl and working with other Perl people, but that has nothing to do with technology or the right tool. I could solve the same problems in Ruby or Python. They are just languages. This isn't some video game where you have to collect the exactly right magic amulets to kill the boss creature.
Here's when you use a particular language:
Here's when you don't use a particular language:
Can you use Perl to get the job done? I think that is almost always "Yes". I've seen a lot of efficient, scalable, high traffic systems written in Perl with millions of dollars running through them. Should you use Perl? I don't know. You're the only one who can answer that and don't let anyone else tell you otherwise, even if they do write a magazine article.
Write good code. (Score:1)
Other than the first one, his arguments boil down to:
2) Don't call external shell function when internal libraries are faster.
3) Don't mix code with HTML.
4) Don't write obfuscated code.
Well, Duh! Sounds like good advice in any language.
Re: (Score:1)
Well, he hasn't even _touched_ real requirements for big projects. And why would he? If it comes to libraries, stability, deployment, toolchains, etc. there's not much difference between the languages, and CPAN is and always was a big win for Perl.
He absolutely disqualified himself with this part:
(Highlights are mine)
Ordinary morality is for ordinary people. -- Aleister Crowley
Millions? (Score:1)
And we're only in a small country, so I can only assume there's places doing billions of dollars a year, not millions.
Re: (Score:2)
File::Copy? (Score:1)
Apparently, he hasn't heard Abigail's talk on File::Copy.
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
In the case of copying files on Unix, the external shell function is faster. And more flexible. I usually only use File::Copy when I need to copy to/from filehandles.
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)