you are viewing a single comment's thread
view the rest of the comments
[–] 10 points 2 years ago (1 child)

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!

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 2 years ago* (last edited 2 years ago) (2 children)

    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)

  • source
  • parent
  • hideshow 4 child comments
  • [–] 16 points 2 years ago

    Whatever it may have become in later years, Alan Kay, who is often called "The Father of Object-oriented Programming", outlined the message-passing idea as the main concept he was driving at, originally.

    He also says that he probably misnamed it.

    Here's a discussion in which the man himself makes a (small) appearance: https://softwareengineering.stackexchange.com/questions/46592/so-what-did-alan-kay-really-mean-by-the-term-object-oriented

  • source
  • parent