99 problems

http://xkcd.com/1171/

:)

More on Perl 7

This hype about Perl 7 is so amazing, and even resembles the time when Perl 6 was around the corner :-) It's extremely interesting to read new posts and comments. Sometimes I find there thoughts similar to mine that I had a few minutes before reading that.

A guy in Moscow.pm mailing list gave another bright idea (RU) of why the "7" would be useful. This will help in communication with a sysadmin when they say in response to a request to install a new version of Perl: Hey, there's Perl 5 on the server already, what do you want from me?.

I would like to dedicate a time slot in the schedule of this year's YAPC::Europe for an open discussion of Perl versioning :-)

Also, this will be the official YAPC::Europe 2013 T-shirt design:

perl7.gif

Perl I/O on scalars for 5.18

From perl 5.17.9, the following:

my $scalar;
...
open my $fh, "<", \$scalar or die;

will fail unless $scalar contains only code points 0xFF or lower - ie. they can be represented as bytes.

Perl's I/O will also treat the code points contained in the scalar as bytes - character \xA1 will be read as that byte, whether perl's internal representation is as UTF-8 or as bytes (or for the internals minded, whether SVf_UTF8 is on or not.)

Unfortunately in some cases this leads to a silent change in behaviour.

Perl 5, Perl 6, Perl 7, Perl 2013, whatever

It seems people outside our community sees Perl as an stalled language because we have not released a new mayor version for so many years. We have to do something to show them they are wrong, right?

Well, no, maybe the problem is ours, unable to see what we don't want to see: They are right. Perl 5 is stalled.

Stevan Little has already described the situation quite well on Perl is not dead, it is a dead end. The funny thing is that it is mostly the same view that started Perl 6 more than a decade ago. It still holds.

From my point of view the mayor problems with Perl 5 are as follows:

On Perl Names And Numbers

This was originally posted in response to this discussion on the p5-porters mailing list and similar discussions on blogs.perl.org. I am also reposting it here.

I started cooking a big editorial essay in my head, but I'm just going to try and boil it down…

So long as a fixed number ("5" in this case) is *prominently* attached to Perl, it will be seen as stuck. Specifically, it is stuck behind that thing called "Perl6".

You may understand the distinction between "Perl" and "Perl5" and "perl-5.16.2", but the rest of the world (including many developers) does not.

Others (notably Apple, Java, Mozilla) understand how to manage perceptions through names and numbers. We should learn from them.

Continuing the affiliation between Perl5 and Perl6 is harmful to both camps. Negative or false perceptions about either needlessly end up affecting both.

The Perl5 community must pursue its own best interests and cannot be held hostage by the name and number of another language.

Tapper @ FLOSS-weekly

Shameless plug.

We (renormalist & caldrin) were invited to Randal Schwartz' FLOSS-weekly to talk about Tapper - The all-embracing test infrastructure.

So have a look and learn what my favorite language and editor is... :-)

Renormalist

$3M says Perl5 needs a new major version number

Yesterday, Ovid started his discussion about moving the major version of Perl 5 to Perl 7. You know what else happened that day? Continuum Analytics won $3M from DARPA to undertake a huge renovation to NumPy. Three. Million. Dollars. Not for Python. For an extension for Python. Continuum plans to add all kinds of capabilities, but bear in mind that PDL already possesses at least one of those, namely built-in support for missing data. From the technical standpoint, we were already ahead, and somebody else won $3M.

NumPy is very well run, and very well organized, and there are many more libraries available for NumPy than there are for PDL. Those dollars are very likely to be well spent. I will not argue that this was a bad decision by DARPA.

But think about it. Do you remember just how amazing it was when Craigslist gave the Perl Foundation $100,000? Or when Booking.com gave the Perl Foundation 100,000 Euros? Now, multiply that by 30.

It’s the things we know that just ain’t so

chromatic:

Posting grand pronouncements about what Perl 5 has to become or the new name it absolutely must adopt won’t do anything. That’s irrelevant.

“What people manning the booths at non-Perl conferences say is the perception of Perl among those outside the echo chamber is irrelevant; I know the REAL problems Perl is having: they are the ones we think must be the reason based on our perspective from inside the echo chamber.”

If that still sounds rational to you, try a thought experiment:

“I don’t care what my profiler is telling me. That function does nothing important. I know where the REAL performance problem is, and it’s the one I’ve been thinking has to be optimised all along.”

Introducing Sah, another data validation framework

This blog post introduces Sah, my data validation framework (or data validation language and validator generator, to be more exact). The very first work on Sah began almost 4 years ago as Data::Schema. The name change to Sah and the first release of Data::Sah happened in late 2011.

To validate data, first you write a Sah schema. Sah schemas are also data structures and are very much similar to JSON schemas, except that they are more featureful and (at least to to me) more convenient to write.

The design and implementation principle are mostly laziness and DRY:

My Prediction

Yesterday's post has touched off the version number debate again and not everyone is happy about that. Ricardo Signes, the current pumpking, appears to have said no, we're not going to do anything. chromatic has also dismissed the idea immediately.John Napiorkowski is also opposed to it.

Meanwhile, Joel Berger seems keen on addressing this issue, Johan Vromans also seemed to dispute the notion that a new version has no benefit. And Peter Rabbitson, in response to the claim that a new version is akin to the Emperor's New Clothes (my words, not the original author's) wrote:

The problem (as I see it) is that while we as an echo chamber don't have anything new to offer compared to 5.10 (roughly speaking), the wider world never looked past 5.6. This is an effort to fix that (and only that). Did linux 3.0 have anything new to offer? We can even "blame Linus" for the reasoning behind such a jump.

Looking at all of this, I have a small prediction to make.

DC-Baltimore Perl Workshop 2013 - Presenters Wanted!

Greetings!

On April 20, 2013 we'll be having another DC-Baltimore Perl Workshop! Like last year, this will be a 1-day, 2-track conference celebrating all things Perl! The venue is very close to the train station in Baltimore, so it should be pretty easy to get to.

Now is your chance to submit a talk -- we're looking for either something you think is fun or interesting or useful for our main track, and tutorials for our second track. If you're looking to get some experience giving a tech talk this is a great way to do it... and for the tutorials we have some existing talks that you can build off of (or use verbatim).

You are of course invited to sign up as an attendee as well :) . And if you have any contacts who might want to be a sponsor (good advertising, helps a good cause) feel free to have them email sponsors@dcbpw.org for more info.

Come one come all! http://dcbpw.org/

On the version number succeeding Perl 5

Recently Ovid broached the topic of allowing a future release of Perl 5 with a version number greater than 6; this is not a new argument. He further explicated the problems:

I just got back from FOSDEM and heard, again, for the umpteenth time, that since Perl had 4 “major” releases (1,2,3,4) in its first few years and hasn’t had a major release since Perl 5 about 20 years ago, it’s clearly “dead”. I hear this every time I go to a conference that’s not dedicated to Perl.

Meanwhile, in the minds of, of, virtually every developer on the planet who’s not in our echo chamber, Perl 6 is, logically, the successor to Perl 5. Since even Duke Nukem Forever managed to get released prior to Perl 6, Perl 6 just isn’t being taken too seriously be many devs. In other words, they think Perl 5 is dying and its successor is DOA.

I agree with him. As I commented:

German Perl-Workshop 2013 - Sponsor think project!

We're glad to announce another sponsor for the German Perl Workshop 2013 in Berlin:
think project!

Thanks!

Company description in German:

Die internetbasierte Projektplattform think project! wird in 40 Ländern
von namhaften Bauherren, Projektentwicklern, Projektsteuerern, Bauunternehmen sowie
Architektur- und Ingenieurbüros eingesetzt – bis heute in über 5.000 Projekten mit mehr
als 90.000 Benutzern. think project! vereinfacht die Zusammenarbeit in Projekten, sorgt
für eine lückenlose Dokumentation und kann direkt über das Internet genutzt werden.

think project! unterstützt ein effizientes Projekt-, Informations- und
Risikomanagement und hilft so, Zeit und Kosten zu sparen.

think project! setzt bereits von der ersten Softwareversion an auf Perl.
In mehr als 14 Jahren wurde diese Entscheidung immer wieder bestätigt, da Perl und CPAN
für die gestellten Anforderungen immer die geeigneten
Lösungen bieten.

Perl 7

At the risk of starting a massive flame war, I have only one question: what are the pros and cons of releasing Perl 5.20.0 as Perl 7.0.0?

Swiss Perl Workshop - Damian on Board


If you are in the area on March 22 and need another reason to come to Swiss Perl Workshop 1, here it is...

Ladies and gentlemen, we are very pleased to announce that Damian Conway will be attending our first workshop in Switzerland as a speaker, participant, and godfather!

Damian is well known for his talks, his modules (I am happy not to have run this post through Acme::Bleach), and he was also the winner of last year's YAPC::EU "The Speaker I Missed Most" contest.

Damian will be giving two talks during the day, only one of which (he promises) will be brain-meltingly weird.

You can sign up for SPW1 here.

New Classes premiering in Zurich next month

I'm delighted to announce that, once again, I'll be teaching in Zurich...next month. My good friends at Oetiker+Partner and the amazing team at Eidgenössische Technische Hochschule Zürich ("ETHZ" to its friends) have organized four days of Perl and presentation skills training, to be held on March 18-21 (just before SPW1).

I love teaching in Zurich. I enjoy the city itself, of course, but the real attractions are the remarkable people who come along to the classes there. They're invariably smart, motivated, humorous, practical, and challenging: a joy to teach.

For that reason alone, over the past few years almost every new class I have created has debuted in Zurich. And this year is no different...

Making the case for better Perl articles

In the past few days Paul Venezia has written a pair of articles for InfoWorld repeating the familiar poorly supported "Perl is dead" nonsense. The articles can be found here (I'm not going to link to them, as I don't want to drive traffic to poor reporting):

  • http://www.infoworld.com/d/data-center/perl-isnt-going-anywhere-better-or-worse-211580
  • http://www.infoworld.com/d/data-center/making-the-case-perl-212077

I decided to write up my response here, as it got a bit long for a comment on their site. Consider it an open letter to people writing about Perl based on poor research or outdated information.

Mr. Venezia,

I'm not surprised that you received some responses that disagreed with your article, nor that some of them were a bit blunt with their disagreement. I know I personally considered responding, although I eventually decided it wasn't worth my time.

German Perl-Workshop 2013 - Call for Participation

Here is the official Call for Participation:

From March 13th to 15th the 15th German Perl Workshop will take place at the Betahaus in Berlin.

Converting to Dist::Zilla

I’ve converted a number of distributions from $something to Dist::Zilla for release management, and every time I forget something … so this time I’m making notes as I go along.

Worst case, future-me will thank present-me (or will that be past-me?)

What follows is the transition for WebService::NotifyMyAndroid. It might have a couple of places where common sense needs to be applied, but it’s ‘good enough’.

Prerequisites

I’m assuming you’ve already got a perl distribution and that you’re managing it with git.

I’m also asssuming you already have Dist::Zilla installed.

Custom dist.ini

My distributions are minted using this file as a template for dist.ini.

Let’s Go!

Just to be safe we’ll work from anew branch based on our current master:

git checkout master
git pull --rebase
git co -b dzil master

Now we’re ready to rock and roll!

Create our dist.ini

But what goes well with DBIx::Class?

Looking forward to Dave's PerlSchool on Saturday. I was satisfied with the format of his Moose school and found myself going back through the notes for how to set a default hashref for an attribute. Got me thinking of how I could really use a cheat sheet. There's a lot of documentation for Moose, certainly enough to get you started, but it saves time if somebody sits down and organizes the information into a flowing story with just enough examples to suggest some use cases. At the other extreme, when I wanted a quick answer to a simple question, sifting through 15 perldoc pages or 165 slides was less satisfying. I've got an idea for an A4 cheatsheet with every possible option which I've started in a GoogleDoc. When it's half-decent, I'll post for comment.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.