Is it really hard to find good Perl programmers?

Yesterday I wrote Perception is Reality - we need a director of marketing. After a few hours I was caught on IRC by some people who said the main problem why companies are not picking Perl or why they are leaving Perl is that they cannot find good Perl programmers. As reaching programmers to learn perl is not the job for a marketing director hence we don't need a marketing person.

Let's set aside all the other areas where professional marketing could help the Perl world and let's focus on the issue of the impossibility to find good Perl programmers.

I think if we compare it with Python, Ruby and to some extent even with PHP the situation isn't better there either. I don't think it is a problem specific to Perl. On the other hand if you look at Java, people don't have the same problem.

Java does not have a lack of programmers

There are several reasons for this. One of them is that most of the universities teach Java but not any of the dynamic languages. The other reason is that in Perl/Python/Ruby they are looking for good programmers while in Java they are looking for programmers. I am not sure I know what they mean by that but that's usually the phrasing I hear. The explanation I get sometimes is that in Java you need one expert and you can get by with many beginners. In dynamic languages you usually need a lot less people but they must be really good if you want maintainable code. This might be less so with Python and Ruby but the difference is neglectable.

So are Python and Ruby in better situation than Perl?. If a company or a team in a company decides to use one of the dynamic languages they need to overcome the lack of Perl/Python/Ruby programmers. One of the ways is to take some of the Java or C# programmers and teach them the language. Either by formal training or by letting them learn on their own. In either case it requires an investment on the side of the company and the willingness on the side of the programmer. Perl has a clear disadvantage here that boils down to three issues.

  • It is harder to learn Perl than Python or Ruby
  • Perl is not as sexy as Python or Ruby
  • Team leaders and managers think about Perl that it is dead, unmaintainable, etc...

The first problem can be reduced or eliminated by improving Perl, the language or by the various projects such as Enlightened Perl, Modern Perl or by creating a really good IDE for Perl.

The second issue might be also changed by the above improvements but that is already mostly a question of perception.

The third issue is clearly something we programmers and system administrators don't know how to deal with. There is where we need the professional help.