Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Ovid (2709)

  (email not shown publicly)
AOL IM: ovidperl (Add Buddy, Send Message)

Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.

Journal of Ovid (2709)

Thursday December 04, 2008
05:54 AM

Perl 5 Programmers Are Dying

[ #38018 ]

If I didn't grab your attention with my Perl 5 Is Dying post, allow me to follow up.

First, to reiterate my main point: if only Perl programmers know that Perl isn't dead, it's dead.

Or maybe those of a political bent might appreciate the observation that for many people, perception trumps reality. Seriously, perception trumps reality. If decision makes perceive that Perl is dead, we can all laugh quietly at their idiocy. After all, some COBOL programmers are still laughing.

Got that? Really? Seems to me a few people either missed that point or dispute it. Fair enough. Now sit back and relax.

When I was living in Portland working for a company called 'OnSite Technology', we had trouble hiring Perl programmers. We had no trouble finding Perl programmers. They were a dime a dozen. People write a couple of admin scripts in Perl and they put Perl on their CV. Now don't get me wrong, I have Java on my CV, but I would never dream of sitting down for a Java interview without their knowing up front that my knowledge is pre 1.5 and I don't know any of the modern tools. It's only there because I want employers to know that I have some exposure to it, not that I think I know it.

Now, maybe I'm just being naive, but somehow people with Perl on their CV think they can do this job, but they can't. Not even close. At OnSite we struggled so hard to find programmers that we hired one of our programmers from California and another one from Idaho (or was that Iowa? I forget). Two-thirds of our Perl programmers were from out of state because that's what we had to do to keep our company going.

It's not just Portland. In the "dying" thread, mock complained about companies in Victoria and Vancouver having trouble hiring Perl programmers. We're having the same problem here in London. My brother (the Java programmer, not the one banned from Portugal) tells me that he can't find Perl programmers but Java guys are a dime a dozen. Here at the BBC, I've been told that lack of competent Perl programmers has been one of the reasons we've considered moving away from Perl. Many employers I've spoken with in London tell me the same sad story. In fact, it's bad enough that Dave Cross picked up a Simon Cozens' project and offered a free Perl class at the BBC. We might even do this again.

Oddly, I hear that Python has a similar problem (I wouldn't know), but that Ruby and PHP don't. While this is still all anecdotal evidence, when employers tell me that they can find developers for languages which are not Perl, I find that interesting. And maybe they're wrong, but like the whole "Perl 5 Is Dying" meme, it's still a problem.

So, you've got a great product idea and need to start a new team. You've heard that Perl is really quick to develop in, but you hear that Perl is dead and you can't find any Perl programmers. Hmm ...

We can point to Perl's rather flat job trends and claim we're not dying, but others can point out that we're not growing. Of course, other languages have flat job trends, but they're also not fighting the bad PR we are. We can compare relative job growth in our direct competitors and see that we're dead last. I suppose we can wait until the pain really sets in (and I know that some will), but then it will be too late.

Publish articles. Publish articles in places which aren't typically Perl-centric. Blog about Perl. If you have a Perl-related site, try and make it look modern, not like some throwback to the 90s. If you don't have the skill for that (I certainly don't), ask for help. If your bosses say "Perl is dying", politely correct them with information, not faith.

And if your bosses counter with "we can't find good Perl programmers", well, I ain't got no advice for you there. If the decision makers and new programmers decide that Perl is dead, then we know where we're going. It's a vicious cycle we have to break. In the past few years, dynamic languages have been carving their own niche, but Perl's not well-represented there even though many of them learned their hard won lessons from us.

Do something.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • There is simply no way you can compare recruiting Java skilled programmers to recruiting Perl skilled programmers.

    Java is hugely mainstream with large numbers of graduates churned out who don't even know how to set classpaths or sort lists.

    Perl is not mainstream and has graduates who trained in it at work or at home, it's rarely a first language or formally taught.

    Recruiting good staff is hard, the size of the pool doesn't make it any easier.

    Recruiting good staff who have specialised a bit (i.e. become good


    @JAPH = qw(Hacker Perl Another Just);
    print reverse @JAPH;
    • You've totally missed the point. It isn't that it is easier to find Java programmers than Perl programmers, it's that it is *hard* to find *competent* Perl programmers for a wage that the employer can afford. While it is true that Java programmers are churned out of University at a dime a dozen, they remain in the language and fill out a continuum of competency. Your response is "Pay More", but that again ignores the underlying problem (and the realities of the real world).

      In a healthy community there wou

      • I think there is actually that continuum, but some employers are in denial about what they actually need.

        recruiting is hard, recruiting a senior perl programmer for less than would be paid for a senior programmer in C++ or Java and then complaining is what I've seen.

        The BBC contract's I've seen fall within IR35 and you'd better paid in a decent junior role. That's nut's.


        @JAPH = qw(Hacker Perl Another Just);
        print reverse @JAPH;
  • At my previous, and current company they've run into the same problem, as well at as another largish dev house in toronto. Salaries are getting large, because finding people that already have the skills is getting challenging to impossible.

    The last two hires at my previous employer had little to no perl experience, but were already programmers (ie: had CS degrees of some sort). We then took it upon ourselves to bring them up to speed in perl.

    Obviously that won't work for everyone, but if you hire smart pe

    • This is really the key point. A good programmer who knows a couple programming languages already should be able to train into a new one in about the same amount of time it's going to take them to get used to your code base anyway. For Perl, if you can find someone with both PHP and Java experience or experience in Ruby or Python, you've basically won.
    • I run a very small consulting company and that's what I did too. I hired a Python programmer and had him learn Perl. He's very smart and picked it up in no time. Soon after he was hired, I sent him a copy of Perl Best Practices and he learned many good habits from the start.
  • (Disclaimer: I'm a Perl apostate.) You seem to be saying that competent Perl programmers are scarce and growing scarcer. It's also non-disputable that huge amounts of Perl code are being written every year. It would seem to follow that the average quality of Perl written over time has been falling, and anecdotally that's exactly what I'm seeing. For at least the last five years, the Perl that crosses my desk has been uniformly godawful--much poorer in quality than the first program I wrote as a kid. Ra
    • confirmation bias much ?

      I think those who *do* care about quality have got on with it, that's why we have some seriously good tools for to help code quality, in every area from profiling, to perl critic to unit tests, to smarter refactoring editors : whether using perlisense or other tools inside vi or emacs, or using Padre, Kephra, Komodo or Eclipse.

      I care about quality, and Perl has delivered, everything from 2 generations of ORM that beat anything available from other dynamic languages, to CPAN modules w


      @JAPH = qw(Hacker Perl Another Just);
      print reverse @JAPH;
      • Re confirmation bias: No, what I see is clear cut. Better to argue instead that my case is not representative. I work in bioinformatics, and the Perl is pretty uniformly awful--mostly written by biologists I suppose. (When I say "awful", I don't mean "unimaginative" or "not what I would have done", I mean "poke your eyes out and run screaming".) Now, it may not be Perl's fault that a large number of people writing it are not competent, but that doesn't change the fact that randomly sampling Perl code, p
        • I work in bioinformatics, and the Perl is pretty uniformly awful--mostly written by biologists I suppose.

          I suspect that most of what you see is due to the fact that Perl allows non-programmer biologists to get things done without having to be good programmers. No one's devised a system by which you can turn a non-programmer into someone with good code maintenance habits automagically. I'm not sure it's possible.

          • To a degree, perhaps. I think it's more that it gives non-programmers the *illusion* that they are getting things done.

            For example, they can write code like "while { print; }" and feel that their code works. Unfortunately, it fails silently on I/O errors, so to my way of thinking it's far worse than useless.

            Given that there are alternatives that don't suffer from this problem, this seems like a showstopper to me.

            • my way of thinking it's far worse than useless.

              Have you ever noticed empty catch blocks in Java code that trap Exception e? That's because non-programmers who just want to get something done care more about whipuptitude than handling all exceptional cases perfectly.

              I consider myself a decent programmer, and I don't check the results of my close calls all the time, either. Does that mean that my code only works in my illusion-prone mind?

              • Hmm. If I usually don't buckle my kids into their seatbelts, would you say that I'm an inattentive parent (a) most of the time, or (b) only if/when I actually am involved in a wreck and they go the the hospital? I'd say (a).

                I don't always check my results, either, but it's usually on my mind because I know it's important, and I generally try to make my stuff reliable before it leaves my hands.

                • If I usually don't buckle my kids into their seatbelts....

                  If you have novice programmers writing programs where improper coding can produce death, dismemberment, and other disaster, you have incompetent management. (If that's not what you mean, then your analogy is inappropriate.)

        • I've friends who work in bioinformatics, they write Perl, most of it is pretty good, some of them come to Perl Workshops, and the some of the people they work with even give talks at Perl Workshops.

          Not all of the people they work with are good, but there is the community and the support there. If the technical people in your organisation are more interested in petty squabling about languages than helping their own people do their job better by hooking them up with the local perl or bio-perl comminity, that


          @JAPH = qw(Hacker Perl Another Just);
          print reverse @JAPH;
        • As has been noted, bioinformatics has a lot of non-programmers programming in Perl. IIRC, average salaries in bioinformatics is less than what you see in other areas of Perl. The two phenomena are likely related, and both will lead to lower average code quality.

          Incidentally the quality of the Perl code that I've personally been seeing over the years has been going up, not down. That's because as my career has advanced I've been working with more experienced groups of competent people. While this is a go

    • > Ray Kroc may have been an excellent chef, Ray Kroc sold milk shake mixers.
  • My comment here ran a little long so I posted it independently. I am in a position of both loving Perl and actively working to extract it from the company I work at. This is heavily biased by my experience and dismay trying as best I can to fix serious problems at work. []
    • So I read your post, and apparently it will be unicorns and rainbows, if only sysadmins wrote software beyond their ability in python instead of perl ?

      You stated at the start of your blog entry that the problem was sysadmins doing the jobs of programmers, wouldn't it be better to hire programmers who know perl to do the programming and keep the sysadmins to sysadminning ?

      Python won't enable them to program an iota better than perl, heck they'll probably try and apply perl, shell and c idioms to python and t


      @JAPH = qw(Hacker Perl Another Just);
      print reverse @JAPH;
  • I don't understand what people keep complaining about. Perl 5 has some legacy, but it is not broken. You don't have to have a major new release of the language every year to keep it current. Perl is mature, and that's a good thing. It has all you need. It's even fun and exciting; you know it. (At the same time there is the next wave of development happening all time.)

    (IMO, saying that Perl is too nice (too easy, too liberal, too flexible or what ever I keep hearing about) is just an absurd subject for criti

    • You don't have to have a major new release of the language every year to keep it current.

      You have to have a sane deprecation policy if you want any hope of avoiding the crushing burden of legacy code. How long did it take to get rid of pseudohashes, for example?

      • You have to have a sane deprecation policy if you want any hope of avoiding the crushing burden of legacy code. How long did it take to get rid of pseudohashes, for example?

        Yes, and Perl 6 will be a major milestone in the history of interpreted languages.

        However, my feeling is that the Perl community is now lacking entry- and mid-level users in "new" application areas like Web development. I don't see the language details as the problem here.

        People are looking for CMS:s, modern MVC frameworks, good looking friendly sites, easy to find documentation, exciting examples and a consistent presence in the web. All can be done with Perl, all has been done with Perl, but people ju

        • I don't see the language details as the problem here.

          For the marketing problem, no. That's probably the most important problem to address.

          I do strongly believe that language details (and the Perl 5 deprecation policy until now) still matter. Perl 5 has been in a situation where it can't evolve. Hopefully that will change.

  • In fact, it's bad enough that Dave Cross picked up a Simon Cozens' project

    Yeah, that's when you know things are getting bad.

  • we had trouble hiring Perl programmers

    And for more than 10 years, I've always had trouble finding a Perl job.