Back from OOPSLA, with mixed feelings. This was the smallest OOPSLA ever, and there are some big changes coming next year: they are renaming the conference SPLASH (Systems, Programming, Languages, Applications: Software for Humanity). OOPSLA becomes a colocated conference within the SPLASH umbrella, along with Onward and Dynamic Languages. The Onward program was perhaps the best ever this year, with some interesting preliminary work that was more than just metaphors and hand waving. Jonathan Aldrich’s Plaid language is worth following.
Barbara Liskov gave her Turing award lecture, talking about how she invented Abstract Data Types thirty years ago. She has not been doing language research for 20 years, and says she is still waiting for someone to invent better language abstractions. She has been repeatedly quoted as saying that current PL research is a dead end, and that Java is good enough. The rumor here is that she is a big reason why no PL researchers have been hired by MIT in over a decade.
William Cook’s essay was the antidote to Liskov. I found it insightful, shedding new light on what we have thought were settled issues. Highly recommended.
Concurrency and multicore is still quite hot. All these talks had the obligatory motivation slide about how CPU clock speed has stalled and so multicore is the only way forward and we have to figure out how to program these beasts. I don’t get it. It is a solution looking for a problem. CPU cycles are a limiting factor in only a fraction of software. Server-side software scales across system farms, not cores. Desktop software is rarely CPU bound anymore. CPU cycles are a lot less important than programmer cycles. But people would probably find Coherence more interesting if I pitch it as a multicore solution. It could be, but I have been trying to focus on what is important, not what is popular.
My own talk got mixed reviews. It was generally compared unfavorably to the Flapjax paper (which won the best student paper award) because they both are concerned with the problem of callbacks. Flapjax uses the demonstrated techniques of FRP and has a solid implementation that is actually usable, whereas my talk was only a brief speculation about a fundamentally new approach that is completely unproven. Unfortunately we were scheduled at the same time, but I had a good talk with Leo Meyerovich and Arjun Guha later. They seem like nice guys, and I am hopeful that we can have a productive dialogue in the future (despite the nasty competitiveness that is common in our field). For example, I heard that Phil Wadler ripped Shriram in the Q&A because he didn’t give sufficient credit to prior FRP work. Why can’t we just all get along?
Phil Wadler and Guy Steele were both at my talk. I felt that Steele avoided talking to me for the rest of the show, giving me a stone face every time I greeted him. We have talked many times in the past, but I was dead to him.
Luckily there were a couple of people who liked the talk and went out of their way to tell me and to encourage me to keep going. I have invitations to visit two places once I have some progress to discuss. That was my main goal for this conference, so it was a success, even though I feel more than ever that I don’t belong in Computer Science.