A Diary From The European Perl Conference 2006
YAPC::Europe is the premier event for Perl developers and users in Europe. This year saw over 200 people come together in Birmingham, second city of England, to enjoy three days and four tracks of talks and discussions. I kept a diary of what I got up to over the three days of the conference and the day before it started.
Tuesday
After spending several nights sleeping in a tent at the increasingly muddy Greenbelt festival, I hopped on the train to make the hour's journey up to Birmingham. I hit the city about noon and, armed with The Directions provided by the conference organisers, started to wander my way through Birmingham. I was actually born in this part of the world, but it's been the better part of twenty years since I lived here and it's changed a lot since. It's a pretty nice city to be in these days.
After a small detour down the wrong street I found my cheap hotel, which is little over ten minutes walk from the city centre once you know the route, and got checked in. The room was very compact, but also very well thought out. I had no window, but I did have the Largest Plasma TV Ever showing me pictures from a camera outside to make up for it! Geekiest way to do a window, ever. More importantly, the wi-fi is free.
With last year's conference t-shirt on, in hope that somebody who knew me from the conference last year would spot me, I grabbed a burger and beer for lunch and went shopping. I ended up buying a book on linguistics and walking into a window at the Apple store, but other than that it was pretty uneventful. Then it was back to the hotel room to look over my talk for the next day. Turns out it was a bit too long, so a couple of slides were dropped.
Early evening came and I found my way to the Panama bar where registration was being held, and collected my conference t-shirt and bag. They had some nice stuff in there again this year - useful things like a pen and note paper along with the conference proceedings, but also fun stuff like sweets and a Frisbee.
I recognised various people from last year, and various folks recognised me. I said some quick "hello's" to leo from the
Parrot project and Aaron Carne from
The Register, but wound up spending much of the evening with a collection of other folks, including some guys from ARM. After indecisively browsing a few places to eat, we ended up at a pub having a bar meal, which was pretty good.
Back at the hotel, it was time for one last look over the next day's talk and then some sleep to be ready for the early start to the conference in the morning.
Wednesday
I arrived at the venue just over five minutes before the opening ceremony. Last year they auctioned off the language that the opening was to be given in, and in the end it was decided that it should be in English so we could understand it, along with a Japanese translation and Morse code. You can only imagine the confusion of anyone who hadn't been there at last year's conference!
After some administrative announcements and a showing of "The Birmingham Job" - a film made as part of Birmingham’s conference bid -
Larry Wall, creator of Perl, took the stage to give his keynote. This year his talk was not particularly technical, but instead he talked about the idea of family, the Perl community as a family and Perl as a child growing up. He noted that Perl is coming up on 20 and thus maturity, alluding to the forthcoming
Perl 6.
After Larry's keynote, Curtis "Ovid" Poe, from
The Perl Foundation, gave the second keynote. He talked about what The Perl Foundation did, the people who run it and requested feedback from the community on the work that the foundation was doing. Then it was time for a break and a chance to meet other people at the conference over coffee.
The first talk of the day on the Onion track was about
CPAN - the huge archive of Perl modules - and the tools that help you to use it. CPAN is an incredibly useful resource and has been described as the best thing that ever happened to Perl.
The second talk in the onion room was to be given by me. To a packed room, with people sat on the tables at the back, the floor at the front and even stood in the doorway, I delivered my talk entitled "Sorry, you're not my type". The talk, about type systems in many languages with some peaks into the Perl 6 type system, was well received and resulted in a number of questions. Quite a few were about Perl 6 roles, and I was glad to have Larry in the room to help clarify the odd point.
The last talk before lunch took a look at the
Ruby language from a Perl perspective. There is much that is nice about Ruby, and indeed a lot of good ideas from it have been adopted by Perl 6. It was not a Perl vs Ruby rant at all, just a reasonably fair comparison of the two. Lunch happened at a French restaurant with various folks I had met so far and took ages thank to the slow service. The food was OK though.
Returning from lunch, I saw a talk by chromatic, one of the authors of the book
“Perl Hacks", demonstrating some of the hacks from the book. He showed his work on developing a native calling interface for Perl 5, allowing the portable calling of C code from Perl without having to build a load of glue code first. Parrot, the VM for Perl 6, has supported this for a while, so it was nice to see the idea being back-ported as a Perl 5 module.
The talk of the day for me followed this. Allison Randal, unwell but still brilliant, delivered a talk on the
compiler tools that are being built to aid developers in writing compilers that target Parrot. She showed how PGE, the Parrot Grammar Engine, allows a single grammar to be written that deals with both tokenising and syntax analysis. The parser includes top-down (recursive descent) parsing and bottom-up parsing, the second being switched into when there is an expression with operators to parse and vice versa. It's a nice piece of design and makes getting from source code to parse tree fairly simple. The syntax is the same as that of Perl 6 rules, meaning this is a key part of Perl 6 too. She then went on to discuss TGE, the Tree Grammar Engine, which is used to perform transformations on the parse tree to turn it into an Abstract Syntax Treee, then a Parrot Opcode Sntax Tree, which will then be translated to Parrot bytecode. It allows you to describe the transformation to be performed on each node in the tree, reducing the overall complexity. This idea has been known for a while and is called an attribute grammar.
A break time of coffee and chat later, it was time for the final talks of the day. I went along to the
POE (Perl Object Environment) talk, which was about a system for running certain tasks at certain points in time and optionally distributed across many machines. The speaker described how a system managing thousands of machines had been built using POE, showing it scales impressively. I'm not sure I can think of an immediate use for it myself, but it's great to know that such a powerful framework is out there.
Finally, I listened to a slide-less and hilarious Marty Pauley talk about the
LISP programming language. LISP is a list processing language, and the programs themselves just happen to be lists as well, making writing a LISP interpreter or evaluator in LISP, or defining a new mini-language and evaluating that, fairly trivial. LISP is amazingly elegant because of its simplicity. To start out with LISP, Marty recommended
Scheme over
Common LISP.
After a day of great talks I headed back to the hotel to hack on the next day's slides, followed by dinner in the evening with a former type theorist. After wandering around Birmingham for over half an hour we found ourselves back at the first restaurant that we'd spotted and liked the look of and a much increased appetite, so we went inside and found a delightful curry house with nice views of the cannal. After dinner we headed back to the Jury's Inn bar, where I was stolen away from somebody trying to buy me a drink by leo, who wanted me to come and talk with Parrot hackers and answer some questions.
Back at the hotel I finally fixed up the next day's slides and got some rest.