OOP inheritance gets a lot of flack because it was the first iteration of a principle that we're still trying to figure out: how to create syntactic relationships between things and infer properties from them. Inheritance being "these are the same EXCEPT these differences"
4
21
3
125
Inheritance inspired a lot of followup work, leading to ADTs, Parnas modules, typeclasses. Notably all of these relate to different "things" that are lower on the abstraction hierarchy: there's a gulf between the relationship construct and the value types it relates to
3
2
19
algebraic data types were invented around the same time as OOP and the relevant paper doesn't cite anything even remotely close to OOP (cs.cmu.edu/~crary/819-f09/La…)
1
Algebraic data types aren't a successor of OOP. ABSTRACT data types are, and were invented by Barbara Liskov in CLU.
2
1
5
haha, the old ADT !== ADT problem. Thanks for explaining
1
4
No problem, it's Literally The Worst Thing Ever
2
1
Did the CLU work build on Simula (e.g. reference it) or did it just occur after it?

Aug 14, 2020 · 7:36 PM UTC

1
Replying to @stilkov @maxheiber
Yeah, Liskov explicitly cites Simula as part of her inspiration. dl.acm.org/doi/10.1145/23428…
1