Perl, Haskell, stuff
I went to my 3rd Italian Perl Workshop, 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.
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 "platinum", "gold" and "silver" sponsors contributed enough money to pay travel and accomodation for speakers of international calibre:
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.
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).
Osfameron's blog on Haskell, Perl programming, stuff.
Programmer
September 24th, 2008 at 9:14 pm
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.)
osfameron
September 24th, 2008 at 9:39 pm
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 ;-)
Programmer
September 25th, 2008 at 7:02 am
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.
Some thoughts on Python - Just another lambdabananacamel,
September 25th, 2008 at 7:27 am
[...] 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 [...]
osfameron
September 25th, 2008 at 7:50 am
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!)
Programmer
September 25th, 2008 at 10:01 pm
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.
osfameron
September 25th, 2008 at 11:50 pm
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 :-)
News on IPW2009 - DBI, Perl6, Javascript and… Dave Rolsky? - Just another lambdabananacamel,
June 21st, 2009 at 11:58 pm
[...] 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 [...]