• Corbin@programming.dev
    link
    fedilink
    English
    arrow-up
    15
    arrow-down
    5
    ·
    11 months ago

    Object-oriented design is about message-passing; messages are more important than objects. Classes are completely irrelevant – there’s an entire branch of object-oriented language design without classes!

    • abhibeckert@lemmy.world
      link
      fedilink
      arrow-up
      9
      arrow-down
      6
      ·
      edit-2
      11 months ago

      there’s an entire branch of object-oriented language design without classes!

      That’s not OOP anymore. There’s definitely a lot of OOP code out there (especially in the Java world) that goes way too far with inheritance and class structures, and good OOP code relies a lot less on classes - but they are still used and a critical component of the style of programming.

      Object-oriented design is about message-passing;

      I’d argue that’s an implementation detail rather than part of OOP. Also it’s rarely used in modern OOP languages because it’s just too slow*. Unfortunately when you take it away some patterns are lost, but the trade off is generally worth it.

      (* when I used to work in Objective-C, message sending was often slower than all of the rest of my code combined and in tight loops I’d often rewrite my OOP code as procedural C code in order to have acceptable performance. Never need to do that in Swift, which doesn’t do messages)