Tuesday, 11 February 2014

Snapshot 2014* - Perl on the Web

A survey of the Perl Web Development job market

Having used the Dancer web framework for a year I was so impressed by the simplicity and clarity that in 2011 I started giving an annual Web Development class at the London Perl Workshop. By 2013 I'd noticed that one of the questions which often came up was along the lines of "is this going to get me a job?"

As recently as 2010 while no-one questioned the fact that Perl was still the duct tape holding together the Internet and Catalyst was a well established and comprehensive web framework, there was the sense that people weren't keen to start any new website using Perl. In retrospect though, the Perl Pumpkings had just found a regular release cycle and the community had produced two more cool and trendy web frameworks - Mojolicious (2008) and Dancer (2009).

In preparation for my last class I sent out a survey to collect information on the extent to which learning a Perl web framework will position people to find a job. It's not clear whether the audience of the survey was a representative sample, but I've extracted the definite outcomes from the data as far as possible. As you'll see, on the whole it paints a rosy picture of Perl on the web - but not without its thorns!

* Confession: The stats were collected in late November 2013 and it's taken me this long to read through and analyse them in detail. It should probably be called "Snapshot 2013 - Long Exposure."


Quantitative Analysis


The statistics are derived from information about 121 companies where multiple responses from a single company were averaged. The results I'm extracting from this data should also be taken in context - I sent the survey only to the Perl Monger mailing lists of San Francisco, London and Sydney as well as the LinkedIn Perl group. Gabor very kindly added it to the Perl Weekly bumping the responses up by 50%.



The first surprise was getting more responses from Australia (pop. 23 million) than from the UK (pop. 63 million). I'm willing to bet that Australia does not have over three times the Perl web developers per capita than the UK. This suggests to me that Australian Perl developers have stronger community engagement than their UK counterparts.


Back-end or Front-end or ... hey! what happened to Big and Little Endiens!?


The survey asked whether a company had Perl in the "front-end", "back-end" or both without explaining what I meant by these terms. That said, everyone filled it out so I can now assert:
It is universally accepted that - in reference to a website or web service - a front-end is a component which is accessible to the public while a back-end is only accessible from within the company which owns it. 
[Citation: Snapshot 2013 - Long Exposure]
Of the 121 companies covered in the survey, 120 (99%) use Perl for their back-end and of those, 74% use Perl for their front-end.


Perl Team Sizes and the Lone Ranger


This chart was particularly revelatory. On the left hand side there are 30 companies with a single Perl web developer, and via comments I deduced that a considerable portion of these developers do contract work for large companies. So the good news is that contract Perl developers are in demand. The bad news is that most of these 30 participants didn't provide a separate record for the companies to which they've done contract work. The survey didn't make that easy, but had it done so the orange line may have had its maximum toward the medium team size section of the chart.



Perl Web Technologies - What's Hot


Although I didn't ask which Perl packages were being used, sixteen respondents were kind enough to tell me anyway. In order of popularity the results were: Catalyst (7), Dancer (3), CGI (3), Mojolicious (2) and Template::Mustache (1 - who was not the module's author).


Are Perl teams expanding or contracting?


That's another question I forgot to write. I was informed by fourteen telepathic respondents that 10 of the teams were expanding while 4 were contracting.

These numbers aren't statistically significant so this is a good point on which to focus on the respondents' comments to put all these numbers in context.


The Qualitative Analysis

"Python is taking over Perl very fast and I see very slow development happening towards Perl 6" 
"There is also plenty of Java and what not. Unfortunately the use of Perl is rapidly declining [and] most of the Perl devs have already gone." 
"Perl presence is mainly legacy support. New developments are in other languages."
"Perl is being replaced by a Java based stack of technologies.  It is arguable where this is increased or decreased productivity but it enabled them to use particular Java based technologies." 
The comments above reveal that the companies of these respondents treat Perl as dead. As someone who develops and teaches in Perl there's no point defending it and pretending to be objective. However, considering:


  • Perl 5's regular release cycle since 2010;
  • the fact that the ratio of expanding to contracting teams was 10:4; and
  • lots of shiny new packages like Moose, Moo, Catalyst, Dancer, Mojolicious, Starman...
I can assert that the reports of Perl's death are greatly exaggerated.

A more difficult concern to address is the 'Waiting for Godot Perl 6' issue. Like Godot, Perl 6 as a project has so many interpretations in and out of the Perl community that it's a PR nightmare. The facts of the matter are that Perl 6:
  • is a different language to Perl 5;
  • positively contributes to Perl 5's R&D (e.g. the Moose OO system);
  • is a long way from being in production; and
  • (I'm willing to bet) is decades away from catching up in terms of having a comparable CPAN.
The great challenge to the Perl community is to present it in such a way that it doesn't muddy the waters of day-to-day development decisions.



Perl and Academia are Strange Bedfellows


It's well known that Perl holds a distinguished position in bioinformatics for many reasons, not least of which is its Web technology used for sharing this information.

Professors are using Perl: Four of the respondents indicate that their Perl web sites are within or closely linked to academia. Two are oriented around research and the resulting technologies, while the other two are business and government providers of learning management systems and their infrastructure.

Professors aren't teaching Perl: Three other respondents (one in Germany and two in the UK) express frustration that Perl is rarely taught at university and have taken on Perl training in-house.
One of Germany's web pioneers [had] consistent Perl usage since the mid/late 90s.... [they] decided to offer Perl trainee positions since it's hard to get Perl developers in Germany.
Formerly an academic I was at one of the few universities with Perl in its IT curriculum. Even though this put our graduate employment rates above the rest, teachers from other institutions didn't tackle Perl. Being so much like a natural language Perl is hard to teach if you're not using it every day. I think it's accurate to put a twist on a famous quote by Randal L. Schwartz and say that "the only people that can parse Perl are Perl developers". My ongoing teaching project is to bridge this gap between education and the Perl job market.



Old Perl Shops with New Toys

Comments from four companies who'd been using Perl for over 15 years indicated that they were at least dabbling with Perl's new Web technologies:
"Using a home-grown web framework on top of mod_perl. Back when we started (1998!) there was nothing suitable available, and of course now we're heavily invested in it. We're idly considering moving it to PSGI/Starman to make maintenance easier (no more Apache) but it might never happen because there's no particular driver for it." 
"I've used perl server-side on at least 3 projects in the last year, mostly for database queries and file manipulation. I'm currently working on my first project that uses Mojolicious, a complete server written in perl."

"We develop mostly in Perl using the Dancer2 framework."


"It's used extensively in the back-end, though, especially for webservices."
Apart from these there was at least one Silicon Valley start-up.


Conclusion


These results are open to many interpretations, but my own view is that Perl on the Web is currently blossoming with regular releases, new technologies and interesting jobs on offer.

I haven't published the raw data as - yet another question I forgot to ask - I didn't request permission from the respondents.  I recommend that anyone willing to share this information add it to the Perl companies database, and if you're a start-up do it here.

Finally, if you can think of more useful questions than the ones I had, please leave them in a comment below and I'll keep you in the loop when I'm drafting the next survey.

5 comments:

  1. Thanks for this post, it presents what's really going on in the perl world and this inspires some hope :)

    ReplyDelete
  2. I was the one mentioned here:
    "Anyway, in response to another ridiculous exchange I had with someone last weekend"
    I still feel sooooo ridiculous.
    In the meantime, I still love Perl, and I predict a shiny future for Perl. Thank you.

    ReplyDelete
    Replies
    1. It's ridiculous that you think the fact I called the exchange ridiculous means I think you are ridiculous.

      Delete
  3. In linking to my post, you said "the reports of Perl's death are greatly exaggerated."

    Did you read my post at all? Perl's usage is declining steadily and has been for many years, by every measurement I listed.

    ReplyDelete
    Replies
    1. If you read the previous paragraph carefully you'll see that I assume my views are biased: "As someone who develops and teaches in Perl there's no point defending it and pretending to be objective."

      I linked to your post so the reader would be aware of all the different metrics and interpretations which could be made from them.

      One especially interesting metric you mentioned was this one http://blog.codeeval.com/codeevalblog/2014 in relation to the number of online candidate screening activities. My own view is that Perl's low representation is more representative of its culture than the number of jobs. It's well known that Perl developers would much rather demonstrate their brilliance via CPAN than a game-like challenge http://blog.codeeval.com/about/

      Delete