5 ms·
> The language has respectably reached that level of maturity and support that allows it to just continues on, quietly running in the background. Didn't Apple
by mhd 3y ago
> The language has respectably reached that level of maturity and support that allows it to just continues on, quietly running in the background.
Didn't Apple tinker with Objective-C a lot during its runtime, or am I just concentrating on the bumps? I remember reading the Cox book ages ago, where you basically had a simple SmallTalk-ish message syntax on top of plain old C. NeXt you got protocols etc.
Over the time of it being heavily used on OS X and especiallly iOS (where a lot of new and fledgling programmers came in), all kinds of stuff was added. Properties, various memory management experiments etc.
Sure, after Swift was introduced, that seemed to have calmed down a bit. But "mature"?
And no, it's not like other languages fare reasonably better, now that most of them are handled like products.
- gilgoomesh 3y agoApple added a lot of sugar to different parts of Objective-C and a few side features – dot syntax, synthesised properties, blocks, etc. They're still adding tweaks like nullability, generics and other Swift-compatibility features. And they were continually changing things like NSString and NSNumber internal representations and allocation patterns to avoid actually allocating. They really only changed the runtime once – Objective-C 2.0 – which they mostly hid behind the transition to 64-bit. This introduced layout resilience (so they could add fields to objects without breaking compatibility) and tagged pointers (so the reference count could be stored inside the pointer).
- pjmlp 3y agoThere have been a couple of more runtime changes, for performance reasons, and better integration with Swift.