[HN Gopher] The Big OOPs: Anatomy of a Thirty-Five Year Mistake
       ___________________________________________________________________
        
       The Big OOPs: Anatomy of a Thirty-Five Year Mistake
        
       https://www.youtube.com/watch?v=wo84LFzx5nI
        
       Author : SerCe
       Score  : 60 points
       Date   : 2025-07-19 03:23 UTC (4 days ago)
        
 (HTM) web link (www.computerenhance.com)
 (TXT) w3m dump (www.computerenhance.com)
        
       | Rochus wrote:
       | Entertaining. The presenter obviously doesn't like the class
       | hierarchy to correspond to the domain model. He seems to think
       | that this was an essential feature of OOP, supported by some
       | quotations by Smalltalk exponents. But not even the Smalltalk
       | world could agree on what OOP actually is (just compare the
       | statements by Kay with the actual architecture of Smalltalk-76ff)
       | and as quickly as Smalltalk lost its significance, there is no
       | need to mention it further. I would rather look at a reputable
       | industry organization such as IEEE, which even publishes its own
       | standards and best practices, what OOP is about. E.g. the OOP
       | Milestone (see https://ethw.org/Milestones:Object-
       | Oriented_Programming,_196...) which names Simula 67 the first OO
       | language, specifies OO as " _the combination of three main
       | features: 1) encapsulation of data and code 2) inheritance and
       | late binding 3) dynamic object generation._ " No mention of the
       | class hierarchy should correspond to the domain model. So maybe
       | we should just not mix up a programming paradigm with how it is
       | used by some folks in practice? The fact that the loudest
       | proponents of a paradigm are not usually those who apply it in
       | practice remains true even today. Takes far less than 2.5 hours
       | to state.
        
         | asa400 wrote:
         | He literally gives extensive primary source citations to show
         | that the originators of OOP presented this class-domain
         | correspondence as the correct way to think about and do OOP.
         | Bjarne Stroustrup is not just some random guy.
        
           | t420mom wrote:
           | Is it fair to blame all of OOP for C++?
        
       | lioeters wrote:
       | The presentation was recently discussed at:
       | 
       | https://news.ycombinator.com/item?id=44596554 [video] (37
       | comments)
       | 
       | This current posted link is an article by Casey Muratori with
       | supplementary material on topics to explore further.
       | 
       | - Early History of Smalltalk
       | 
       | - History of C++
       | 
       | - Development of the Simula Languages
       | 
       | - Origins of the APT Language for Automatically Programmed Tools
        
         | Rochus wrote:
         | And here: https://news.ycombinator.com/item?id=44603205
        
       | nottorp wrote:
       | Any way to find out what the 35 year mistake was without being
       | "engaged" for hours on that video?
        
         | isotropy wrote:
         | OOPs = "object-oriented programming", BUT it's a more
         | restrained and thoughtful complaint than just "objects suck" or
         | "inheritance sucks". He cabins it pretty clearly at 11:00
         | minutes in: "compile-time hierarchy of encapsulation that
         | matches the domain model was a mistake"
        
           | ocrow wrote:
           | To unpack that a little, he looks to the writings of the
           | early developers of object oriented programming and
           | identifies the ways this assumption became established.
           | People like Bjarne Stroustrup (developer of C++) took on and
           | promulgated the view that the inheritance hierarchy of
           | classes in an object oriented system can be or should be a
           | literal instantiation of the types of objects from the domain
           | model (e.g. different types of shapes in a drawing program).
           | 
           | This is a mistake is because it puts the broad-scale
           | modularization boundaries of a system in the wrong places and
           | makes the system brittle and inflexible. A better approach is
           | one where large scale system boundaries fall along
           | computational capability lines, as exemplified by modern
           | Entity Component Systems. Class hierarchies that rigidly
           | encode domain categorizations don't make for flexible
           | systems.
           | 
           | Some of the earliest writers on object encapsulation, e.g.
           | Tony Hoare, Doug Ross, understood this, but later language
           | creators and promoters missed some of the subtleties of their
           | writings and left us with a poor version of object-oriented
           | programming as the accepted default.
        
             | mariodiana wrote:
             | Is Objective-C discussed at all?
        
               | tmp10423288442 wrote:
               | Only as a brief aside (don't have the timestamp right
               | now) to talking about Smalltalk, which he mostly
               | discusses to argue that Smalltalk was not different from
               | C++ in seeking (most of the time) to model programs in
               | terms of static hierarchies (according to the primary
               | source documentation from the time of Smalltalk's
               | design):
               | 
               | > And another thing is if you look at the other branch,
               | 
               | > the branch that I'm not really covering very much
               | 
               | > in this talk, because again,
               | 
               | > we don't program in small talk these days, right?
               | 
               | > The closest thing you would get
               | 
               | > is maybe something like Objective-C.
               | 
               | > If there's some people out there using Objective-C,
               | 
               | > you know, like Apple was using that for a little while,
               | 
               | > so Objective-C kind of came
               | 
               | > from a small talk background as well.
               | 
               | Objective-C is basically Smalltalk retrofitted onto C,
               | even more than C++ was Simula retrofitted onto C (before
               | C++ gained template metaprogramming and more modern
               | paradigms), so it makes sense that Muratori doesn't go
               | much into it, given that he doesn't discuss Smalltalk
               | much.
        
               | Jtsummers wrote:
               | [delayed]
        
         | lproven wrote:
         | I don't know, but given the page, I think it is OOPS.
         | 
         | Object oriented programming.
        
           | ocrow wrote:
           | It's more specific than that. See sibling comment
        
       | lproven wrote:
       | Is there a script or transcript anywhere, for those of us who can
       | read 10x faster than it is possible to understand speech?
        
         | cma wrote:
         | About every video on YouTube has a transcript, usually a button
         | at the bottom of the description.
        
           | lproven wrote:
           | No help. It's video speed.
           | 
           | I can read at several thousand words a minute. So I need the
           | whole transcript in one shot.
           | 
           | Then I can read it in 10 or 15 minutes or so, and decide if
           | it's worth watching a 2 hour plus video. The answer is almost
           | always "no".
        
             | veggieroll wrote:
             | Use yt-dlp to download the transcript.
        
             | zahlman wrote:
             | A few lines of Javascript in the console can copy that to
             | the clipboard for you. Maybe someone's packaged that up
             | already. (It's on my todo list to look around...)
        
             | cma wrote:
             | Not the closed caption button. In the bottom of the
             | description there is "show transcript" which gives a
             | scrollable transcript.
        
             | layer8 wrote:
             | https://www.youtube-transcript.io/videos?id=wo84LFzx5nI
        
         | Jach wrote:
         | I had whisper make a transcript and skimmed some but I ended up
         | watching the talk at ~1.5x speed in the end anyway.
         | https://pastebin.com/EngTq9ZA If you want the timestamps kept
         | in I can paste that too.
        
         | em-bee wrote:
         | the video does a deep dive into the history of OOP which is
         | very interesting if you are into that sort of thing.
        
       | medmedsalem wrote:
       | Fri fir
        
       ___________________________________________________________________
       (page generated 2025-07-23 23:00 UTC)