Day 2 started off with an invited talk from Akinori Yonezawa who is this year's winner of the AITO Senior Prize (last year's winner was my manager, Luca Cardelli). This talk was okay but a little disappointing in that Aki decided to give a "my research career in an hour" talk. It was kind of interesting, but naturally nothing was treated in depth. One big point was that his invention "concurrent objects" (interpreted VERY broadly) are used in Second Life. This is cool although it wasn't at all clear that the Linden guys did this knowingly; more that in a massively parallel world with objects - the objects have to migrate. Its obvious, so you do it.
I started off the next session with a talk on UpgradeJ. Unfortunately, this was not the best talk I've given - I ran behind schedule and didn't get my "5 minutes to go" warning, but rather only got the "1 minute to go" warning! Yikes. I had to skip quite a bit. Most of it was skippable, but I had to rush the description of evolution upgrades - which is a shame as it's the really interesting bit of the paper :-( Oh well. I have had a lot of questions through the day, so perhaps things aren't so bad. Sophia mentioned that she may try to get a project student to implement UpgradeJ which would be wonderful!
Donna Malayeri followed me with a sensational talk about combining structural and nominal types. I hadn't seen the ECOOP version, so I didn't know quite how expressive her system is. It's very nice indeed. She also got some of her dislike of Java out of her system - therapeutic I'm sure!
Anders Hessellund wrapped up our session with a neat talk about problems with real-world enterprise systems. It turns out that many of these systems are built with lots of XML "meta-data", and bits of Java that attempt to adhere to the meta-data, and provide BI. Of course, the way the Java code is produced is so horrible that it isn't checked that the code adheres to the design. Anders and Peter Sestoft have built some tools employing fairly simple data- and control-flow analyses to verify the code. Interestingly, there is some tension between precision and soundness. Given that they are dealing with real-world code they worry more about precision, so their analysis is both incomplete and unsound (but useful!).
After the coffee break, I went to Gilad Bracha's tutorial on Newspeak. I heard about this in FOOL in January, so there was a big overlap. But they seem to be making progress. Gilad did mention that they were interested in an optional "pluggable" type system (he put it thus: "It's a priority to us, just the lowest priority"!).
After lunch I went to the "hardcore theory session" (as someone mentioned over lunch). In particular I enjoyed listening to Anindya Banerjee talking about his work with David Naumann and Stan Rosenberg on their "regional logic". This is very nice. He motiviated their work using the subject-observer pattern. Their approach is very reminiscent of what Matthew and I did in our POPL'05 paper - using a set of observers, O, etc. However, they don't use separation logic, but rather effects and regions and some other operations. It's all very nice (they won a best paper award). However, I still think that the logical approach is more precise than using effects/regions. We need more experiments I guess.
Another great day. I'm off to grab a shower before the bus takes us to the conference banquet - should be fun!