[conspire] OOP

Nick Moffitt nick at zork.net
Sun Sep 27 06:35:42 PDT 2020


On 27Sep2020 01:52pm (+0200), Ivan Sergio Borgonovo wrote:
> OOP didn't go across a lot of redefinition of what OO actually means, it
> went just through different cults.
> That's not just peculiar of OOP.
> 
> To get popular techniques have to be sold. And in every sale there are lies
> and a mystifications.

I think it achieved a certain kind of orthodoxy in the 90s that defined it as a total commitment to class hierarchy and operator overloading.

Alan Kay resisted firm definition for decades, telling tales of self-unpacking tape formats and other inspirations.  He'd joke "maybe I don't know what it is, but it sure as hell isn't C++!"  But finally he has settled on "it means message-passing: you can't do OO without message-passing."  This is a shock to most people, as only two or three languages that call themselves "object-oriented" actually support it (mainly Smalltalk and Ruby).

The real tragedy is how many years of progress were lost to a fundamentally incorrect model of software development.  MUD developers were the most interesting to follow, because their systems used prototype-based shallow inheritance occasionally but otherwise stuck to a slightly message-passing-ish event model.  And their usenet groups were full of hand-wringing about "oh dear when will we finally get a real OOP design like C++, which is obviously correct?"

And an abstract simulation system like a MUD or other game *sounded* perfect for the modeling promised by the multiple-inheritance-and-overloading crowd.  They promised they'd proven this The Next Thing and The Best Thing and everyone wanted to grow up and finally move to it, but shucks...it was too hard to actually model anything with!

And even game developers moved on to things like Entity/Component/System designs that used composition to grant in-game models the ability to receive and react to events like the old early-90s MUDs did.  And even textbook polygon-categorisation class hierarchy diagrams that were held up as the obvious Correct Thing gave us the name for the fundamental flaw in this approach: The Diamond Problem.



More information about the conspire mailing list