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.
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...
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.
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.
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 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).
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.
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.
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?
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.
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.
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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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.