▲ 84 ▼ Functional Programming vs. Object Oriented Programming (mmhaskell.com) submitted 2 years ago by mac@programming.dev to c/programming@programming.dev 35 comments fedilink hide all child comments
[–] Corbin@programming.dev 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! permalink fedilink source parent hideshow 2 child comments replies: [–] abhibeckert@lemmy.world 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) permalink fedilink source parent hideshow 4 child comments replies: [–] Redkey@programming.dev 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 permalink fedilink source parent [–] xigoi@lemmy.sdf.org 4 points 2 years ago JavaScript is an example of how OOP can be done without classes (before they were added to appease Java enthusiasts). permalink fedilink source parent
[–] abhibeckert@lemmy.world 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) permalink fedilink source parent hideshow 4 child comments replies: [–] Redkey@programming.dev 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 permalink fedilink source parent [–] xigoi@lemmy.sdf.org 4 points 2 years ago JavaScript is an example of how OOP can be done without classes (before they were added to appease Java enthusiasts). permalink fedilink source parent
[–] Redkey@programming.dev 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 permalink fedilink source parent
[–] xigoi@lemmy.sdf.org 4 points 2 years ago JavaScript is an example of how OOP can be done without classes (before they were added to appease Java enthusiasts). permalink fedilink source parent