|
> one part trying to find common ground for Java, Modula, C++ The primary common ground is that their functions have encapsulation, which is what separates it from functions without encapsulation (i.e. imperative programming). This already has a name: Functional programming. The issue is that functional, immutable programming language proponents don't like to admit that immutability is not on the same plane as imperative/functional/object-oriented programming. Of course, imperative, functional, and object-oriented language can all be either mutable or immutable, but that seems to evade some. > SmallTalk Smalltalk is different. It doesn't use function calling. It uses message passing. This is what object-oriented was originally intended to reference — it not being functional or imperative. In other words, "object-oriented" was coined for Smalltalk, and Smalltalk alone, because of its unique approach — something that really only Objective-C and Ruby have since adopted in a similar way. If you go back and read the original "object-oriented" definition, you'll soon notice it is basically just a Smalltalk laundry list. > how term is used. Language evolves, certainly. It is fine for "object-oriented" to mean something else today. The only trouble is that it's not clear to many what to call what was originally known as "object-oriented", etc. That's how we end up in this "no its this", "no its that" nonsense. So, the only question is: What can we agree to call these things that seemly have no name? |
You omitted Smalltalk. Most people would agree that SmallTalk is object-oriented.
But that kinda ruins the common ground thesis.
> Language evolves, certainly. It is fine for "object-oriented" to mean something else today.
pjmlp definition is very fuzzy. It judges object-orientedness based on a few criteria, like inheritance, encapsulation, polymorphism, etc. More checks, stronger OOP.
By that, even Haskell is somewhat OOP, and so is C, assembly, Rust, and any language.
---
What I prefer is looking at it as it's used. And how it's used for appears to be akin to using it as an everyday term fish or fruit.
No one would agree that a cucumber is a fruit. Or that humans are fish. Even though botanically and genetically they are.