6 comments:

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!

Hi 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!"

By 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.