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)
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)
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)