<https://www.hillelwayne.com/post/alan-kay/>
# linking-together
s
d
So many things in software have changed meaning or mean different things to different people. So it's kinda pointless to argue over what "really" means what. HOWEVER, the more serious problem is that things that have been claimed, proven, accepted, etc. regarding one definition, are then misapplied to the other. This is how TDD has somehow been "proven" successful and unsuccessful by different studies, etc. That also makes it darn near impossible to communicate about the good and bad in software, because there are so many contradictory claims and attitudes, that it's easy to dismiss things as being opinionated or very wrong, or to accept things as "proven" or "tried & true" that are actually not the thing that was proven.
So anyway, it's helpful to be aware of the different perspectives, and do your best to clarify what you (and others) mean by "OO" (or whatever else) when talking about it. I'd like to see THAT become a better practice in software ... But I'm not sure that most are aware of the extent of disconnect and the harm it does, and perhaps just think there's the common or "right" view, and then crazy people who argue for no reason. But anyway, for OO, there's essentially classes & inheritance, and there's message passing. My understanding is that Kay's OO was the latter, but then pulled in classes and perhaps (for a time) conflated it all as one approach himself. Perhaps even Byte magazine was incorrect about message passing coming from SIMULA (does SIMULA even have message passing?). It's all a confusing mess, so who's to say? So all we have is that there's classes, and there's message passing, and we just need be clear.
Thanks for sharing this!
s