Italian Perl Workshop 2008

I went to my 3rd Italian Perl Workshop, href="http://conferences.yapceurope.org/ipw2008/">IPW2008 at the end of
last week. It seems to have been the most successful Italian conference to
date, and it certainly succeeded at being both a national workshop and an
international event. It hadn’t occurred to me before that these are actually
two orthogonal aims.

An international event

The organizers managed to pull out all the stops with sponsorship. There’s
always various random swag, books for the auction, cheap/free use of rooms from
the University. And in recent years, the conference has had just enough money
to be completely free of charge, even with its (excellent) coffee and biscuit
break. But this year, the href="http://conferences.yapceurope.org/ipw2008/call_sponsors.html">
“platinum”, “gold” and “silver” sponsors contributed enough money to pay
travel and accomodation for speakers of international calibre:

  • Tim Bunce
  • Rafaël Garcia-Suarez
  • Marcus Ramberg
  • Matt Trout

Other international attendees included Michel “XML::Twig” Rodriguez (though he
lives in nearby Lucca and spoke in Italian); Bruno (a Pole who lives in
Spain… or Amsterdam or something… I’m confused, especially as to why he
attended the Pisa workshop :-); a bevy of Norwegians from Opera’s HR
team; and another Norwegian expat who was completely unrelated; an Indian
postgrad studentessa; and me, I guess.

Hmmm, 4 Norwegians, 3 Brits, 2 French. I wouldn’t have expected quite that
many Norwegians, largely because I’d never have thought that Opera, based in
Oslo, would have been recruiting at a workshop in Italy. But it’s on their
“world tour” as several of the core Perl team for their social network are
Italian. And they really capitalised on the opportunity, sending 3 perlisti
and 2 HR, all of whom were very visible throughout, sponsored a competition
for a Wii, and hired an interview room for recruiting sessions during the
workshop. I’ll be really interested to see how successful they, and the
other recruiting companies (Wind, Dada, A-Tono) have been. It’s very positive
that Italian companies using Perl are getting involved like this.

Oh, the talks! Matt spoke about Devel::Declare, which rocks. I finally
got to see Tim Bunce’s Perl Myths talk in the flesh, and also his demo of
Devel::NYTProf which is so beautiful it makes me want to cry. Marcus
introduced Catalyst, and I missed the others, for various reasons.

A national event

There’s a danger that the focus on the exotic allure of geeks arriving by
luxurious Ryanair jet could distract from the fact that this is also the event
for Italian programmers. Having two tracks, and a general policy of not
scheduling 2 “guests” against each other worked very well here.

The first day’s Italian talks concentrated on beginner and intermediate
topics, including dakkar’s tutorial and regex theory, and Flavio Poletti on
writing IRC bots, though there was some crossover, as rgs also presented on
coding style in English. The perl.it guys are really keen on appealing to new
programmers, which is fantastic. (There was a little gnashing of teeth about
how the recent Pycon in Italy had even more attendees despite being a younger
conference.)

Not that it was all for beginners: emi spoke about Linux wifi captive
portal setup; emazep showed a fantastic UI for constructing complex DB queries,
running on Catalyst with jQuery; grubert presented a news portal prototyped in
2 months with the awesome power of CPAN; [LucaS] finally presented his
workgroup software IGSuite, yay! Cosimo spoke about scaling and the Dogpile
Effect at Opera. Sadly I missed the “GUI track” completely with Mattia Barbon,
the author of WxPerl, and nids talking about Perl/TK. And finally I had to
give an emergency talk myself to fill in a gap (went OK, trailed off towards
the end).

More info

IPW2008
slides
and
photos
are already being posted, and larsen is collating blog posts to link to from
the main perl.it page.

Comments

  1. Programmer says:

    Why would you be surprised that a meeting for a more modern reasonably designed language had more attendees then a meeting for an old obsolete one?

    Perl is just a legacy language these days. Same status as COBOL in the 90′s. No reason at all to do anything in that language as absolutely everything it can do is easier, more readable, etc. in something more modern (e.g. Python, Ruby, etc.)

  2. osfameron says:

    > Why would you be surprised that a meeting for a more
    > modern reasonably designed language had more attendees
    > then a meeting for an old obsolete one?

    Python (1991) is indeed slightly more modern than Perl (1987) though I’m not sure that those 4 years really give it that much advantage, given that both languages are constantly evolving :-) After all, if we’re measuring strictly by years then another 4 years takes us to Java (1995)…

    I do hope I didn’t give the impression that the workshop wasn’t well attended by people from Italy and the rest of Europe, full of interesting talks, people showing off exciting new web applications, and successful companies recruiting for staff or mindshare ;-)

  3. Programmer says:

    I don’t mean modern in the since of younger. I mean from a design perspective. For example, Perl has a slightly better OO system then C (!!!). It also has dynamic scope as the default even know it has been know that is a wrong default for decades. Perl seems to be an exercise in ignoring correct language design and it shows.

    So from that perspective I consider Python, Ruby, Lisp, Smalltalk, Haskell, Ocaml, Erlang, etc., etc. more “modern” then perl. The ideas are more modern.

  4. osfameron says:

    Programmer: yes, I know that Perl contains a lot of warts and misfeatures and has a lots of history and baggage. But do you believe that it hasn’t changed and improved since then?

    - “Perl has a slightly better OO system then C”. The default system is surprisingly malleable, and it’s simple enough that it’s possible to build something *much* better. See http://moose.perl.org/ for example.

    - “It also has dynamic scope as the default even know it has been know that is a wrong default for decades”. Yes, there is dynamic scoping in Perl, but it’s widely deprecated. See Dominus’s http://perl.plover.com/FAQs/Namespaces.html for example. And our lexical scoping is very good (possibly better than Python’s? see http://www.paulgraham.com/icad.html)

    - Lots of other stuff is deprecated: like formats (see Text::Reform instead). Yes Perl has warts, but we know about them and encourage people not to use them.

    - “Perl seems to be an exercise in ignoring correct language design”. Perl actually seems to be quite bad at ignoring anything from other languages… Lispy features? we have map/grep/List::MoreUtils. Smalltalk/CLOS? see Class::MOP and Moose. Haskell? OK, got me there, but some of my blog posts look at how far we can push Perl in that direction, and it’s not as bad as you might think. Erlang? we have lots of work on concurrent processing: POE, Gearman, TheSchwartz, MooseX::Workers, IO::Lambda, just off the top of my head.

    I’m absolutely *not* trying to suggest that Perl is “better” than the languages you mention, but where there are things to learn, the Perl community rarely refuses to learn them.
    This may lead to Perl being quite a big language, with lots of traps for the unwary, which would be a good point about Perl’s design (just not a point you were making).

    By the way, I’m guessing you are a Python programmer: if you’d like to continue the discussion, we could so at http://greenokapi.net/blog/2008/09/25/some-thoughts-on-python/ where I say some nice things about Python (and that’s great, because there’s stuff we can steal from it!)

  5. Programmer says:

    I know changes have been made, but the whole language in general misses the boat.

    C also has a “malleable” object system in that sense, as does Lua and so on. But none of these can accomplish what Lisp CLOS does.

    I know people advise you not to use dynamic scoping, but it’s *still* the default. For a language that claims the most common thing is the default why do I always have to qualify variables in perl and not in python?

    It has taken some features from other languages but seems to usually misunderstand them and end up with odd implementations because of this.

    And yes, Perl has over 400 keywords. Second only to COBOL afaik. Not to mention the context stuff (which gets even *more* complicated in Perl 6!), odd behavior functional programmers get because Perl *still* doesn’t have reasonable list handling (e.g. if you do a reduce that would produce a list of lists in a function language, perl unexpectedly auto-flattens it since perl can’t do a list of list, you would have to use pointers [oddly called "references" by perl people] to get a list of lists).

    I actually don’t like any of the script languages. From what I have seen the script languages seem to be based on misunderstanding something: Larry Wall doesn’t get OO (as is obvious in some of his comments about it), Guido doesn’t get functional programming at all, and Matz just doesn’t get it in general. :)

    My favorite languages are Lisp and Smalltalk, with the runners up; Haskell, Erlang and Ocaml.

    What I want to see is all developers moving to the best languages that exist, and dropping all the inferior ones (i.e. the scripting languages, C/C++/C#/Java, etc.). Until this happens our profession is always going to be the disaster it is today. As long as people get religious about languages instead of objective, progress is going to remain much slower then it could be.

  6. osfameron says:

    I believe that Perl inherits dynamic scoping from your favourite modern language, Lisp ;-) Also, bear in mind that under ‘use strict’, you declare lexicals with ‘my $var’ which is shorter than the ways to access dynamically scoped package variables (local/our/use vars/$Fully::Qualified::varname).

    Perl does indeed have a lot of predefined functions: more than half of those are Unix syscalls or deprecated features, but ok, the point remains that Perl’s a big language, and it has warts: context is alternately convenient and frustrating. $_ is a hack around not having generalised currying, etc. etc.

    But this comment thread, fun as it is, doesn’t really relate to the original point of the blog post: Perl is fun, it’s got a vibrant community, people are doing interesting things (web apps on the one hand, crazy syntax hacking on the other) with it, and major companies are actively recruiting for it.

    And finally, given that you mention religion, I may as well take the opportunity to pimp the rest of this blog and point out that I sometimes write about other “modern” languages like Python and Haskell too :-)

  1. [...] is a constant meme that Python is somehow more “modern” than Perl. This is almost never qualified, I remember in this interesting book on programming language design [...]

  2. [...] for this year’s Italian Perl workshop are hotting up, and it’s looking like it might even top last year’s event. I’ll just focus on the international track (in English) here: we’ve already got some great [...]