Friday, August 01, 2008

ECOOP day 3

First paper of the day was "Programming with Live Distributed Objects". I used to be quite into distributed programmer, so I was interested to hear this talk. I have some interesting looking notes which I will put here verbatim:
everything is a live, distributed object
eg naming
composition is fundamental
compatible end points is the most important relation, basis for subtyping
constraints on endpoints
parameterised types, XML
Unfortunately, I can no longer remember what any of it means (it has been almost 3 weeks since the talk), perhaps I will edit this once I read the paper and remember how it all works, but I wouldn't hold your breath.

Ray (Hu) from Imperial gave his talk on "Session-Based Distributed Programming in Java". They have implemented session types for Java and it all seems to work very nicely. Session types are cool and their use of them in Java seems to work very well, and they got good benchmarks. It is nice to see static typing used to verify something like distributed protocols, it just seems to make really good sense!

I'm afraid I missed "ReCrash: Making Software Failures Reproducible by Preserving Object States", which I wanted to see, so another paper to push onto the stack.

Next up in this session was "An Extensible State Machine Pattern for Interactive Applications". I started off understanding a lot and thinking the problem was quite easy. It reminded me more than slightly of work we did on StateJ (although they didn't mention us :-( ). They have a problem with interactive, stateful applications that is similar to the expression problem. Their solution seems to involve refactoring in some factory methods. I would have thrown some virtual classes at it and given my usual sales pitch about how nice and elegantly it would all work, but each to their own. Then they started talking about interrupting events and delimited continuations and I'm afraid I got a little lost, but I was motivated to read the paper and understand it.

Probably the most useful idea at the conference, "Practical Object-Oriented Back-in-Time Debugging" did just that, they have a back in time debugger for Java that works with realistically sized programs. If I did any programming I would want their tool! In terms of implementation the key idea is that they keep all of the _relevant_ history, and let the garbage collector get rid of the rest. Seems like a neat idea now that someone has done it!

The last talk of the conference was "How do Java Programs Use Inheritance? An Empirical Study of Inheritance in Java Software". A study of inheritance in Java programs. Surprisingly they use it a lot, not everyone just hacks things together without thinking of these things. I suspect that in a few years this will be the most widely cited paper presented, whenever we need an excuse to do some more research on anything vaguely related to inheritance, BAM! Motivation!

And that was that for ECOOP '08. I had a great time and look forward to next year, although Sophia is PC and so it might be difficult to write a paper for it, not to mention an inconvenient wedding just before the deadline.

I left Cyprus the next day, although obviously it did not go smoothly. After getting a ride to Larnaca airport (thanks to the Swedish contingent!) I had a marathon wait, followed by more waiting as my flight was delayed, followed by more waiting for an interview with security in Israel because they didn't like some of the stamps in my passport (I was kind of prepared for this). By the time I cleared the airport my hotel was closed so I spent what was left of the night sleeping on the roof of a full hostel in the wrong city; the sun was coming up as I finally tried to get to sleep...

No comments: