DEV Community

Juan Julián Merelo Guervós
Juan Julián Merelo Guervós

Posted on • Edited on

The Lion and the Butterfly and the Camel

So I just came back from the London Perl Workshop

This actually involved taking 6 trains from London to Heathrow because I am old and dumb. And also the Piccadilly line stopped right here for a little tiny while.
Next station: The boondocks. Corresponddence with the Middle-Nowhere line

The London Perl Workshop is about Perl.

If you want to know more about Perl check out the upcoming Perl 6 Advent Calendar and the corresonding Perl Advent Calendar. This morning the BBC was mentioning some weird advent calendars such as the Pork Scratchings calendar but somehow they forgot to mention that. Although we should definitely have something like that. The Perl Camel and Camelia Scratchings calendar, for instance. You can scratch anything, right?

Anyway. Perl6 seems to be a tiny thing right here, so I might as well talk about that for starters. It's a language that it's about inclusivity (which is the opposite of exclusivity) and diversity. Perl6 does not exclude any paradigm, it's got them all. It's concurrent and object oriented and functional and it does work with Unicode to an extent few languages do. Perl6 is still Perl, and both Perls are about getting shit done now. For instance, yhis 25 line program makes a BigQuery request for pull requests on both versions of the language, for instance. Took me like a couple of hours get the query right, and understand it, and around 10 minutes to process it to extract only the mentions to Perls and their rank.

use JSON::Tiny;

my @months_numeral =  "0" «~« (1…9);
@months_numeral.append(<10 11 12>);
my @months = <2015 2016 2017> X~ @months_numeral;
@months.pop;

my $fh = open "new_repos.csv", :w;
my $fh2 = open "rank.csv", :w;
$fh.say("Perl, Perl6");
$fh2.say("Perl, Perl6");
for @months -> $m {
    # Taken from https://stackoverflow.com/questions/41475499/how-to-measure-language-popularity-via-github-archive-data
    say "Querying $m";
    my $output = qqx{bq query --format json "SELECT COUNT(*) c, JSON_EXTRACT_SCALAR(payload, '\$.pull_request.base.repo.language') lang FROM [githubarchive:month.$m] WHERE JSON_EXTRACT_SCALAR(payload, '\$.pull_request.base.repo.language') IS NOT NULL GROUP BY 2 ORDER BY 1 DESC LIMIT 100"};
    my @ranking = from-json( $output );
    my @perls = @ranking[0].pairs.grep( { $^þ.values[0]{'lang'} ~~ /Perl/ } );
    my $year = $m.substr(0,4);
    my $month = $m.substr(4);
    $fh.say( "$year/$month, ", (@perls.map: *.values.map( { $^þ{'c'} } )).flat.join( ", " ) );
    $fh2.say( "$year/$month, ", (@perls.map: *.keys ).flat.join(", ") );

}
$fh.close;
$fh2.close;

This is the result, BTW.
Pull request rankings. I used it right in the talk I gave at the conference.

You can easily see the place in the ranking sliding to the mid-20s, with Perl6 going up and down like crazy, but never leaving the lower part of the top 100.

I was also kind of sad that nobody mentioned Perl in a recent question to The Practical Dev. It was not my first language, either, but it's the first language I learned a long time ago and have been using ever since.

You probably couldn't tell by attending this workshop. It was not as crowded as Oxford Street on a Saturday night
Crowd on the sidewalk
but still pretty busy, with three separate tracks and close to 200 people registered.
Wendy with all the Perl 6 books
Perl 6 was the (Rakudo) star of the conference, with many talks, including mine, devoted to it, and many books sold, including, yes, my book that's for those that know little or no programming at all.
Pile by the end of the day. Low due to mine being the best, or probably the cheapest

But how did it go?

You can check it out in the #lpw2017 hashtag. It went well. Details don't matter too much, but the organizers did an excellent job of accommodating talks at all levels and including other languages such as Go by Sue Spence or Rust or all of them. Perl community is open to all communities, and also to people baking stuff
The Great Perl Bake Off

We were well provided with pastries by the community, and also some sponsors which brought piles of pasteis de nata in the afternoon coffee. The fact that this conference, devoted to a widely disliked language, was so well attended, might or might not be a reaction to Brexit

Bollocks to Brexit, sticker on the university entrance

but the fact that talks were enthusiastic and knowledgeable and funny and amusing means that the future is probably brighter for Perl than we might have thought. The fact that there were four recruitment companies: Eligo, Perl Careers, CV Library and WCN too.

Why would you care

If you are curious, and want to get stuff done, you'd do well to check out any Perl. Perl 6 is probably better right now, but Perl 5 is in for major changes very soon that will make it faster and better. If you don't know where to start, just ask.

Top comments (1)

Collapse
 
surfshopcart profile image
Frank Jance

Would you please expound on the phrase "but Perl 5 is in for major changes very soon that will make it faster and better." This sounds really interesting, but I haven't read anything about this yet.

Thanks,
Frank