Tag Archives: Theory

On Not Understanding Data Abstraction, Revisited

We have a technical reading group (aka ‘Nerd Club’) at work. Last week we tackled the paper On Understanding Data Abstraction, Revisited by William Cook. We learned about it through a talk by Kevlin Henney that takes its title from a clause in the paper: It Is Possible to Do Object-Oriented Programming in Java. I really enjoyed reading the paper, but fear I’ve failed to understand important parts of it. Failing to understand isn’t so unusual for me, particularly for papers that have more than a tiny bit of theory, but this one has me frustrated because I’m sure I’m close.

The paper shows that there are two common forms of data abstraction, abstract data types (ADTs) and objects, and that they are different and complementary. The final sentence reads:

Understanding the fundamental differences between objects and ADTs can help in choosing to use them wisely.

and so my goal is to understand those fundamental differences. The paper first characterises the two kinds of abstraction somewhat theoretically, and then talks about their implementation in practical programming languages: Java, Haskell and Smalltalk.

What I understood

I haven’t totally failed to understand. It’s a good paper and there’s loads of great stuff that I can say I got:

Continue reading On Not Understanding Data Abstraction, Revisited