In the 90s I was very into Objective-C, I thought it was a great programming language. You could drop down to C for performance critical sections, but for the 90% which wasn't performance critical the OO was much nicer to use than C++ IMHO.
I even moved countries because in the 90s NeXT wasn't a really popular platform, and there weren't many jobs. Most jobs were C++ jobs.
It took me a year and a half of pain at my first job to finally decide it wasn't for me.
- I developed a system using WebObjects, all in compiled Objective-C. If I had a single user in the office using it, normally my server would crash after about 15 minutes of usage. Double-free or use-after-free. I had already spend time tracking down memory issues but I spent a whole day looking for more and finally found one. Proudly deployed the software. It stayed up longer. Crashed after about 30 minutes. There were more memory bugs. It was just basically impossible to get right IMHO.
- Nulls. You look at the result of a piece of code and the result is null. Why is it null? [foo bar] (or foo.bar() in more conventional syntax) if foo is null, no NullPointerException is thrown, the result is just null. So if the result is null, ONE of the inputs or return values from a function or something was null before. Which one? Don't know.
The second job of my career was Perl. Perl might not have been perfect but it solved both those problems and I was happy. Debugging time was a lot shorter due to better null handling (if something's null you learn about it closer to the source of the problem), some hunting for memory cycles which the GC couldn't find but that was rare, basically it "just worked".