Perl is Dead. Long live Perl.

by chromatic

JT Smith, president of Plain Black, the creator of WebGUI, and one of the unsung successes of using Perl in business, recently sent me this essay. He gave me permission to publish it in its entirety here.

(In the interest of full disclosure, the plush WebGUI octopus I have from YAPC::NA last year is one of the coolest pieces of swag outside of Hollywood, ever.)


103 Comments

Posher
2007-08-02 14:31:07
Absolutely!
Christopher
2007-08-02 14:36:39
Very well said! I get a lot of questions about my Perl use as well. For me, it's just a very flexible language. I seem to be able to use it in so many different parts of my daily work.
Dick Davies
2007-08-02 14:43:59
Would be interesting to know how many other programming languages (if any) the guy knows or has tried. Perl6 has been MIA for a long time and there are a lot of other tools that get the job done pretty well from where I'm sat.


And did he just say 'cheer up, one day we'll be the new COBOL'?

sal
2007-08-02 15:55:12
So perl is dead like COBOL, not dead like Elvis?
iblis
2007-08-02 17:14:30
If people would not attempt to reinvent the wheel so much, and use a decent toolkit (like CGI::Application and Template::Toolkit) I'd be more likely to enjoy coding on web-based applications in Perl.


As it is, I do everything in Python now - except for the one-liners. :D

lofi
2007-08-03 00:48:26
No, seriously, people have recognized that while Perl is in someways neat, its unsuitable for writing code compared with other languages. Thats why Perl is dying/dead.


We should be talking about what we can do to speed migration away from it rather than make arguments as to why this is not really happening.

Peter Ellis
2007-08-03 00:56:45
Perl lacks hype and 20 minute framework videos. Doesn't mean people don't (or shouldn't) use it.


Even though I personally use python for most new projects the company where I work has a lot of old perl code about which is still going strong.

Eric Wilhelm
2007-08-03 01:04:42
I find python to be too verbose, limiting, and over-prescriptive.


I find ruby to be slow, poorly documented, and grammatically inconsistent.


Perl doesn't hold your hand, but it also doesn't hold you back.

Bob
2007-08-03 01:26:17
I have been programming for more years than I can mention and every few years a new language comes along that absolutely eveyone has to get into because the old languages are dead.


The fact is that since PL/1 which was the first 3GL to combine the requirements of commercial and scientific users, the world has only needed at most one more language. Sadly not one that has been created: PL/2 the object-oriented version of PL/1.


I use Perl from day to day because it is there. It is no better or worse overall than all the others. I can deliver solutions with it, and frankly that is all I care about.


Bob


Ulrika
2007-08-03 01:38:38
I love Perl. I love it. Love love love. The modules, the syntax, the flexibility, the regular expressions, the perldocs. Everything. I've been coding with it since 1997 and am looking forward to the next decade. :)
she
2007-08-03 02:21:17
Perl is overly VERBOSE and extremely cryptic for a newcomer.


If you compare a typical perl syntax to python or ruby both python and ruby win - for a newcomer.


If you dont believe me, try on your own :)

kL
2007-08-03 02:49:03
HTML is not text. If you think that, your website is likely to be vulnerable to XSS attacks.
Off topic
2007-08-03 02:51:31
I'm desperately waiting for "State of the Onion 2007"! Will it be published here? Soon?
Aaron Trevena
2007-08-03 03:01:43
Lofi said :
"No, seriously, people have recognized that while Perl is in someways neat, its unsuitable for writing code compared with other languages. Thats why Perl is dying/dead."


Except it isn't - please RTFA :
* userbase is growing
* codebase is growing
* documentation and resources are still increasing (the new offical Perl 5 wiki is now at 500 pages, and growing and improving, with only 1 page from copied accross from the dozens perl wikis)
* It's being used in more and more places and industries.


"We should be talking about what we can do to speed migration away from it rather than make arguments as to why this is not really happening."


Why? Any good reasons to migrate away?


I've started dozens of new projects in the past couple of years, and there has been no compelling reason to use another dynamic language..


Ruby not only lacks the maturity (tests, documentation, proven reliability and security) and speed of Perl, but also the community is almost non-existant in the UK, and ruby gems lacks the quality, maturity, depth and breadth of CPAN. Rails is easily matched or bettered by Perl frameworks. Why bother? Good luck finding an experienced Ruby programmer outside 37signals and a couple of small specialist shops.


Python is about as fast and mature as Perl, but still lacks anything close to CPAN or Perl community in the UK. I personally find it's syntax to be verbose and clumsy, often hard to read and follow (sorry - good clear readable code is all about writing code clearly, not forced indentation and lack of braces and semicolons), the error reporting is poor, and the skilled programmers just aren't available.


So, why would I want to sacrifice a lot of important things in order to get some newbie friendly and a microscopicly "cleaner" syntax?


Sorry - I don't think it's good to make business or technical decisions based on emotional subjective hype.

Tone
2007-08-03 04:49:10
Perl is overly VERBOSE and extremely cryptic for a newcomer.


If you compare a typical perl syntax to python or ruby both python and ruby win - for a newcomer.


If you dont believe me, try on your own :)
she


Why does a language have to be nice to newcomers? I don't remember that being a prerequisite for a programming language. Let's only use languages for a subset of people that will never stay within that subset of users.

Larry W. Virden
2007-08-03 04:50:49
I know what you mean. I hear the same kinds of questions/comments about Tcl. Tcl too continues to grow, is in use in many web sites (ever hear of AOL?) and so forth.


For some reason, people seem to think that if a language isn't being talked about on the front page of magazines, that it is dying.


The funny thing is that when I look at the languages being talked about (Javascript, Ruby, etc.) they are, in general, not breaking any major new ground. Instead, it seems to me it is yet another case of "I want to type it in my way", resulting in yet another syntax for people to learn.


Oh well, as you say, with open source languages like Perl, Tcl, gcc, and so forth, the language won't die easily. And as long as a language has a particular niche which it fills better than anyone else (Perl and CGI, or Tcl/Tk, for example), the language will keep on growing.


2007-08-03 05:12:13
>Perl is overly VERBOSE and extremely cryptic for a newcomer.


Well I prefer to suffer a bit upfront and have my work made easier from then on than to keep typing out lines and lines of C or Java that could easily be represented by a few characters in Perl.

son-dog
2007-08-03 07:38:16
As a newcomer to perl, I just want to say that:


1) Perl is a bit hard/cryptic at first, but once you start learning, you appreciate how simply you can do things. You only have to learn once.


2) I love that learning one language has given me tools for web development, file manipulation, database scripting/interaction and network monitoring (we use nagios with perl scripts to monitor all kinds of processes and services).


I work at a place where I am an "IT guy" and therefore expected to magically know how to do anything related to a computer. I think of perl as my tricorder or duct tape or WD-40. Might not be the perfect answer to every problem, but it will give you a fighting chance at the answer.

okvol
2007-08-03 08:05:09
Perl is just as dead as Cobol...
Tom
2007-08-03 08:47:07
I don't know where to start. Perl is fourth language I learned in six years (C++, VB, Java, Perl, and PHP in that order) of programming. Every day I use it, I regret it wasn't the first language I learned. It has quickly become my most used language for just about everything I do. From the one liner to 500 lines of code, Perl has no equal. It is the ultimate Swiss army knife. I have dabbled in Ruby and Python a little recently. Neither left that initial WHOA! You can do that! The way Perl did. CPAN still amazes me... It is the epitome of community contributed projects. Thank you to all the old time Perl programmers! Long live Perl! I can't wait for 6 to be finished.

2007-08-03 09:35:27
"Python is about as fast and mature as Perl, but still lacks anything close to CPAN or Perl community in the UK. I personally find it's syntax to be verbose and clumsy, often hard to read and follow (sorry - good clear readable code is all about writing code clearly, not forced indentation and lack of braces and semicolons), the error reporting is poor, and the skilled programmers just aren't available."


Ok, it doesn't have CPAN...which is a very valid point, BUT ARE YOU SERIOUS about saying Perl (known widely as the self-obfuscation machine) has CLEARER SYNTAX? You must be insane! Not only does the whole industry disagree, but Python is clean as can be! Give me a break with that foolishness.

Kenny
2007-08-03 10:35:41
I think any person who has been looking for a job recently have noticed this sort of thing, and not just with Perl. Companies that roll their own systems are always going to have a huge pre-existing infrastructure that no-one wants to replace because it would involve breaking things and spending huge amounts of time just because the old system was using an 'uncool' language or there are better languages out there now.


I do think, however, that Perl is one fugly language, and very difficult to maintain, especially compared to similar languages. For Getting the Job Done Quickly, though, especially when processing text, it's definitely one of the best languages out there, and this article does a great job of arguing that point.

anony
2007-08-03 11:31:32
The reason? Businesses have billions of dollars invested in mission critical applications written in Perl that can not be easily replaced. For the sake of comparison, people have been saying that Cobol has been dead for more than 20 years, but there are over 1000 Cobol jobs per month posted on Monster.com, and more than 5000 per month for Perl.


So Perl is the next COBOL? Probably not the image most Perl'ers want...

JJ
2007-08-03 12:03:15
Just try and hire Perl programmers though.
maxconfus
2007-08-03 12:06:19
perl lives, it's installed with most unix/linux. i doubt a minute goes by when a sys admin does not use a perl app. compare this to using java where you need to compile and if it is a web app a jee container. perl will be around for a while.`
Pip
2007-08-03 12:38:16
Beppu-san posted recently about the Perl Survey 2007. If you are JAPH, hopefully you have time to fill it out:


HTTP://Beppu.LBox.Org/articles/2007/07/27/perl-survey-2007


The results should help clarify "dead" with regards to the above article.

gurnblanston
2007-08-03 16:03:38
Perl6 is what's dead. It's been "in development" for six years. Face it -- by the time they release it (around the time when Duke Nukem comes out, I'm sure), Ruby will have already overtaken Perl5.
chrise
2007-08-03 16:10:54
I love perl! I use perl as much as I can. But nothing gets me grabing for a "Learn Python/Ruby/PHP in a week" book quicker than reading an article like above. Something must be afoot, there must be a market trend, user trend, something trend that causes articles like these to be written (and there are a lot) and it makes me fear for perls future. Nothing says dead or dying more than a constant defensive stance. I hope its not true.
chromatic
2007-08-03 16:14:18
@gurnblanston, let's see you write a programming language, or a compiler, or... well anything, even a one-line doc patch. Only after that do you get to complain about the schedule of a project written entirely by volunteers.
Brian
2007-08-03 16:40:40
You say perl is primarily for text processing, which is perfect for the web since every web protocol is text. Then you then go on to bash php for being web specific. Wouldn't this make php primarily a text processing language as well?
Bob
2007-08-03 16:49:39
There's a great video of Glenn Vanderburg, who probably knows more about Perl than most Perl programmers [*], discussing why he's moved to Ruby.


http://www.infoq.com/presentations/beauty-of-ruby-vanderburg


[*] For example, during the talk he explains why you cannot have an array of regular expressions or pass a regular expression as a parameter in Perl. The reason is subtle and has to do with the type of language construct a regular expression is in Perl.

Mike
2007-08-03 16:58:44
Long Live Perl !


I think Perl is one of the uniquest programming languages ever, I think it's for serious programmers who are up for a challange :)


http://www.idolornot.net

casimir
2007-08-03 17:18:44
heh, more perl magic


http://imgs.xkcd.com/comics/lisp.jpg

james
2007-08-03 17:40:48
ok, Bob, so if that can't be done in perl then I must be using python?


sub foo {
my $r = shift;
my $test = "monkey";
if ($test =~ $r) {
print "foo\n"; } else {
print "bar\n"; }
}


foo(qr/^mon.*y/);
foo(qr/^(bar|baz)/);

Peter Pezaris
2007-08-03 17:42:16
NFL.com, cbs.sportsline.com, pgatour.com and ncaasports.com are all developed almost entirely in Perl.
dark nowhere
2007-08-03 17:45:29
Suggesting Perl is dying because of its "market share" on the web is fairly silly (if the web is the measure of all things, it's time to reevaluate the web.)


I've been programming for 20 years, and I think the only thing sillier I've seen a "programmer" do is write systems apps in PHP.


HAND.

hamsandwich
2007-08-03 17:47:30
ok JT, since I know perl has a very comprehensive set of Database Abstractions (DBI, DBIx, etc), why hasn't WebGUI been made to use anything other than MySQL yet?
james
2007-08-03 17:59:24
in fact, Bob, as to your latter point this is a direct quote from perlretut(1):
Storing pre-compiled regexps in an array @compiled allows
us to simply loop through the regexps without any recompi-
lation, thus gaining flexibility without sacrificing
speed.


must be a case of false advertising huh?

brian
2007-08-03 18:01:15
Indeed, as part of perl community, all is well said! Love live Perl!
Marko
2007-08-03 18:01:57
cannot is one word
bob
2007-08-03 18:03:13
dark nowhere: I've seen someone write an IRC bot in PHP then write a statistics generating program for it, also in PHP that regularly consumed all the memory on his server.
Dustin
2007-08-03 18:10:42
Perl isn't dead, it's just deprecated.
lmf
2007-08-03 18:27:12
Wish someone would define what it means for a programming language to die. As long as you can use it and it gets the job done, who cares?


I just realized that the most annoying group on the internet is neither Ubuntu users or Digg fanbois. It is web developers. They think the only programming that takes place is web development. What a joke. "Hey guys, look at this new version of Rails. Wow, how can anyone work with any other language? Those dinosaurs!"


Businesses don't make decisions based on youtube hits. Perl will be in use for at least 50 years, minimum. That's because it still works, and there is legacy code out there. And yes, for some tasks it is still the best choice.


One other language you left out: Tcl. That has been declared dead for years. Yet it is my first choice for a lot of reasons. Those reasons obviously appeal to many others as well given its user base.


Choosing a language based on hype and popularity is stupid. If a language works for you, use it. It's almost impossible for languages like Perl to die, and really odd to even consider the thought that it might be dying, given it's current level of usage.


(And don't cite Pascal. Pascal never really took off in industry, so it didn't have far to fall.)

Lexx Greatrex
2007-08-03 18:33:58
Long long live Perl. It's a fabulous language for text processing. Fast and efficient. It has it's shorcomings, sure, but every language does. My "If only's" are


1: open: You should be able to do my $fh = open 'file'; and my @contents = open 'file';


2: Stronger user prototyping would be nice. sub @fred($) should be distinct from sub $fred(@)


3: Interfaces would also be good. How about something like our @IMPLEMENTS = qw(Interface1 Interface2); for example


Paul
2007-08-03 19:20:24
I agree 100%... Perl is alive and thriving... I was recently asked to write a program to do data cleanup... this tool needed to run on several different platforms (Unix, Linux, VMS, zOS, etc)... my choice: PERL... It's doing the job wonderfully and was developed in record time...
Paddy3118
2007-08-03 20:16:20
What's wrong with Perl
hamsandwich
2007-08-03 20:34:03
Paddy: Pretty rich for a self professed python advocate to complain about another language's documentation.
regeya
2007-08-03 21:19:04
Yay, a perl self-congratulatory lovefest.
Ursus
2007-08-03 21:27:42
I have written some pretty heavy apps in Perl over the years. I look at the code now, and it's really intimidating stuff that makes no sense to me even though I knew what I was writing when I wrote it, which says that Perl is not a very easy to "learn" language--you can learn how to fake it, but actually getting it into your bones means living with it forever. The other thing I dislike about Perl is that the runtime is fat and heavy. Having said all that I've tried to write half-complex stuff in PHP and run into huge walls almost immediately. My next big program will probably be perl, just for the object stuff, but I'll hate doing it.
Matt Foster
2007-08-03 21:49:21
The king of regex will never die. There will always be strings to parse.