(Apologies for the title: it is my punning tribute to Professor Emeritus Peter Wegner, who was a special guest at the ECOOP banquet this year.)
Last week was a bit different. Since my boss was the Organising Chair, I was given the opportunity to be the only conscripted student volunteer at the 19th Annual European Conference on Object-Oriented Programming (ECOOP). Never having been to a conference before, I was somewhat nervous about the proceedings, but it turns out that I needn't have been. Herewith, a day-by-day tale of my week:
On Monday, it was to the SECC for 8am to help set up for the tutorials. Of the ten concurrent workshops and tutorials, in the morning I was able to attend Steven Kelly's tutorial on Domain Specific Modelling. The demonstration of meta-CASE software left me impressed by the technology, but I wondered if there is possibly a better way to perform code-generation than gratuitous use of string literals. (Perhaps not in the most-general case, but it seemed—from the time-constrained treatment they received—that we lack patterns for code generation.)
After lunch in the Moat House Hotel, it was back for another tutorial: this time Jeremy Gibbons on design patterns in datatype-generic functional programming. The first half of the tutorial passed as a straightforward refresher on second-year Haskell; unfortunately, I found the second half (on the meat of datatype-genericity) rather inscrutable. The take-away message of the tutorial was this: Haskell already lets us parameterise by type, so we can have lists of any type, trees of any type, and so on. Datatype-genericity goes one step further, allowing functions to be parameterised by the datatype, i.e. that which works on a list can work equally on a tree. How this is achieved, and how this relates to design patterns as I understand them, I am less sure.
The Monday evening saw a reception for all conference attendees in the Glasgow Science Centre. Having been to one of these many years ago (when I met Heather the Weather!), the free wine made a refreshing difference. Afterwards, it was to The Goat for some ill-advised tequila.
After the intense activity of Monday (social, intellectual and metabolical), Tuesday was rather more sedate. Under the instruction of ex-DCS lecturer, Dr. Tony Printezis (did you know that he's also at the right end of a certain list? He certainly does!) Most of the day, however, was spent wrestling with installing Fedora Core 4 onto some ex-DCS computers. They've been pretty badly treated, and half of them were kaput in either the CD-ROM, video card or both. One had a copy of a recent IM2 exercise protruding from the CD-ROM… it subsequently failed.
Wednesday saw the beginning of the technical paper sessions. Unfortunately, I knew too little of Aspect-Oriented Programming to make much sense of the presentations thereon, though I've resolved to read up on it (and I can already see some potential uses in my own work). Betrand Meyer's invited talk as the senior winner of the inaugural Dahl-Nygaard prize was rather interesting though, concerning methods of statically eliminating null-pointer exceptions in Eiffel code. The main thing I took away from his talk, however, was the following quote from Kristen Nygaard:
In a research team the function of the executioner is important. The
executioner in this context is a person (or persons) trying to kill ideas
that are not robust enough. In many teams a new idea is cherished, cuddled
and shielded so it may grow. Grow up to become a weak attenuated result or
finding, being alive only through the fierce protection by its parents. New
ideas should be confronted with the executioner, with cruel attacks, with
subtle attempts to prove them faulty or useless. Ideas surviving such a
fight are worth building upon.
I think this will help me to rationalise any future brutal project demonstrations or presentations!
Before Bertrand's talk, I was privileged to meet the aforementioned Professor Wegner—a leading light in object-oriented programming—whose very attendance at ECOOP was a miracle. In 1999 (at the age of 67), he had been due to deliver the banquet speech at ECOOP in Lisbon that year, but he was knocked down by a bus in London en route to the conference. He was given a 10 per cent chance of survival and a 5 per cent chance of retaining the use of his brain. Remarkably, he defeated both of these odds, and was able to attend ECOOP 2005 as a special guest at the banquet. Given his pre-eminence, I was particularly touched that he showed an interest in my research, nascent though it is.
On the Wednesday evening, we went to the City Chambers for a civic reception in splendid surroundings. More free wine and vol-au-vents, and a speech from Bailie Alan Stewart welcoming us to the city. ("What language is he speaking?" asked one of our overseas visitors. "Broad Glaswegian," was the only answer.) After that, a large crowd of delegates and volunteers headed to Pizza Express, and thence to Bar Ten on Mitchell Lane. Unfortunately, our visitors from Leuven were unable to purchase Stella Artois there.
Thursday had the best of the paper sessions from my point of view. As the junior winner of the Dahl-Nygaard prize, Gail Murphy's invited talk on The Emergent Structure of Development Tasks, and how that may be used to improve the use of development tools, such as Eclipse, was rather interesting. The language design session was my favourite, since it had two talks regarding Microsoft's Cω, which I think should make C# 3.0 a very interesting language indeed. Unfortunately, I missed Amy Williams' paper on Static Deadlock Detection for Java Libraries, which I gather was particularly impressive.
Thursday night was the banquet, and I didn't have a ticket. However, as a student volunteer, I was entitled to come along to The Arches at 8pm, and go on stand-by, as it were, for any empty seats. Thus it was that I dressed in my finest (only) suit, and things looked good for getting a seat: six no-shows at the start of the meal. The pre-dinner surprise was a falconry display, made all the more impressive by the constrained setting. We were treated to the sight of both a falcon and a Bengali owl flying up and down the room, and around some brave volunteers. The pièce de résistance was the appearance of a massive bald eagle, born in Scotland.
After the birds had gone off to their beds, I was still in a seat. Then the latecomers arrived. As paying customers, they had more right to a seat than us as freeloading volunteers, so it came down to a coin-toss. I called it right, and kept my seat. (Those who didn't weren't thrown out on their ear, however, as Peter treated them to dinner in the main restaurant. I gather they got better food.) The meal was a well-lubricated feast, and damn enjoyable too. Afterwards, The Garage was ill-advised, messy and thorougly necessary.
See above for why I slept in on the Friday, but I made it in nevertheless. I didn't see any of the technical talks, unfortunately, but I did see Peter's closing address, in which he thanked just about everyone who made the conference possible. Having seen but the tip of the iceberg of work that he's had to do to make this conference a reality, he deserves the biggest vote of thanks.
Aside from the technical content, which has given me much to consider, one of the best aspects of the conference was social. I met a lot of great people at ECOOP, and made some good friends too (especially Dora, Na'ama, Oliver and Steven). Without these guys, it wouldn't have been half as enjoyable. If you ever get the opportunity, I'd recommend student volunteering at a large conference. Unfortunately, it's too late for OOPSLA '05, but there's always next year….