Why Objective-C
https://inessential.com/2026/02/27/why-objective-c.htmlloading story #47220829
I really miss Objective-C, and in the world of Swift craziness [1] I'm reminded often of this blog post [2] wondering what would have happened if Apple hadn't encountered Second System Syndrome for its recommended language.
(There's a decent argument it encountered it in iOS and macOS too.)
[1] https://github.com/swiftlang/swift-evolution/blob/main/propo... -- apologies to the authors, but even as a previous C++ guy, my brain twisted at that. Inside Swift is a slim language waiting to get out... and that slim language is just a safer Objective C.
[2] https://medium.com/goodones/pareto-optimal-apple-devtools-b4...
loading story #47220053
At this point in my career, I can't go back to a language that doesn't have support for Optionals or compiler validation of nullable types. I can sacrifice async or fancy stream apis, but I will never go back to chasing null pointer exceptions on a daily basis.
loading story #47219919
loading story #47220016
loading story #47220686
I still find Objective-C++ useful for writing MacOS apps that make heavy use of C++ libraries (e.g.; Eigen, OpenCV). The caveat is I have done a lot of Objective-C programming and Swift is still not as seamless as I would like bridging with modern C++ and the the STL.
loading story #47219781
loading story #47220587
loading story #47220608
Good time to check out ObjFW [1], it's a cross platform ObjC framework that's just really awesome
loading story #47219662
loading story #47220479
loading story #47220940
loading story #47221052
loading story #47222009
loading story #47222423
> [[those squareBrackets] lookInsane:YES].
Nah, they are perfectly sane. They look like little ASCII envelopes because that's exactly the metaphor. Square brackets send messages.
loading story #47219904
[dead]
loading story #47221091
loading story #47220250
loading story #47221161
I bounced off of Objective-C not because of its message-passing OO. That was the actual cool part. I bounced off because of the insane amount of boilerplate prototyping and headers required to use it.
I think every OO language should be using Smalltalk's message-passing style rather than holding hard references, and Objective-C is a great model. But discard the rest.
loading story #47220279
loading story #47221700
loading story #47220356