Just recently I stumbled upon this 10 year old post by Robert Atkins: Objective C resembles Jimi Hendrix. It has to do with fixing up adoration for Objective-C by the “old-timers” with the beginners' rather less passionate action.
His really sound insight was that Objective-C, like Jimi Hendrix, presented brand-new principles that were rather advanced (“”mind blowing”) at the time, however are now considered approved:
If you'e brand-new to Objective-C and, as I am, having a hard time to come to terms with the truth that it's one terrific huge leaking abstraction on top of C, put yourself in the shoes of an 80s C developer and remember you get to utilize these cool “contemporary” functions in a systems setting language.
As one of the extremely early, pre-NeXT, adopters of Objective-C, I have a somewhat various take: That implicit “in spite of” is in fact quite a “because” for me.
The contemporary functions in Objective-C such as a vibrant messaging, a runtime with self-questioning and intercession etc. were not brand-new at the time, and they were not truly “astonishing”. LISP and Smalltalk had actually had them for a long period of time. So far having these functions had actually needed big, complicated runtime environments that were extremely remote from the rest of the device, and typically rather separated from the rest of the device. Still are, to this day. You do not configure your computer system with LISP or Smalltalk. Your computer system runs a different LISP or Smalltalk computer system that you can then set by itself terms and in its own world. (And tries to bring makers closer to these languages mainly did not prosper).
Objective-C offered these functions with the slimmest of a sliver of an extension to a portable PDP-11 macro assembler.
Now that was astonishing!
And it exceeds that: there in fact was, at some time, Objective-Assembler. Objective-C was never ever planned to be “a language” like Java or Rust. The Objective part of Objective-C is a glue layer, a combination system that can be contributed to any language. There was Objective-FORTRAN, Objective-Pascal etc. Helge Hess when put it nearly completely: Objective-C is COM with language assistance. Or SOM. Or whatever interop system they develop once again (Swift “library advancement”, I am taking a look at you, can we have Objective-Swift?).
It wasn't simply astonishing, it likewise was, is, and stays exceptionally helpful.
Beneficial, in truth, that this slimmest sliver of an extension slowly changed the portable PDP-11 macro assembler it was sitting on top of for a lot of daily usage. Much so, that in the Apple designer community, the much bigger C part began to be concerned as an entirely different language that many devs never ever attempted touch.
Naturally the truth that this is workable should not be unexpected, after all the Objective part is imitated Smalltalk, and Smalltalk is a total shows language. Smalltalk needs a relatively big VM to run, generally coded in C or in Squeak's case,