A Short History of Objective-C (2017)
medium.com
medium.com
"The origins of Objective-C at PPI/Stepstone and its evolution at NeXT" https://dl.acm.org/doi/10.1145/3386332
1) Uggh, this language sucks. What's with all the [] everywhere? Why are the parameter names included in the signature? Why are allocation and initialization separate operations? This is a joke.
2) Hold on! You can replace methods at runtime? You can swap out implementations on the fly? Calling methods is incredibly flexible yet also optimized up the wazooo?
3) Wait a minute! You can call methods by name at runtime? Even from dynamically loaded libraries? I always thought Windows COM sucked, now I understand how much better it could have been. This is the best language ever!
I haven't done any ObjC for years but sometimes I miss its flexibility. It wasn't all roses, sometimes lifetime management was a pain for instance, but ObjC doesn't deserve its reputation as a weird, unloved language.
But I suppose that's down to the skill of the developer more than it is the language itself. In the right hands, Obj-C is powerful for the same reasons… the compiler gets out of your way and lets you write.
So 32 bit platforms is the goal???
Can you make a list of like top 10 reasons to use ObjFW instead of Foundation?
Along the way I began to learn about how Swift relies heavily on the Objective-C runtime and began to dig in. The flexibility to me is amazing.
Love it. Incremental typed languages are by far my favorite.
- the exception philosophy seems wrong-headed to me — you want to build language features that encourage handling of routine runtime issues without the overhead of C++-style exceptions
- the claim that the runtime is faster than Apples’s runtime is very citation-needed
We picked ObjC over C++ because it was so much smaller and simpler. Also reflective, at the time it was very hard at runtime to learn anything about a C++ type. It was a pretty good match for our needs at the time. tclobjc also helped a lot because it let us use Tk for the GUI.
Sometimes I wish that this field didn't change so much, but sometimes I rejoice that it does.
"What's New in LLVM"
https://developer.apple.com/videos/play/wwdc2018/409/
"Advancements in the Objective-C runtime"