I work on LangPop.com for fun. I make a tiny bit of money from the adsense there, but nothing much to speak of. Unlike the TIOBE folks, I don’t sell my data to anyone. So it can be a bit frustrating when people get all bent out of shape about the results. A case in point was my recent article here, entitled Python “Surpasses” Perl?.
In case the title wasn’t a dead giveaway, I’ll spell things out:
I was poking a bit of fun at the idea that any statistics of this nature could pinpoint, to a specific month, the moment when one language “passes” another. They’re way too fuzzy for that!
I point out that Perl is still quite popular. According to the Freshmeat metric I was reporting, Perl actually still has more code out there than Python.
And just to be clear: I don’t use Perl or Python or really care which one is more popular. I mostly use Ruby these days, with Tcl, Java, and bits of C thrown in for fun. In other words: langpop.com is not an evil conspiracy to discredit Perl.
However, I also had the temerity to suggest that Python might be a little bit more popular in terms of new things happening. Shock! Horror! Well, that certainly irritated some Perl users. They called my statistics lies, they misspelled my name (as well as the word “you”, which is a lot simpler than my name by any standard), and some of them went off on rants that were pretty badly off target (SourceForge is never mentioned in Langpop or this online journal!). However, not once did they really get around to answering my points, or proposing any sort of valid alternative metrics.
One of my favorite Linux/Free Software news sources, lwn.net published their 2009 predictions, and had this to say about Perl:
It will be a make-or-break year for Perl. If the Perl developers cannot either bring new life to Perl 5 or turn Perl 6 into something real, this language will, by the end of the year, have moved well down the road to “legacy” status.
As can be imagined, that set them off all over again. The mental image I get is a big angry bull, frothing at the mouth, and ready to stomp that damn red cape.
Here’s the problem, though, guys: the cape isn’t what’s holding you back. Trust me, I know.
Once upon a time, when people spoke of scripting languages, they talked about “Perl, Python and Tcl”. No Ruby, no PHP, although both existed. I happen to like Tcl a lot, and it measures much worse than Perl on all the popularity charts… worse than plenty of other languages, these days. Lately, I don’t use it so much, but once upon a time I dedicated a lot of mental energy to wondering why things weren’t going better. And in that community too, there were people who consistently held their fingers in their ears and yelled “LALALALA there is no problem!”. In the long term, it’s not an effective strategy: it makes everyone but the other True Believers think you’re going off the rails, because the evidence is plain to see that things weren’t quite like they used to be, that there are problems. And it doesn’t really address the problem in a constructive way, either. Long term, what works is to produce good code, and get it in people’s hands.
The most effective way of dealing with problems of this nature includes these points:
- Not froth at the mouth any time you perceive a slight to your technology of choice.
- Talk up the cool things you’re working on. Be positive, explain what’s new and exciting.
- Acknowledge reality. For instance with Perl (or Tcl), it’s plain to anyone that they aren’t as popular as they once were. Don’t deny it, but focus on the fact that they’re still widely used, and lots of new code is still written in them, and that they’re still the focus of a lot of work to improve them.
- Actually follow through. Jon Corbet’s (Linux Weekly News) point is not a bad one – you can have all the internal releases and milestones and general fun hackery that you want, but at a certain point, you need to get working code out in front of people. This is something Ruby seems to be suffering from these days too (as observed from afar) – lots of next generation fiddling, and tons of good ideas and energy, but to me there is a lack of technology actually flowing my way in a timely manner. With the possible exception of JRuby, which is making lots of progress and putting good code out there for people to use.
To conclude things, since the Perl guys were so unhappy with Freshmeat, here are some statistics from Amazon and Craigslist, comparing about a year ago with the most recent numbers:
As can be seen, both Perl and Python are dropping in Craigslist postings, but Perl is falling farther.
As a final footnote, I am sorry about this journal not accepting comments past a certain point (10 days is the cutoff) – otherwise I get 100’s of spam postings a day. Unfortunately, the software I’m using didn’t deal well with alerting people to the fact that comments were closed. I filed a bug, and they’re working on it.