Hacker News new | past | comments | ask | show | jobs | submit login
Perl 5 Is Dying (perl.org)
39 points by zvikara on Dec 3, 2008 | hide | past | favorite | 88 comments



I still use Perl to this day because of Catalyst + DBIx::Class + CPAN. I can feel like I can do basically any web development task at least as elegantly, cleanly, and quickly as I could with Ruby or Python. Because of CPAN I think Perl probably wins more often than not on the speed aspect. I also tend to have a lot of backend stuff that runs as daemons/cronjobs, etc. Perl is really great for that stuff.

Perl 5 is obviously on the way out and Ruby/Python are coming in. But they're just passing by each other headed the opposite direction right now. The stigma Perl has just makes it seem worse than it is objectively.

Today Perl 5 is still a very reasonable choice IMHO. I'll switch to Ruby or Python full-time at some point. If Perl 6 ends up being better at some point I'll switch to that. We used to have to choose between C++ and Java and Perl. Perl was so much nicer. Now we have to choose between three languages that are all heaven by comparison. I don't really care which "wins" because I will no matter what.


> Perl 5 is obviously on the way out and Ruby/Python are coming in

Tossing aside this obviously flawed TIOBE thingy (Delphi, wtf?) I see no evidence of this. CPAN contributions are accelerating, not flat-lining. Perl's domination over Python and Ruby in the corporate environment continues.


I think you have to be deluding yourself to not recognize this as true. Of course Perl is very far from dead, but the early adopters and influential people are moving away. Don't forget that C++/Java had the corporate environments back when Perl kicked their asses.


All you seem to be saying is you FEEL Perl is losing some sort of race.

I don't share that feeling and I don't see any hard evidence of it. By all reasonable metrics perl continues to grow.


This only works when you pick and choose which metrics to count.


You're welcome to do the picking.


How about total attendance count for all conferences between Python/Ruby/Perl. If Perl was still kicking ass on that (it has historically had some of the best conferences) I'd be surprised.


That's probably a good measure. YAPC::NA this year was the biggest ever, I seem to recall hearing (and I definitely remember there were more women there this year than ever before...it was commented on during the closing address as being a great milestone for the Perl community). But, YAPC is still a pretty small conference, by design, and there are multiple YAPCs each year, in places all over the world, with the goal being to be friendly to independent volunteer hackers rather than huge corporations.


Some utterly ridiculous FUD about Ruby in there. I can't make Java scale.. but that's not because it can't - just because I don't know Java well at all.

If you're not already good at something, of course it's easy to say something else doesn't work or isn't any good.


It seems like each language only gets to have a one-liner description in everyone's head. Ruby is "can't scale". Perl is "line noise". Python is "clean, but boring" (or something), Java is "verbose and corporate", C++ is "overly complex", Lisp is "for kooks", etc, etc...


In other words, the way programming languages are marketed matters.


And fashion, lets not forget the fashion. What's this seasons colour?


I'm not just being glib. The computer industry is extraordinarily buzzword-driven.

For a good summary, watch Steve Yegge's presentation, "How to Ignore Marketing and Become Irrelevant in Two Easy Steps". (http://blip.tv/file/319044/)


neither am I - and I totally agree. I just don't think its marketing - its more fashion (I wouldn't really expect Steve to understand marketing, very few do).

Marketing is often what developers brush off as "the other stuff" without really understanding it.


> Marketing is often what developers brush off as "the other stuff" without really understanding it.

Agreed. Trying to convince programmers to not write it off entirely (such as in the presentation) is a step in the right direction.

FWIW, I think a few languages (Python, for one) have actually been marketed reasonably well.


Flatly claiming that Rails can't scale is overstating the case, but their is some truth to it: relative to other frameworks / languages, the effort required to scale Rails is greater than other popular languages.

This has improved with mongrel_cluster and (more recently) Passenger, but the memory footprint for a Rails application continues to be an issue, even relative to other dynamic languages.


I'm intrigued.. do the efforts to scale Ruby and Perl differ significantly beyond their respective base-line performance?

Interpreter level threads and multi-process based techniques have tended to be common approaches in both various Perl and Ruby projects I've worked with.


Good. Let Python take over the dynamic scripting language space completely.


Er...you don't want that. Competition is a good thing.


Python's competition these days is most likely to be Ruby, not Perl. A fair number of people I know that once programmed in Perl are now Python/Ruby people.


I agree. Python has a long way to go before it competes with Perl instead of Ruby.


You're right. Why just last night I read some python code and actually understood it!


What do you think Python lacks relative to Perl?

I used to do Perl and now work in a Python shop, and the only Perl feature I really miss is closures (as opposed to Python's hobbled-by-design "lambda" construct).


What does Python lack, relative to Perl? Popularity. I know very little Perl and very much Python; my statements aren't intended to promote a particular language. The competition I referred to is based on popularity, not merit.


There's not that much difference in popularity these days. Of projects listed by Freshmeat, Perl is used on 3784 and Python on 3286 ( http://freshmeat.net/browse/160/ ).

A few years ago, Perl had twice as many projects as Python; now it's almost even.


Let's be honest, there's much more Perl code in the wild than Python, and CPAN towers over any Python network. The knowledge base is far greater for Perl as well (there are books on the DBI alone).

Of course, I'd rather code Python usually.


The Python version of the CPAN is called ["PyPI"](http://pypi.python.org/pypi). It was formerly called the "Cheeseshop".

From the PyPI front page: "There are currently 5256 packages here." According to cpan.org, the CPAN is up to "14749 modules" -- dunno how many distributions that makes though.


It's 14793 distributions and x3 modules.


yeah that's why I've been converting any Perl apps I've been assigned to Python hehe


You need to maintain readability (whitespaces) in Python, but in Perl you can do this automatically with perltidy.


You're right. Guido would have to completely fuck up the design of Python 3 for it to be anywhere near as ugly as Perl!


Well put, as long as they are responsible system administrators Perl will live. Python/Ruby would never play well in an admin's toolbox.


Even at Google, where the preferred scripting language is Python by far, many system administration tasks are handled with Perl.


Why?


Perl has many features familiar to users of sh/bash. For admins who often deal with shell scripts, it's an easy reach to use Perl for all sorts of little things.

That said, I think you can still be responsible and use Python instead. ;) Might take you a few more keystrokes though.


agree with that. perl is tremendous for sysadmin tasks.

we've had 90% complete python tools rewritten from scratch in perl because perl is so superior.

disclaimer: i'm a recovering ex-sysadmin


Wait. If I'm reading that right, you had utils written in Python that were 90% finished but then rewrote them in Perl and got them working.

What about Python was getting you stuck at 90%?


I would prefer Python's competition come from something based on a better and presumably newer paradigm, rather than an old tired mess of a language... maybe Perl 5 isn't that, but it sure looks like it to an outsider!



How many Perl jobs are turning into Cobol-esque jobs. Maintain a legacy systems and keep it chugging along. How many people build new projects in Perl?


Agreed. Each metric has it flaws. Two differently biased metrics are better than one.


Removing Java and C from your list makes it much easier to see what's going on: http://www.indeed.com/jobtrends?q=python%2C+perl%2C+ruby%2C+...


Right. Now view the same stats in Relative (which makes the trending more visible):

http://www.indeed.com/jobtrends?q=python,+perl,+ruby,+php...

The numbers say what most people know: that set of four languages contains 1 that is mature and 3 that are growing. One of them is growing fairly rapidly relative to where it was when the data set started out.


You wouldn't consider PHP mature?


Or Python, for that matter... I mean, it's 17 years old. It can drive a car and almost vote!


Yeah, the post is based on TIOBE stats. LangPop.com is way better:-) Well, honestly it's still far from perfect, but there's just no way to get really good, clean data for programming language usage throughout the world.


It's no longer between Python and Perl, it's Ruby now . Perl still has it's place. Personally, i use it everyday, what surprised me more was Delphi. i only know skype company wise that uses it so i dunno.


If you look at TIOBE - they use bad query. Look at http://lui.arbingersys.com/ and http://www.perlfoundation.org/perl5/index.cgi?usage_statisti... for Perl programming and jobs usage statistics.


Skype uses Delphi?



Wow, I had no idea... nice smartarse link BTW.


By any purely empirical analysis Ruby practically doesn't exist.


By the same metrics, assuming you've defined any, a lot of things wouldn't exist - particularly languages less popular than Ruby now, such as Logo, ActionScript, Lisp, COBOL, Scala or Haskell.

There are tens of thousands of Ruby developers and hundreds (if not thousands) of companies making significant amounts of money, all backed by Ruby.


Actually, by this analysis, it isn't that far behind Perl and Python:

http://www.langpop.com/#normalized


Good. Let Python take over the dynamic scripting language space completely.

Who says Python programmers are all jerks?

That they're cold, humorless perfectionists who alienate new and prospective users?

That they have inferiority issues because they're not as popular as they are right?

That they occasionally lapse into self-parody?


Dude chillout I wasn't exactly serious. But I do think that Python deserves the spot as the nr 1 scripting language.

And of course competition is good.

And I don't think the community alienates new users, on the contrary I find it very helpful.


I realize this article is a little incendiary but please don't throw logs on the fire. Python isn't for everyone -- only for people who like it when a space has syntactic meaning. ;-)


Today I discovered that % 100 = 3; parses in Perl. I wish the space between the % and the 100 had the semantic meaning of telling perl that the % is supposed to be an operator, not a hash sigil. What other languages allow spaces in identifiers? Fortran 77 and Algol 68, I think?


I agree with one redditor who blames perl6 for this state. Indeed, who would start a new project in perl5, when the language becomes obsolete by perl6, but on the other side, you have to wait and wait again for perl6 to be actually delivered.

I think they had to either deliver perl6 a few years ago, or not doing it at all and continue to improve perl5. But in this situation, many people are just not willing to invest into perl and are looking for the greener pastures.


I can't take an article serious that lists Visual Basic and Delphi among the top ten programming languages. Maybe they are still very common, but even if they really are, they are definitely not common in the "world" that I am interested in.


Um, VB and Delphi are more popular in the general world. The world you're interested in is but a niche.


Maybe if you go in sheer user numbers, but it really isn't releveant to me. I will never ever consider to write a web application in Delphi or VB.

Maybe by numbers horses and mules are still the most important means of transport in the world. Doesn't mean that I should worry about buying a horse now.


The world does not revolve around you.


That wasn't the point. The point is that there are completely seperate worlds. If you show a car manufacturer a list of top 10 means of transportation on the ground, should he be bothered that "horses" are still #7 on the list (I am making this up)? The horses business simply has (almost) nothing to do with the car business, even though they are both means of transportation.


Actually you are wrong - the horse business has everything to do with it, and not only that, did have everything to do with it (back when horses were actually #7).

If a car company thinks they are in the car business and not the transportation business they will go bankrupt as soon as new technology arrives.

Actually - that pretty much is happening right now. Car companies are selling "the experience" of driving a car, they are selling prestige, and looks. They are not selling transportation (just watch car ads).

That can work fine, and did work fine, until people don't have money for prestige and looks, and just want transportation. And then the company goes under.


Well this is not about cars, it is about programming languages.


You think your line of business is web apps. It's not. You business is making tools for people. Either via web app, or whatever new tech comes along.

So pretending any language that can't be used on a web server does not exist is not a good idea.

Specializing in certain languages is OK obviously, but don't start thinking the others "don't count".


So how exactly should I deal with VB and Delphi? In what way do they count for me?


Are you seriously saying that since VB and Delphi don't count for you, they should not be included on the TIOBE index?


No, I am not interested in the TIOBE index. But it was used in the article to show that Perl is losing relevance. I just felt it was not a very significant indicator for that particular conclusion.


Wait, but the article didn't make up the numbers, they are just reproducing the rather well-known "TIOBE index". Of course, we can discuss correctness of its methodology, but either way it's not the fault of the article author.


So if the data doesn't match your expectations change it?


A more reasonable way of putting it would be, what would be really interesting is a breakdown of the languages used by the last 100 successful internet startups, where "successful" is whatever metric you feel like.


It might be a better way of putting it, but it's not a useful question.

No language can be called "successful" if only 100 internet startups use it. Look at languages that are used in the real world, and don't artificially limit your selection process.

I might be OK with making the criteria: languages used for new programs (rather than languages in use for a useful product). I'm not sure what their criteria is though.


No, I am just saying that this data lumps totally unrelated fields together.

I would guess that VB is maybe used by Excel users who write little scriplets for their Excel sheets, but rarely by programmers.

It is like saying "PCs and cars are the most popular products in the world", since I am not interested in cars, I simply don't care. I only care about the popularity of PCs. The data is correct, but it is irrelevant to me.


You're wrong though. VB is used for many desktop applications, not just "excel scripts". But it seems that you don't want to change your beliefs even in the face of evidence.

Sure, it's always possible to set up the selection criteria ("only language used by companies I like") such that the answer will be what you expect - but how is that valuable?


Still, is VB really competing with Perl?


If you define competing as "what language should I used for this app" then no. VB is way better then perl for desktop apps, and perl way better than VB for text processing and web apps.

But if you define competing as "what language should I learn in order to get a job" then yes, they are competing.

PS: I know, and have used, both in different jobs, so it's not really competition because you can do both. But if you are only going to learn one, then yes, they are competing.


If you have to "reinvent the language and the community", how does that count as Perl 5 surviving?


And perl6 was DOA. Long live Ruby.


Last I checked there are two different Perl 6 implementations on the home stretch.


That race was over four years ago, though. Ruby won. It's nice that the old nag is finally making it to the finish line, but the audience has been gone for a long time.


Actually, I don't know a lot of Perl developers who have switched to Ruby (though many have tried it--it is, after all, a very comfortable fit for Perl programmers, since it borrowed a lot of the best features of Perl). I know several PHP guys who made the switch...but, there are numerous areas where Ruby shows its immaturity and Perl is far more competent: Unicode, block scope, VM performance, concurrency, library breadth and depth, just to name a few.

I like Ruby and think it's a very fine language. I've implemented a couple of small projects in Ruby, and had fun with it. I find it as readable and writable as any language I've used. But, I'm confident I could accomplish almost any task I would ever need to accomplish faster in Perl, and the result would run faster, smaller, and more reliably. The same is true of Python, though to a lesser degree (though some of the problem features in Python are more uncomfortable for me...closures, in particular), but at least it has some Unicode support built in (or bolted on with reasonable competence), and the VM tends to be closer to the speed of Perl than Ruby.


Ruby has had some Unicode support for years. As of 1.9, it supports Unicode directly.


I wasn't aware Ruby 1.9 existed. I thought the current Ruby version was 1.8.mumble.

Python 3.0 did just spring into existence while we were having this discussion, and it finally has proper Unicode support. So, there's one less reason to choose Perl over Python.

If Ruby has Unicode support in 1.9, and 1.9 were widely available, then I guess that'd be true of Ruby as well. But, I just went to the Ruby website and it looks like 1.8.7 is the Ruby version available. It doesn't have Unicode support, does it?


Strictly, strictly, strictly speaking, you're right: 1.8.7 is the current "production" version of Ruby.

However, Ruby 1.9 has been around for about a year now (considered a "development" release) but Ruby 1.9.1 will become the "production" version of Ruby when it's released in the next month (yeah, I know that makes no sense). The current preview releases are pretty spot on though - so we're in a transitional phase. Ruby 1.9's performance is also somewhat better than that of 1.8.

On the 1.8 front, Ruby 1.8 has had what's called KCODE for years now, which enables Unicode support for various bits and pieces (primarily regular expressions). More info on this here: http://blog.grayproductions.net/articles/the_kcode_variable_...


If we're not strictly speaking about stable, widely available versions, how about we talk about how awesome Perl 6 is? Because it really is astonishingly, mind-bendingly awesome.

Granted, the leading Perl 6 implementation is still a little over a year away (though Parrot hits 1.0 in March, which is a pretty cool milestone in and of itself), and I imagine Ruby 1.9 will be widely available long before then.


Precisely my point.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: