Or do as Alan Kay wants and start calling it “Message-Oriented Programming”.
“I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea. The big idea is “messaging”.”
From my understanding, yes. Personally, I’ve seen so many different definitions of “OOP” (most of which were incoherent), I developed my own definition of what an ‘object’ is, and just go on with life.
I still get sad when I think about Objective C and how it didn’t take off vs C++ just because it had ugly syntax (which becomes beautiful once you understand why it is the way it is)
Both C++ and Objective-C aimed to be “C with classes”. C++ does it by hijacking existing syntax (struct), Objective-C does it by adding new syntax, while leaving the original minimalism of C untouched.
In fact, it’s a strict superset of C, which means it doesn’t change anything at all in C, it only appends. So every valid C program is a valid Objective C program (which is not true for C++).
You know how some C programs are valid C++ programs though? Well, those same programs can use Objective C features too, meaning you’re able to use them in C++… Meaning you’re able to code in “Objective C++” (which is very common for interop purposes)
Or do as Alan Kay wants and start calling it “Message-Oriented Programming”.
“I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea. The big idea is “messaging”.”
https://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html
I skimmed that.
So you’ve got a bunch of message transceivers (aka objects). And the magic is in the message soup.
Yes?
From my understanding, yes. Personally, I’ve seen so many different definitions of “OOP” (most of which were incoherent), I developed my own definition of what an ‘object’ is, and just go on with life.
I still get sad when I think about Objective C and how it didn’t take off vs C++ just because it had ugly syntax (which becomes beautiful once you understand why it is the way it is)
I’m still mad at Apple for making Swift instead of Objective-C 3.0. It was such a powerful and small language.
C++ has a billion features and Swift is getting more every year.
Objective-C was fast to compile, great in a debugger, and allowed lots of creativity and patching broken system components.
Lots of great software was written with it. CocoaBindings are magical.
Why is it the way it is?
Both C++ and Objective-C aimed to be “C with classes”. C++ does it by hijacking existing syntax (struct), Objective-C does it by adding new syntax, while leaving the original minimalism of C untouched.
In fact, it’s a strict superset of C, which means it doesn’t change anything at all in C, it only appends. So every valid C program is a valid Objective C program (which is not true for C++).
You know how some C programs are valid C++ programs though? Well, those same programs can use Objective C features too, meaning you’re able to use them in C++… Meaning you’re able to code in “Objective C++” (which is very common for interop purposes)