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.)
It seems every day I am questioned about why I write in Perl versus PHP, Java, C#, Ruby, Python, or [insert your favorite language here]. People say things like, “Perl isn’t used anymore is it?” or, “Ruby on Rails is all I read about anymore.” As I write this, there are millions of Perl programmers around the world. Perl 5 is being actively maintained, and Perl 6 is in development. More than 3000 Perl Modules were released in 2006, and more than double are on track to be released this year. The reality is that Perl is far from dead.
Let’s say for a second that Perl actually was dying. Even if that were true, it would be a slow death over years to come. 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.
In the past five years Perl’s usage has grown by almost 700%. This leads people to question why it looks like Perl’s market share is sliding. The answer is that they typically use web site development as a measure of marketshare, and the percentage of the web that’s programmed in Perl is shrinking. Is that due to people not using Perl? No. Absolutely not. Instead, it’s just that there are more web sites and more programming language options. Ten years ago almost all web applications were either written in Perl or C, but since then dozens of new languages have caught on. In addition, there are an estimated 20 million new sites put up each year. Even though the number of sites created in Perl doubles every year, tracking it by percentages will make the numbers seem to shrink.
Still don’t believe me? Well, how about we examine a small swath of really big web sites that I’m sure you have heard of and used that are either built entirely on Perl, or have significant portions written in Perl: Yahoo!, Amazon, TicketMaster, The United States Department of State, The BBC, Slashdot, and Shopzilla. Have you heard of any of those? I thought so.
To address the “Why Perl?” part of the equation, let me first point out that Perl was designed to be an ultra flexible text processing language. What is the Internet if it’s not text? Nearly every protocol and document standard you interact with on the web is just text. HTML, HTTP, SMTP, XML, CSS, Javascript…that’s right, all text! It is only logical to choose a programming language that was designed specifically for text processing when you’re working on the Internet. Java and C# are designed to be generic do everything languages. PHP, ASP, Cold Fusion, and JSP are all designed for the web only. Ruby and Python are also both good choices, but they don’t have nearly such a large library of code as Perl.
In addition to being a great text processing language, Perl provides a wealth of flexible coding possibilities. It has plugins to support and manipulate a variety of binary file formats, inculuding various forms of encryption, compression, and images. The Comprehensive Perl Archive Network (CPAN) provides coders thousands of easily downloaded modules that do everything from writing network services to parsing Microsoft Excel documents. Perl has also been compiled to work on dozens of hardware platforms and operating systems which allows code to be written once and used on virtually any system. In addition to this compatibility, Perl has been heavily integrated into the Apache web server in the form of mod_perl, which means that Perl can do anything that Apache can do.
If Perl is dead, then it is by far the most vital, active and useful deceased programming language I have ever come across. Perl is, in fact, alive and thriving, and it is uniquely suited to a variety of programming projects with its flexibility, power, and extensive code base. I write in Perl because it provides everything needed to support enterprise software applications. I write in Perl because it is actively being maintained and developed. I write in Perl because nothing else gets the job done better: long live Perl.


Absolutely!
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.
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'?
So perl is dead like COBOL, not dead like Elvis?
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
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.
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.
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.
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
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. :)
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 :)
HTML is not text. If you think that, your website is likely to be vulnerable to XSS attacks.
I'm desperately waiting for "State of the Onion 2007"! Will it be published here? Soon?
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.
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.
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.
>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.
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.
Perl is just as dead as Cobol...
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.
"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.
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.
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...
Just try and hire Perl programmers though.
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.`
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.
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.
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.
@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.
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?
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.
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
heh, more perl magic
http://imgs.xkcd.com/comics/lisp.jpg
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)/);
NFL.com, cbs.sportsline.com, pgatour.com and ncaasports.com are all developed almost entirely in Perl.
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.
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?
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?
Indeed, as part of perl community, all is well said! Love live Perl!
cannot is one word
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.
Perl isn't dead, it's just deprecated.
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.)
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
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...
What's wrong with Perl
Paddy: Pretty rich for a self professed python advocate to complain about another language's documentation.
Yay, a perl self-congratulatory lovefest.
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.
The king of regex will never die. There will always be strings to parse.
Perl 5 is thriving. Perl 6 - which will be much better, IMO - is not MIA, it's just taking a while. Designing an entire programming language from the ground up isn't easy. I think some people get the idea that Perl 6 is an update to Perl (because of the version number) and thus don't quite grok that it's a complete rewrite, which has had every concept re-examined from the very beginning.
Current status-wise, it seems to be coming along very nicely, and when it's finally released it's going to rock the world. In the mean time, Perl 5 will continue to be a wonderful tool. Unfortunately, the clueless will continue to write unreadable code (in every programming language on the planet - Perl never had a monopoly there).
You quote your numbers, but really they are laughable. Comparing to COBOL? If you have to do that you know you are in trouble.
You quote 1000 Perl jobs on Monster. How many Java or C# jobs were on Monster at the same time? I bet it would have been several times bigger.
Well used languages never truly die die. They wimper and fade. So by your measure CICS and JCL on mainframes is still alive and well. Is that a true reflection of what most people would take to be a "live" language? I think not. What is important is market share and whether there are any people stepping up to the plate to learn Perl when those that know it move on. I don't see that happening unless they have to do it "on the job" and even then it would not be by choice. Like COBOL, people would learn it to maintain existing legacy systems not to write new complex ones (again you quoted a few sites out of the millions on the web, but those millions on the web most probably do NOT run Perl. Most probably PHP, Java or C#, again market share).
Until PERL 6 comes out. Perl 5 and earlier version have condemed themselves to obscurity through lack of readability (yes, don't deny it. Compare a typical Perl script with Java, Python or C#). Sure your Perl will get it done in 10 lines instead of a full class. But guess which one is more maintainable for the average progammer?
IMO, Perl 6 will make Perl dead. Perl 6 tries to compete with Java and .Net, it tends to be like these languages. But it will definitely loose. Very few will port to Perl 6, instead of Java or .Net. I won't.
People who complain about Perl readability are simply people who don't comment their code. It's that simple.
I realize that Perl has a reputation for being a "write only" language and that any good Perl program should look like it has been encrypted, but basically this is because most geeks have no clue about program maintenance. Just as most geeks didn't know about the life cycle cost of programs thirty years ago when books were written on the subject.
Geeks don't change.
Has nothing to do with the language they code in. You can write COBOL that nobody can figure out.
The reason we have a bunch of new languages besides Perl is precisely because geeks have a serious case of "Not Invented Here" syndrome. They don't like a language's syntax, so they decide to write their own language - despite the fact that they've never read any of the scholarly articles about language design (neither did Wall, I presume). Fortunately only a few geeks can design a language that is even usable at all, otherwise we would have several thousand languages at the moment just like we have several hundred Linux distros - most of which are instantly forgettable.
Eventually somebody will design a decent AI software engineering tool that generates machine code for any CPU from truly comprehensive and understandable design documents - and most of the existing languages will be dumped - a long overdo denouement.
For now, programming continues to be a bizarre mix of clerical behavior and bad engineering. And the result is as Woody Allen said: "Nothing works and nobody cares."
Almost in all "that x language is dead" threads, those who say "x is dead" say it so like that they are very happy that it is dead. "x" might be dead or not, but why should it make someone happy!? Jeez!
Anyone that says that is a moron. RoR is slow as hell and doesn't scale.
Python is neat and is a welcome entry to the range of available tools.
Perl still kicks all their asses due to its modularity and (confusing to newcomers) methods/defaults.
You can all go home now.
Nice article, chromatic.
I've always thought (like many others) that one should not necessarily restrict oneself to just one language - use whatever you see fit, after assessing your needs, both technical and business ones. Though I don't use Perl, I own and have read some of the books - the Camel, the Llama, etc. - and think its a good and powerful language; also, of course, CPAN is a fantastic resource. The amount of time one can save by using good libraries ... no one has the time or the ability to invent their own wheels for every area they need to work on or with.
In a nutshell, TMTOWTDI (the Perl slogan - There's More Than One Way To Do It) is applicable across languages as well, not only within Perl itself ...
Vasudev Ram
Biz site: http://www.dancingbison.com
PDF creation/construction toolkit: http://sourceforge.net/projects/xtopdf
Blog: http://jugad.livejournal.com
Perl isn't going anywhere soon. The Perl6 project has been long coming because it's IMO one of the most ambitious projects to date. You can play with PUGS now, and from what I understand a real release is expected at the end of the year or early next year.
Perl has an entrenched market and will be around forever. In so many organizations, perl is the glue that keeps things working - whether it's a data export/import utility, a sys admin task, an automation routine, or what have you - there are millions of little scripts that won't be written in another language because there is no reason to.
It works. Perl doesn't have to go away in order for anybody else to be successful.
As a previous poster asked, ever try to hire a Perl programmer? It took us six months to find just one. I know of two large financial firms locally that switched from mod_perl to Java (ever try to hire a Perl programmer?), and one medical testing company is moving from Perl to .NET (ever try to hire a Perl programmer?)
I love Perl; I've used it for over eight years, but I've reached my limit. How long do I have to wait for Perl 6? Too late, I've moved on.
RoR sucks? Not if you do it right. Ever use Catalyst? Ugh...talk about a framework that sucks.
And I hate to say it - I have a family to feed. There are rarely any Perl jobs locally, so it's forced me to stay where I am (not that I'm complaining, though). However, I've started using Java (Linux) and C#/.NET (Windows) more on the side and now jobs are plentiful.
And as far as my current Perl job - I've already advocated moving out of mod_perl to RoR (I've grown to love RoR very quickly, though I also use JSF). Doesn't mean I'll never use Perl...but now it will simply be another tool in my toolbox. Using Catalyst was a headache and a mistake. I look forward to our conversions to RoR.
The wait would have been shorter if you had contributed even one tiny patch. That's okay. You can still use our software when it comes out. We're nice people that way.
MacGyver would use Perl.
I'm with "Bob". My fav. language was also PL/I once, but now I use Perl almost exclusively, except for some Javascript, HTML, and SQL.
Perl is not dead and I certainly agree it is a great language for writing text base utils. However, Perl certainly does not have the percentage of use it once enjoyed.
Face it the main languages used today are Java, C/C++,C#, and Python. Ruby is climbing as well. Perl is not shown in the same light in terms of either users or growth as any of the aforementioned.
Personally, I am primarily a Java developer now (I have used Cobol, dBase, Pascal, Visual Basic, C, C++, Perl, and Java).
In the beginning, I used BASIC almost exclusively (with a little Assembler thrown in for good measure). This was in the days before there was a PC. Then I started using C (which originally I found too difficult to really master), then I looked at Pascal and later Visual Basic and Delphi (I was primarily a DOS then Windows developer). Next, since I began work in a Mainframe company, I started using and working wih Cobol. I stilled used Pascal and Delphi for most of my non Mainframe applications.
I started using C more as I started to migrate to server side programming with Windows and Unix. Although I was somewhat proficient with C/C++, I really never thought C/C++ was a step forward. To me, these languages are rather archane. Yes, I do see the power these languages afford, and if my task was writing OS level routines, I am sure that C/C++ would be my main tools.
I first discovered Perl when I began Internet or Web based development 9 years ago. It was OK at Web programing, better than either C/C++, or Pascal/Delphi. Of course, at this time, Web based Perl programming reigned for Web based server side development and I certainly joined the ranks.
When I started seeing the power of Perl for text based utils, I rally started seeing the power of Perl. It is still hard to beat for these types of development.
I started using Java, first for AWT and Swing based development. Then I started using it for the Web. I found Java the best for Enterprise type development and Web based development. I wrote programs that needed to run on Windows and Unix/Linux at that time (about 7 years ago) and Java was definitely the best for this.
I continued to use Java primarily for Web based development and overall Server Side Enterprise type development because, while not perfect, it worked and worked well. I have continued to use Java, and have only brief experience with PHP (which I never saw as advantageous over Java development).
Ruby does look interesting and Rails is great for quick and dirty development. That does not mean I do not think Ruby cannot host large sites, but its strength is RAILS, IMHO.
However, overall, Java is the best for the type development I am required to do.
The only reason I bring all of this out, is to show that (1) Most developers know and use more than one language, (2) That I have some experience related to my opinions, and (3) I do not intentionally write with any bias.
To summarize, I do not see Perl as making a comeback in the Web space, I do not see it making huge inroads in application development, I do not see Perl overtaking Java, C/C++, C#, or Python/Ruby, but I do see it continuing to be used for small utils and scripting type programs.
It will not die, but it will not occupy the place it once had. That is just the way IT/IS evolves.
I used to be more familiar with Pascal and Delphi than anything else, Basic was
Clearly written, accurate, and important. Great post!
You are all crazy! Objective-C is not dead! It is thriving, lots of people use it . . .
Oh wait, I must be in the wrong building.
"Face it the main languages used today are Java, C/C++,C#, and Python. Ruby is climbing as well. Perl is not shown in the same light in terms of either users or growth as any of the aforementioned."
Sorry - Python and Perl simply aren't in the same league as Java, C and C++, neither is C# (yet).
Ruby is growing fast, but from a tiny userbase, so it's got a long long way to go before it becomes significant in terms of users, jobs and deployment numbers - a lot of newbies and curious dabblers buying books does not make it a mainstream language.
Python growth has slowed to a large degree as it's got the incumbent Perl jobs, tools and sites blocking it's growth and Rails biting it's ankles, and it's still nowhere near as widely used or deployed as Perl. Good luck finding a Python job outside of a handful of well known places like Google.
Let's face it: Perl is dead in terms of buzz generation. Most new "cool" technologies are advertised in connection with other languages.
Let's see if a nice amount of hype around the Perl6 release can change that. Possibly in connection with something like "common CPAN", so people can start easily with what the crowd does.
Article about nothing.
XXX better then YYY and so on...
Professionals use language they get money for.
For me - PHP, C and Java.
For others something else.
How easy could be to write InternetBank in Perl?
A colleague of mine just wrote something similar about Ajax is dead, long live Ajax...
http://ajaxwidgets.com/Blogs/jan/ajax_is_dead__long_live_ajax__.bb
.t
PERL doesn't scale well for larger web apps. modperl is a hack, you end up having to use a single digit apache child lifespan to prevent memory bloat, because the size of the apache child will remain the size of the largest amount of memory that perl tried to allocate. So if you need to create a decent sized data structure, temporarily, your now-fatass apache process will never return that memory back to the OS. This is why perl sucks for web apps.
Good old perl is my first web language back in 1996. I still miss it though I've sort of switch to php and lua.
I've been a professional developer (desktop apps and web) for about seven years now. I've used VB, C++, Javascript, PHP, ASP, C#, ASP.NET, and, of course, Perl. I learned Perl - or started to learn it, anyway - in my spare time because I'd heard a ton about it and had heard, through various channels, the raving reviews of those who'd used it. I gave it a solid six months, expecting the whole time to reach that magical point that I'd had with the other languages I'd studied where I sat back and thought "THIS is cool." Well, that moment never arrived with Perl. Every language can be hard to read if written in a certain way and (of course) if it's poorly documented, but it always seemed to me that even the examples I'd seen online and in the books - the examples that were supposed to be clear - were arcane to say the least. I shudder at the thought of being asked to maintain and add to a program written by someone else in this language. I know one programmer's beautiful language is another's revolting hack, but Perl really does seem - to me, anyway - like a language designed for maximum obfuscation. And why do I think this matters? Because writing a program the first time around is only a slice of the story. As big or bigger a chunk of the saga are all the times you go back to it change or find something - or change or find something in someone else's code. And if the syntax is hard to read, or if the programmer decided to get cute and squeeze as much as possible on to one line or write it in as abbreviated a way as possible (the way one of my Perl books encouraged its devotees to write), then that affects the bottom line too. And who knows; maybe it erases all the hours saved on the front end because Perl made something "easier".
Excuse me, but what the best finance articles source you know?
What you'll recommend me?
@Eli Lily
Hey don't tell Amazon that Perl sucks at web applications. Oh wait, this page has lots of big sites using Perl and that is just from the Mason side of the house. Maybe someone that says "PERL" really has no clue what "Perl" can do? That would be my guess.
I agree with chromatic, although I'm all pro-perl, perl has some problems, mostly with perception. Java, .NET have a lot of marketing money, and large corporations banking on them to drive it's popularity. If you sell using Java in a large corporation, you also sell huge clusters of servers and the web application servers that run Java.
I've been working as perl developer in lots of jobs, W2, contract, etc. for 8 years straight. I still have to do some Java programming, some PHP, ASP, and PHP. But I usually look for my solutions in perl. I don't always choose it, depends on the task at hand. For instance, if integrating with other PHP apps, I choose PHP, then the support of that app, can support it, etc. If integrating with SOAP apps, especially some newer practices in .NET and Java, like Axis2, using Doc/Literal, I choose Java/PHP as perl does not easily support Doc/Literal(yet).
If only perl had a 1/2 million a year in advertising budget, or another product that depends on perl as it's primary integration to push out large 1 page adds in several industry and business magazines targeted at management, IT management, etc. then perl would be pushed more on the IT staff. That could be said of any open source language though.
Everyone wants to dominate and be the only programming language out there, but really, we need choices and we need people who are aware of many so they can choose the right technology for the right project and the project's priorities(time, quality, budget).
I try to work with all the other developers and learn from them. I worked with teams of other developers in one place, Java, C, PHP, ASP, C#, and perl. The perl developers got the most done, the fasted and were very much like the outspoken jocks of the group, easily integrating many systems together, scaling well, but most importantly getting it done fast, within budget and accurately. If the company had a big project that needed to scale in a huge way, and the project was budgeted with big $$$, and lots of time, then Java was chosen. If it was non-critical web-app, ASP/PHP was chosen. If it was a local client-server app, C#. Times have changed. I've seen PHP chosen for big, scalable, critical apps, Java chosen for anything(development times have gotten much quicker for Java devs.) Oh well, just be glad you get to have a job writing code. I like perl best cause I can write it my way.
I learned PERL first, and then I learned Python. I use Python now. Python's concise syntax allows me to focus on implementing. If it were the other way around I would use PERL, but it's not. Long live Python!! :-)
Perl is my favourite programming language. I even wrote and published a book on Perl in Russian. But I'm tired of waiting for Perl 6 with its great features. Now I'm writing in Ruby and enjoying it. It's really a great language - elegant, powerful and effective.
Personally, I find this article hard to disagree with. Whether you like or dislike Perl, the fact is that it's incredibly widespread, actively developed, and actively used in development.
Certainly, for web programming, most current work is done in a language such as ASP or PHP, but for most other tasks Perl remains a very viable contender.
That said, Perl does suffer from some issues, including overall maintainability for large codebases, even when in the hands of seasoned pros. Yet, most of us still use it, even if just to prototype ideas prior to using a more involved language such as C++. (I choose not to define "involved" here because, frankly, that would be involved.)
--
Dustin Puryear
Author, "Best Practices for Managing Linux and UNIX Servers"
http://www.puryear-it.com
Wow, it’s uncanny how many people start their sentences with “let’s face it.”
I think Perl’s problem is largely that the core community is tight-knit and insular, whereas the vast majority of the developers using Perl are people quietly doing their job and who are never brought into the community fold. An outsider has no chance of observing the bulk of Perl activity.
The Perl universe consists primarily of dark programmer matter.
Perl is not dead. It's powerfull language for lot of ways. Sure it not for simple sites and dumped, but much power in big projects(more than 100k code strings). I use Perl many time in my development projects, all tasks writing in perl.
I've used Perl in small, one-off apps and liked it. It was easy, I didn't have to grapple with the code or consult some kind of Wiki, and the code I've written is still more readable than most of the C++/Python code I've done. Nowadays I mostly use Python, but that will change when Perl6 comes out.
Anybody who thinks Python is good because it has "cleaner syntax" is obviously a really bad programmer. C doesn't have a nice syntax either, but that doesn't stop GNU from using it, does it? Think of GNOME, XFCE, the GNU toolchain ...
You cannot expect to decipher the code you wrote an year earlier if you write it like this : sjdfkoyudhs !m;jhas (0) asdhkas diasd
And that's what most programmers do.
PS : I'm not against Python or Ruby. I use both Perl and Python and like them both. It's just that I find it offending that people are claiming that Perl is dead.
The lady doth protest too much, methinks.
Richard Steven Hack,
Your comment is better than the article. Thanks for such an entertaining and insightful post.
PS.: I'm not being ironic.
@Richard Steven Hack, "truly comprehensive .. design documents" is a great description of source code. Whether that code is understandable... well, that's where we get into trouble.
Oh no, it's the "Internet is text" meme. If all you have is a hammer, then everything looks like a nail. The Internet is not text, it's data. While it's true that the protocols and languages of the Internet are almost all text, it's rarely necessary to actually have to deal with the protocols themselves - that's why we have libraries, toolkits and frameworks. I've probably gone a full year of doing assorted Internet related programming tasks without writing a single regular expression. I use frameworks that marshal HTTP Requests into data for me, then construct HTTP Respones for me. I use libraries that construct SMTP messages for me. I use drop-in components to talk to LDAP. I use templating languages and widgets to keep the HTML from cluttering up the code base. I use XML-RPC, SOAP and REST to transparently turn data into text and then back into data again. Are you really going to reach for the text processing tools when you have to work with XML?!? Who cares if it's text in the middle?
re: chromatic | August 3, 2007 04:14 PM
OK, we understand what you have said: Perl has issues as it is maintained by volunteers. Does that matter to anyone? Perl (and Perl 6) either satisfies people or not, who cares the why part.
Don't whining, man!
The original post is long, lack of logic, self-serving and laughable.
What are you trying to do? Define the meaning of "dead". Sure, Perl is not dead according to your definition, and even have one more breath than COBOL. Hey, Dad and Mom, Perl is having a really good time, and enjoying himself.
Wow! The best you can do is to beat COBOL to death. You have all my sympathy, seriously! All that you have proved is Perl is really dead. Good job!
re: chromatic | August 4, 2007 05:08 PM
Doesn't matter whether he contributed any patch, he has every right to comment on Perl, and that alone has nothing to do with the quality of his post.
According to your logic, no one has the right to condemn a killer , unless he or she had the experience of murdering someone.
Perl guys are always on the defending side. That alone has said everything.
The most heartless thing that anybody can do in today's IT world, is to trick new comers into Perl. Please, have mercy!
I picked modperl to write dslreports.com because it offered the best performance. From what I read recently about RoR (articles on re-factoring easy to read code to more cryptic code, entirely for performance reasons!) it seems like despite the advantage of hindsight, a clean slate, and 8 years, modperl is still faster than the alternatives.
In the end, though, I discovered the real advantage to perl is CPAN. Most of the perl code I write - and very simple it is - just deals with using various CPAN modules.
(off topic, but actually I think the langauge to beat now is not Ruby or PHP or Java servlets .. it is javascript).
But as long as CPAN remains vital, I'm sticking with perl. Writing web apps are not difficult at all, what is time consuming and tricky is writing code (in any language) to do what a CPAN module probably already does.
@Guo Pei,
People who have contributed nothing to a project have exactly no right to complain about the schedule of the project. They are, of course, welcome to complain as much as they like. They have free speech. Their opinions, however, do not matter.
This is how community-produced software works.
I'm still upset over Glenn Vanderburg's comments about perl regexp. What he said is completely nonsensical. Either he's confused or throwing a red herring. You can't pass around '+' or '*' either. The video looked like it was edited a bit but I don't think anything was lost from what he was saying.
qr// has been around since '98. Makes things more efficient but doesn't change syntax much. There's a regexp class on cpan but it hasn't been updated in a long time. The perl regexp operations are convenient as they are.
His comments about derefing vars when doing regexp didn't make sense either. If you have an array of strings to be used in a regexp operation, as you loop over them, what are you derefing? Does he know what he's talking about?
re: chromatic | August 12, 2007 10:02 PM
Obvioously I am not going to agree. On the other hand, I don't think he wants to contribute, just like most of the modern IT guys. There are lots of better ways to spend our time, and to patch Perl is not one.
Perl guys often seem to live in a world that is so unreal. It is not rare tohear them arguing that Perl is OO,and indeed even more OO than other languages ;-) very dreamy...
@Guo Pei,
If you have time to post snarky comments on the Internet (especially read and respond to other comments), you certainly have the time to contribute positively to a free software project. I can think of several patches for Parrot that an intelligent, motivated person could create from scratch in under an hour--and that's just one project out of thousands.
If you don't like or don't use one project or another, that's fine. That's your choice. It doesn't hurt anyone.
But if you think that your opinion as a non-contributor should have any weight to countless volunteers who've spent countless hours creating and giving away amazing amounts of software that you can use or not use in any way that you like and which you can modify and redistribute with very few restrictions, well... you're wrong.
It's so easy to join a community--so easy to contribute something--that if it's not worth someone's time to do something, it's definitely not worth the time of the people who are actually doing things to care.
It's so easy to join a community--so easy to contribute something--that if it's not worth someone's time to do something, it's definitely not worth the time of the people who are actually doing things to care.
If we follow that line of reasoning, dialog would almost be imposisble between humans: everybody would have to know each others professions, philosophies, etc. If Perl sucks (I'm not saying it does) that's not because 10,000 programmers don't want to join the club. It may be flawed from the start, it may not scale well, whatever. To say "you're entitled to your opinion, but I couldn't care less" effectively means that it's useless to have that opinion after all. In the end what's left? No dialog and there goes your beloved community concept...
Perl will be around in the next 10, 20, 30 years maybe. No need to say "I couldn't care less what you think or say".
@Wu Ming,
My comments were in the context of people who say "Perl 6 is taking too long." I don't mean to imply that any other comments are worthless, and I apologize for doing so.
I do still believe that non-contributors who complain about the schedule of volunteer projects have no right to expect to be heard, though.
re: chromatic | August 13, 2007 09:17 PM
I don't think that the issue is whether you care the complaints, but about the fact you can do nothing to make the situation better.
For this enterprise, Perl is dead. And others, also :-(
http://buscartrabajo.monster.es/getjob.asp?JobID=61275049
The Opportunity
My client currently operate a number of systems, their legacy system being perl based and flagship product Java based. This role will involve perl initially with a move to Java over the coming months, providing you with a unique development opportunity, my client willing to train/develop your Java skills!
Perl is not flagship...
My favorite comment on here is this one:
"Perl 5 is thriving. Perl 6 - which will be much better, IMO - is not MIA, it's just taking a while."
Ha! LOL! "Just taking a while" -- I love it. Ten years from now it will be "just taking a little longer than expected." Perl is alive and well just like Latin is. Will it ever be removed from society? No. Will it forever decrease in market share? Yes.
I think those who say perl is fading/dying have only thought within the confines of 'Web Development'.. Most sys admins make extensive use of PERL.. The extensibility, and the luxury of having CPAN make perl one of the most useful language. About the learning curve, just because it can be quite intimidating for newbies doesn't mean it's hard to learn at all.
just my 2 cents.
i am a perl developer and before reading this aticle was thinking of changing my technology...but this article has given a boost me... so will continue in perl ....long live perl..
Perl is not dead. Here I will give you an example of rapid web application development process on Linux platform.
".You need to have
1) Expertice in using vi editor.
2) You need to know how to use composer for web development. I comes with browser.
3) Mysql database
4) cgi and perl programming.
=============================
Step 1. Design the web form using composer.
step 2. using vi editor open the source file just created in composer.
issue commands while in vi to replace or add text.
e.g.
1,$s/\"/'/g
It will replace all occurances of double quotes(") to single quotes(').
1,$s/^/\"/g
It will add double quote("") to every line as a first character.
1,$s/$/\"./g
It will append (".) to every line.
add print before tag.
Step 3.
add the following lies manually at the top.
#!/usr/bin/perl
use CGI;
print "Content-Type: text/html";
That's it.
put the file in /cgi-bin and run the file url in browser.
You don't have to spend anything or read any thing.
====================================================
Here is an example of database driven web form. make suitable changes in mysql table and connection string and you are ready to go.
====================================================
#!/usr/bin/perl
use CGI;
use DBI;## user database name
$cgi=new CGI;
$studentID=getFormString("studentID_m");
$fname=getFormString("fname_m");
$lname=getFormString("lname_m");
$email=getFormString("email_m");
$phone=getFormString("phone_m");
$addrline1=getFormString("addrline1_m");
$addrline2=getFormString("addrline2_m");
$city=getFormString("city_m");
$state=getFormString("state_m");
$zip=getFormString("zip_m");
$submit=getFormString("submit");
$Reset=getFormString("Reset");
# process();
if ($submit eq "submit")
{
process();
}
elsif($Reset eq "Reset")
{
processReset();
}
else
{
send_map();
return;
}
send_map();
sub send_map()
{
print "Content-Type: text/html\n\n";
print "".
"
"
"".
"
"