My University of Washington CSE Colloquium from February 2005 contains an embarrassing sleight that thanks to archived video is now immortal. Here I set the record straight:
In the talk, I claim that it was a mistake for Java to include "synchronized" as part of method declarations in interfaces. After all, it is an implementation detail that is neither necessary nor sufficient for a method to be usable for thread-shared data. Indeed, it would be a mistake, but Java did not actually make the mistake. So my talk incorrectly maligns Java and its designers. I apologize.
Rest assured that subsequent talks are correct.
Dan Grossman