Gotta take issue with the characterization of “bolted on”. That’s a design feature and it’s huge. It made interoperability trivial. You can write C, C++, and Objective-C within the same source file.
The syntax growing over time is a real issue though. Every time I have to write __bridge_retain I get hives.