Not this…

April 12, 2008

TIOBE or not TIOBE - “Lies, damned lies, and statistics”

Filed under: software — TimBunce @ 12:58 am
Tags: , , , ,

[I couldn't resist the title, sorry.]

“Figures often beguile me, particularly when I have the arranging of them myself; in which case the remark attributed to Disraeli would often apply with justice and force: ‘There are three kinds of lies: lies, damned lies, and statistics.
- Mark Twain

I’ve been meaning to write a post about the suspect methodology of the TIOBE Index but Andrew Sterling Hanenkamp beat me to it (via Perl Buzz).

I do want to add a few thoughts though…

The TIOBE Programming Community Index is built on two assumptions:

  • that the number of search engine hits for the phrase “foo programming” is proportional to the “popularity” of that language.
  • that the proportionality is the same for different languages.
  • It’s not hard to pick holes in both of those assumptions.

    They also claim that “The ratings are based on the number of skilled engineers world-wide, courses and third party vendors” but I can’t see anything in their methodology that supports that claim.
    I presume they’re just pointing out the kinds of sites that are more likely to contain the “foo programming” phrase.

    Even if you can accept their assumptions as valid, can you trust their maths? Back in Jan 2008 when I was researching views of perl TIOBE was mentioned. So I took a look at it.

    At the time Python had just risen above Perl, prompting TIOBE to declare Python the “programming language of the year”. When I did a manual search, using the method they described, the results didn’t fit.

    I wrote an e-mail to Paul Jansen, the Managing Director and author of the TIOBE Index. Here’s most of it:

    Take perl and python, for example:

    I get 923,000 hits from google for +”python programming” and 3,030,000 for +”perl programming”. (The hits for Jython, IronPython, and pypy programming are tiny.) As reported by the “X-Y of approx Z results” at the top of the search results page.

    Using google blog search I get 139,887 for +”python programming” and 491,267 for +”perl programming”. (The hits for Jython, IronPython, and pypy programming are tiny.)

    So roughly 3-to-1 in perl’s favor from those two sources. It’s hard to imagine that “MSN, Yahoo!, and YouTube” would yield very different ratios.

    So 3:1 for perl, yet python ranks higher than perl. Certainly seems odd.

    Am I misunderstanding something?

    I didn’t get a reply.

    I did note that many languages had dipped sharply around that time and have risen sharply since. Is that level of month-to-month volatility realistic?

    Meanwhile, James Robson has implemented an alternative, and open source, set of Language Usage Indicators. I’m hoping he’ll add trend graphs soon.

    January 30, 2008

    Perl and Parrot - Baseless Myths and Startling Realities

    Filed under: perl — TimBunce @ 3:47 pm
    Tags: , ,
     
    I was recently invited to speak at the Irish Web Technology Conference (26-29 May in Dublin). I’m used to preaching to the converted but this would be the first time I’ve spoken to a (presumably) more sceptical audience. I agreed speak but haven’t yet been asked to provide an abstract.
     
    Around the same time I saw a call for participation for XTech (6-9 May in Dublin). So I figured I’d submit a proposal. I’m guessing the audience would be similar so I could develop a single talk for both.
     
    Here’s what I came up with in the last hour before the deadline: 
    Perl5:
    • Perl5 isn’t the new kid on the block. Perl is 21 years old. Perl5 is 14 years old.
    • Perl5 hasn’t been generating buzz recently.
    • Perl5 has just been getting on with the job. Boring but true.
    • Lots of jobs, in fact. I’ll show you the surprising scale of the Perl jobs market.
     
    Massive Module Market:
    • Vibrant developer community
    • Over 14,000 distributions (53,000 modules) with over 6,400 ‘owners’ (lead developers).
    • Thousands of releases per month to hundreds of modules.
    • CPAN has over 360 mirrors in 51 regions (TLDs)
    • Automated testing applied to all uploads by the CPAN Testers Network: 61 different platforms and 20 different versions of Perl.
    • I’ll take you on a lightning tour.
     
    Perl5.10:
    • Five years after Perl5.8, Perl5.10 is now out.
    • Packing a powerful punch for power users.
    • I’ll show you the highlights.
     
    Parrot:
    • An advanced virtual machine for dynamic languages.
    • Advanced capabilities with blinding speed.
    • Already supports over 20 languages.
    • I’ll give you a quick overview.
     
    Perl6:
    • A new generation of programming languages.
    • Advancing the state of the art in powerful practical languages.
    • specification not an implementation.
    • Multiple implementations exist already.
    • Generating code for multiple backends: Parrot, Perl5, Lisp, JavaScript.
    • Sharing a common test suite of almost 20,000 tests.
    • Perl6 is written in the best language for the job: Perl6!
    • I’ll demonstrate Perl6 code for you.

    And I’ll do all this in 40 minutes. Fasten your seat-belts!

     

    The IWTC session is 75 minutes so I figure I can write a good presentation by the end of February for that and then distil the essence down to the 40 minute session I (hope to) have at XTech in May.
     
    I’d welcome any comments on the abstract. Especially anything worth saying, or ideally showing, to a relatively perl-sceptical audience.
     
    I don’t want to get into a  language comparison debate. Perl can stand on it’s own. But I do want to show that for any cool gizmo that language Foo has, that Perl has something similar. An obvious example is “Ruby has Rails, Perl has Catalyst (and others)”. That’s easy to say but doesn’t carry much weight. For each of those I’d really like great example.
     
    For Catalyst a big-name-web-site built using it would do. Other cool gizomos need other killer examples. Got any suggestions?
     
    Looking at it the other way, perl has a few cool gizmos that might be worth a mention if time allows: perltidy springs to mind. What others can you think of? And what parallels do they have in other languages?

    Blog at WordPress.com.