Improving Perl’s New Programmer Outreach

I don’t think I’ve ever seen so much demand for programmers or programming training. In an economy that’s still recovering from the recession, the remarkably low unemployment rate among programmers plus the relatively high rate of pay is drawing ever more people to the industry.

You hear it over and over again: “I want to learn to program but need help to start.” If you search on the web you can find an abundance of “learn to program” opportunities. Most of the offline/meatspace ones use Java, Ruby or Python as the language of choice. I found none that use Perl, which I see as an opportunity the Perl community should pursue.

The availability of more beginning programming training provided in Perl would be beneficial both to the trainees and to the Perl language and community. As languages go, Perl quite easy to learn (or at least no harder than the popular alternatives). The basic programming concepts are fairly straightforward in syntax, sigils can help a neophyte to keep her data structures straight, and CPAN can enable a beginner to produce remarkably functional code in a limited amount of time. This leads to higher student confidence, since (as we’ve all experienced), creating something that works makes you feel good and want to keep learning more.

Perl, for its part, could benefit by using this training as positive propaganda to help dispel the negative brand image it’s developed and been unable to shake for all these years. Pundits and wags on Stack Overflow, reddit and elsewhere enjoy repeating the chestnuts that Perl is dead or is good only for scripting and parsing text, not for “web scale” projects. An influx of new programmers—trained on Perl and in the best practices recommended and used by modern Perl developers—would help to dispel these misconceptions, even if afterward they went on to use other languages.

As an example of an organization I think really does training right, I direct you to the San Francisco Ruby community. SF Ruby puts on a training session at least once a month. At least one of these, admirably, is focused on teaching women to program. In addition to training sessions, SF Ruby also organizes several hack nights each month, providing ample opportunities for newbies to mingle with more experienced programmers and get personalized assistance.

Now, in comparison, I’m going to pick on my local Perl Mongers group. Before I start, please be clear that I use here only because it’s convenient and—as you’ll see in a moment—provides a dramatic comparison. The SF Perl Mongers are a great group of people. This is not intended as a slight against them or the organization. I simply wish to show that the Perl community could increase its outreach to new programmers.

I’ve compiled data on the number of training and hacking sessions organized by SF Ruby and in 2012. All data is drawn from the Meetup calendars for each organization. A ‘training’ event is defined as anything focused on helping people learn the language and includes beginners’ hack nights, study groups, API office hours and more formal training sessions. A ‘hacking’ event, simply enough, is anything with the word ‘hack’ in the title.

Month SF Ruby SF Perl Mongers
  Training Hacking Training Hacking
January 1 5 0 0
February 3 9 0 0
March 1 6 0 0
April 3 7 0 1
May 2 6 0 0
June 4 5 0 0
July 8 4 0 0
August 7 6 0 0
September 4 5 0 0
October 2 5 0 0
November 2 5 0 0
December 3 3 0 0
TOTAL 40 66 0 1

The numbers, as you can see, are staggeringly different. That said, there is also a huge difference in the size of each of these communities on SF Perl Mongers has a membership of 380 people. SF Ruby has 5588. This naturally affords SF Ruby more resources to provide these events but does not, I believe, excuse for providing almost none.

SF Ruby deserves everyone’s attention and commendation for all of their work in training and outreach. It’s a model which Perl should look to emulate. While the resources of my local Perl community may not allow it to scale to the level of the 44 training and 66 hacking events put on by SF Ruby in the last year (nor do I think they should attempt to do so), I would hope those resources could allow for at least one training session every month or so and a newbie-friendly hack session every few weeks[*].

If Perl wants to show people that it’s alive and well it needs to be more active in public ways like this. Outreach to help introduce novices (especially minorities) to programming would go a long way toward dispelling the out-of-date image the tech community has of the Perl language.

[*]: Full disclosure: I am guilty of not offering to help in this effort. This is an oversight I hope to correct. This post is the first step in that process. Back to reading.

10 Replies to “Improving Perl’s New Programmer Outreach”

  1. I think the question should be: Why would someone new want to learn Perl rather than Ruby? To stay with your example and to assume people have limited time. So its an either/or. At least as the first language. What Perl based open source products are out there that people might want to imitate? What solutions does Perl provide that are remarkable? Which company brags about using Perl?

    Once there is an an answer, there might be more interest learning Perl that will provide a reason for the and other Perl Mongers to organize trainings and hack days.

    1. While the question of “Why would someone want to learn Perl?” is a good one, I think it’s better phrased, “Why would someone NOT want to learn Perl?”

      No, even that’s not right. The real question here is, “Why does it matter which language people use to learn basic programming concepts?” I believe that–for the most part–it just doesn’t.

      I suspect that the majority of the people who want to learn to program don’t go into it with a specific language in mind. They may not know enough yet to be able to recognize different languages (or even that there ARE different languages), let alone weigh the relative merits of each. They may know nothing more than that “programming pays well and it’s easy to get a job.”

      Basic programming concepts are basic programming concepts. They can be taught in any language and apply universally. A loop is a loop. A function is a function. Recursion is recursion is recursion. All that changes is the syntax which, once one groks the basic concepts, is relatively easy to learn. Yes, this is an over-simplification but I believe it’s still true.

      There’s a hierarchy of impediments which must be overcome for someone to learn to program (not all of these may apply to all people):

      * Having the personal need which learning to program could fill
      * Having the self confidence to start learning
      * Having the resources available to aid in learning

      It’s this third point where Perl seems to be falling flat. There are very few Perl-based beginning programming resources and training opportunities available, especially relative to Ruby, Python and Java. This is a large component of the answer to “Why would someone NOT want to learn Perl?”: It’s not even an option for them. “Want” doesn’t come into the picture.

      There is no reason why the Perl community could not and should not offer training in basic programming concepts. By doing so it could not only help people young and old alike to realize their dream of learning to program, it could also bolster its moribund public image. “What do you mean Perl is dead? Last year it released two major dot versions, added 300 modules to CPAN, 750 repos to github, and taught 8000 people how to program.” It’s hard to argue with a statement like that. In addition, the people who learn to program using Perl become evangelists or spokespeople for Perl. Some of them may even stick with the language for years.

      More new programmer outreach by Perl can only do good things for everyone involved. It wouldn’t be easy to get rolling but I believe it would be very much worth the effort.

  2. I’ve found this website very good for learning Ruby:
    Maybe something similar for Perl could help.

    Also, CPAN very muvh lacks reviews. It makes it hard to find what you need, compare it to other modules, and to trust it, without having to read the documentation of 10 candidate modules, and sometimes try several of them. I think reviews would really help.

    Moose only has 8 reviews, WWW::Mechanize::Firefox only 1, and both Test::Routine and Throwable don’t have any reviews at all after more than respectively 1 and 2 years of life.

    I often don’t think about it myself. I would like CPAN to send me an email after 2 months saying “2 months ago, you installed this module; do you want to review it? Here is a link : …”
    That could be as simple as “cpan install Module::Name -r” ( -r for Review, or Reminder)

    Another point if we had more Reviews, is their ageing. Some reviews are old and aim at earlier versions of the module. We could make them “lose value” over time. Nowadays, the “total review score” (the stars) that appears when i do a search, is the average of all reviews for this module. But Instead of using a simple average, we could use a weighted average where more recent reviews would have more weight.
    For me this is important : these little stars next to the module name make me feel confident that i’m making the right choice; that a module is reliable, up to date, and i’m not going to regret it.
    We can also probably figure out something so that new modules who don’t have many reviews, seem more attractive (to the research engine and to us) than old modules who don’t have many reviews.

    And also, more reviews saying: “check this other more recent module who does the same thing but better/a bit differently”. CPAN module authors should be encouraged to leave reviews on modules that they meant to “replace”, or “give an alternative to”.

    Any other ideas on how to get more reviews on CPAN?

    1. Getting more reviews for CPAN modules is orthogonal to the question of new programmer outreach by the Perl community. People need to learn how to use Perl before they can use CPAN. 😉

      The issue of CPAN reviews deserves a separate discussion. There are a number of questions which could be asked:

      * Do people realize that they can review CPAN modules?
      * Do people use the existing CPAN reviews?
      * If not, is it because there aren’t enough reviews to matter? That they don’t know the reviews are there? That they just don’t give a damn about reviews?
      * Is the process for leaving a review obvious and intuitive?
      * Is there some way to make it easier to review mods?
      * Is it even worth the effort? If the community doesn’t really care about the reviews then it may not be.
      * Etc.

      But, again, this is an entirely separate issue from the one set forth in this post.

  3. I have used Perl Scripts since they became available on the web in the 90’s. I, kind of, fell in love with an auction script called everyauction, written by Matt Hahnfeld. Not, because it was very revolutionary design, more, because there was an active User-Forum and there where Coders, willing to assist Perl-Newbie’s, when it came to enhance, edit or fix things. EA Script Logic was relativly easy to understand, even for Beginners, Perl, therefore, then was very popular as a Scripting Language for thousands of Scripting Kids.

    During the Years, Mentality changed. Today, on many forums, Newbies find less assistance, but more critic like ‘ badly written, start from scratch’, ‘buy a book on Perl’, or similar, not very useful ‘Expressions’ for someone, just trying to enter a NEW Scene…

    In addition to this, most Perl Coders seem to have little no skill with HTML Design. When it comes to present (modern) visual Results, most Perl based Sites look, compared with Automobiles, like 1951 Plymouths, Dodge’s or Nash’s. In short, far back, ugly, out. Any Product, regardless of it’s power, usability or quality, would fail to attract Customers or Users, if it would be ‘shown’ to the public in such ways.

    What Script could one recommend to someone eager to really find out how Perl functions – without the need of reading a book on Perl first? From what I have checked during all those Years, from what still exists, not much is left, newbie- usable or -managable.

    Firstgraders cannot be teached in ‘algebraic formulas’ before they even can count. Most EX-Firstgraders will never understand ‘algebraic formulas’, but they can count.

    If Perl shall be attractive again, it needs real Firstgrader-Forums again. And it needs Firstgraders-Software. Not simple crap, but solid and functional Scripts. Al that what , (language)competitor software offers. With such a base of knowledge, plus free, modern, easy to enhance, basic Software, Perl can make it again, playing an important role on Internet Servers.

  4. I strongly second Ernie’s idea that a popular perl application, with a well-documented plugin interface, provides a gentle and rewarding entry point for learning perl. It’s all about motivation and accessibility. You have a useful application out-of-the-box, peer support, and you see what can be done with a dozen lines of perl code. Then you think, hey, maybe I can do that. That’s the hook. Perl developers are very strong in writing reusable modules for other perl developers, which is great. But we need a modern perl application (extensible and documented) to catch popular interest, once again bringing the perl language to a larger “newby” base. Right now I can’t name a single application that fits that description.

Comments are closed.