I just got back from OOPSLA/Onward! where I presented an essay On Understanding Data Abstraction, Revisited. There is a discussion about it on Lambda the Ultimate. Here are the slides from the talk. The talk went pretty well. There was a nice discussion with the audience. Unfortunately the paper is pretty technical, so some people in the audience didn't get it. I suppose now I need to write the book...
I really liked the paper! I read it following the posting on LtU. I'm glad it was technical -- the clarity of the definitions really helped me see the differences between ADTs and objects. The key is your definition of object. I think people largely agree on what an ADT is, but they are confused about what an object is, thanks to the notion offered in modern languages, which you argue convincingly contains elements of pure objects and ADTs. So blame Bjarne and James as much as the textbooks, I say. Well done, and thanks!
ReplyDeleteWilliam, the link to slides is broken (I came here from LTU, where the same link is presented and also broken). Could you please provide a correct link?
ReplyDeleteFixed!
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteHi Will, 4 years too late, but I have finally found time to read the paper. I am really glad I did, because it must be one of the best papers I have read in programming languages! It is brilliant how you touch upon pretty much everything that needs to be said. My favorite line is "the untyped lambda calculus was the first object-oriented language!"
ReplyDeleteBy the way, I wouldn't worry too much about books like Sebesta's. I think most decent departments make up their own material for teaching programming language courses. I was teaching exactly these distinctions in the 80's even before Java came on to the scene.
Uday
Finally fixed the link to the talk slides. Enjoy!
ReplyDelete