Last night was the conference banquet. Whilst I had a good time, the local organizers took us to a big restaurant in Paphos Town. All fine, but we didn't get a separate room, but rather were sat in the same space as misc tourists. Again this would be fine, but ECOOP has a traditional of a banquet speech. This year the speaker is James Noble, and I was not alone in looking forward to his speech. (Those who know James will understand when I say that his speech could have gone in any direction!)
So James was made to give his speech when the band took a break and in front of all the tourists as well as us. This was really unfair, especially to James. The organization of ECOOP has been good - at least for me (although other people have niggles) - but this was a huge blunder IMO.
On to day three ...
Today started with a very interesting talk by Wolfgang de Meuter, who is this year's winner of the AITO Junior Award. He gave a talk on what he terms Ambient-oriented programming. What this means, as far as I can tell, is a form of distributed OO-programming. It's OO in the sense of Abadi-Cardelli-style objects (without the type system), and with mirror-based reflection. Wolfgang proposes a particular form of futures programming (and hence is heavily asynchronous - a good thing IMO). What was also interesting is that Wolfgang is a big fan of scheme, so he makes heavy use of closures.
It's probably worth looking up his language. I was trying to remember the section in the "C# joins" paper by Benton/Cardelli/Fournet where they code up futures in joins. I don't get the impression that Wolfgang is aware of much of the theory in distributed programming, so it would probably be worth figuring out where his work fits in the known literature.
The first technical session was interesting but let me mention Raymond Hu's excellent presentation about his work with Nobuku and Kohei on session programming in Java. Funnily enough I used to teach Raymond as an undergraduate at St John's College, Cambridge; so it's wonderful to see him doing first-class research, especially at my alma mater, Imperial College. Anyhow, in their work they have a simple session protocol language, and a session API, such that they can statically verify that the java code using the API adheres to the session protocol. Particularly impressive is that for their (admittedly micro-) benchmarks are very neat - they consistently out-perform Java RMI. Cool!
In the session after coffee Brian Chin gave a really nice talk about programming so-called "interactive applications" in Java. It turns out that there's a variant of the expression problem. He solved it some refactoring and actually implementing delimited continuations as a Java library. I want to take a look at this paper more carefully as I'm really interested to know how that can be done. Moreover it did occur to me that one might be able to do some of these rewrites with dynamic updates. Maybe.
After lunch we had the second talk of the day from Michael Ernst. He is an astonishingly good speaker - I need to learn from him. His second talk was way cool. He spoke about his immutability analysis for Java. It's a really nice analysis - it all boils down to graph reducibility. Their analysis is sound, complete, linear time, works for the whole of Java, deals with Generics,... wow!
ECOOP'08 finished with a very nice talk from Ewan Tempero on a study of the use of inheritance in a vast corpus of Java code. It does seem that most Java code uses quite a bit of inheritance, so perhaps some of the horror stories are not true! A good way to end ECOOP.
Now I get the rest of the day and tomorrow morning to relax in beautiful Paphos. Hurrah!