On this blog, Dave Cross recently wrote about free Perl training the BBC is sponsoring in London (Dave will be the trainer) and chromatic wrote about recruiting Perl programmers and frankly, it’s a hot topic in the Perl community right now. There are, frankly, more jobs than there are programmers. At this point, many people automatically say “just don’t use Perl”, but that doesn’t work. Here’s a bit of history about how this problem came about and my predictions about what’s going to happen next.

What Happened?

In the 1990s, there was this little thing called the “Dot Com Boom”. Web companies were springing up everywhere. Portland, Oregon, at the time, had so many tech startups that they were known as the Silicon Forest. You couldn’t throw a server anywhere without hitting a bunch of techies who could rebuild it with their eyes closed. And there were tons of jobs, many of them Web-based.

At the time, the strategy for getting a raise was simple: take a new job every six months. Companies were desperate to cash in on the piles of money being spent and they had no choice but to hire anyone they could get their hands on. Since I’ve done mostly Web development, I knew a lot of Web developers, particularly Perl programmers. But where did they all come from? At the time, Perl was the “glue” language that held the Web together. Even Microsoft belatedly agreed to fund Perl development, it was so hot. But why was it so hot?

To run your first Perl program, you just needed to type perl programname. That didn’t work for Java. You needed to compile your Java program first (oh, and do your file and class names match?). You had the same problem with C or C++. You needed to compile them first, too. Perl, as a language designed to be easy to use, made the common stuff easy. As your projects grew larger, it was trivial for Perl to include other files and still just type perl programname. For other languages, you might need to create Ant files, Makefiles, or just try and recompile everything separately. These things are fairly straightforward, but for inexperienced programmers, it can be hard. This is why Perl’s ridiculously low barrier of entry led so many people to climb over it.

As a result, many people who came to Perl programming were inexperienced programmers. These were people who may have been system administrators or graphic designers who saw the piles of money being thrown at Perl programmers and saw their chance to to grab some of that money. The market flooded with Perl programmers and when the bubble burst, many of them were out of work.

I’m sure that many C++, Java, and other programmers were out of work, but I also seriously doubt that they had quite the same flood of inexperienced programmers join their ranks (well, maybe Java did due to its popularity) and dilute the labor pool.

What’s Happening?

Until recently, there have still been so many Perl programmers out there that there’s been a downward pressure on wages. Many are leaving for PHP jobs and, more recently, Ruby jobs. That’s left a rather sizable labor gap. Many companies have large amounts of money invested in systems written in Perl and are having a lot of trouble luring back the programmers who have left for other pastures. Because wages have been depressed, the programmers who really like Perl and are good at it are seeing that many companies are offering less money for Perl jobs than comparable positions in other languages. Right now in London, I’m seeing plenty of Java jobs that routinely offer £5 to £10K (around $10 to $20K US) a year more than comparable Perl positions. No surprisingly, in talking with one of my brothers who’s a director of a company which hires lots of Java programmers, he has no trouble finding people.

Unfortunately for the Perl community, we’re seeing fewer people apply for jobs and those who do are often not very good programmers. However, those companies used to offering less money are now finding that they can’t hire people. It shouldn’t be a surprise, but that’s where we seem to be right now.

What Will Happen?

At this point, many people think “just don’t use Perl!” It’s not that simple. If it were, COBOL would have died out a long time ago. As a former COBOL programmer, I can assure that there are no modern programming languages which I would consider technically inferior to COBOL. It’s a lousy language. Yet why is it still there? Because companies have millions of pounds, if not billions, invested in their COBOL systems. They can’t make them go away easily. Anyone who’s been programming long enough knows that the larger the system, the more likely the rewrite is to fail. When these are mission critical systems, trying to replace them becomes very dangerous. As times go on, the more the need for a replacement becomes obvious, paradoxically, the more risky that replacement is! Having been with Perl for many years, I can assure you that many Perl systems rival COBOL systems in complexity. Whether you appreciate the comparison or not, Perl, like COBOL, is here to stay.

So if companies aren’t willing to risk replacing Perl, how do they hire Perl programmers with such a tight market? Frankly, the market needs to correct itself. Some companies will undoubtedly find ways to do without Perl. Those who can’t, or won’t, need to figure out different hiring strategies. The obvious one is to raise wages and that’s what I expect is going to happen for some companies. I know of at least two companies (neither of which I can name), who have stepped up to the plate with salaries that bring top-notch Perl programmers on par with programmers in other languages.

Other companies will take the strategy of one of my former employers and will hire programmers who don’t know Perl, but are good programmers who are willing to learn Perl. This company’s Perl code is some of the best Perl code I’ve ever seen used in production systems, and this is often written by programmers who didn’t know the language when they started. Training people internally can work.

Other companies are willing to try to recruit foreigners. My current employer, Pipex, took that route with me and they seem (I hope!) relatively happy with this. However, recruiting foreigners can be a long, painful process. In many cases, it can be an expensive process, too. Also, most governments have legal requirements that forbid companies from hiring foreigners for lower wages than domestic workers (contrary to the opinion some have expressed to me, that’s the law in the US, too), so hiring foreigners is generally not a tool to lower labor costs for programmers. If anything, it can raise them. (Before I get lots of nasty replies about this, I know there are foreign IT workers who take lower salaries. In some cases, it’s a questionable legal practice, but for those working at the lower salary rangers, the companies recruiting them still often have to spend a lot of money up front on the recruitment process).

In the specific case that we’re facing right now in London, the Perl community is going the unusual route of trying to offer free Perl training. This has happened before in other industries, but I think something very interesting could come out of this. What I’d be particularly interested in seeing is if we can convince those companies who are starving for expert Perl programmers to work with us to create those programmers, rather than just find them. Whether this be through some centralized training program or in-house training programs, I don’t know, but the problem needs to be solved. Perl’s not going anywhere and if programmers are in short supply, demand must drop (and it won’t by much), or supply must increase. I also know that we can find the programmers for this. Though 50 slots were offered for Dave Cross’ Perl training course — a course that requires that you at least have an intermediate understanding of Perl — they were filled in less than 48 hours.