It's an interesting beast
O-C doesn't make any sense until you read the history of it and get a handle on the technical underpinnings... the idea that OOP was bolted on via pre-compilation processing and it is just standard C under the hood drives most of the strangeness of it. *For me* it is not bad, but in large part that's because 1) I'm starting now as opposed to a few years ago, so I get ARC and don't need to worry as much about pointers and such and 2) my early programming experiences were with systems like COBOL, Pascal, and a touch of C, so much of this is a "fond memory" for me, not, "I miss C# or Java!" If I had been taught programming in the last 10 - 15 years, I'd be complaining that this feels primitive, but I think that they managed in many ways to retain the comfort of old school imperative programming, while dragging much of it (albeit kicking and screaming) into the modern world. Interface Builder is a good example of that...
J.Ja