My good friend Brent Simmons invokes a historical email from Linus Torvalds, about his disdain for C++

C++ is a horrible language. It’s made more horrible by the fact that a lot of substandard programmers use it, to the point where it’s much much easier to generate total and utter crap with it.

Brent affirms his support while paying homage to plain-old C:

But I will admit to an enduring love of C. I still think of C not as C but as the language.

I loved C. Emphasis on the past-tense. As object-oriented programming concepts became popular, those of us who were programming in C or similar procedural languages had to find new, object-oriented languages to fulfill our needs. At the time, I chose C++. Or I should say, I had C++ forced upon me. Because C++ popularized the notion of object-oriented programming, it was the only choice presented to many programmers.

Because I ended up at Apple, the time I spent with C++ was thankfully short. They were fortuitously behind the times at the dawn of my career, and wound up taking a different path while my career was ascending.

Objective-C was Apple’s response to object-oriented programming, and continues to be the lingua-franca for programmers on Macs, iPhones and iPads. I loved C. I love C. But it always fell short for me. It lacked something. Objective-C fixed that. I hope I never have to program in C++ again. But tellingly, I also hope I never have to program in C again.

There are lots of great features from Python, Ruby, or JavaScript, that I’d love to see incorporated into Objective-C. By no means is it perfect. But for its elegance, and for the fact that it fulfills many of the requirements of object-oriented programming, while maintaining the familiar simplicity of C, it presently earns the title of the language for me.

[Update Nov 7: I’ve had a lot of reaction to my claim above that Objective-C was “Apple’s response to object-oriented programming.” This makes it sound like Apple invented the language, and they didn’t. But they have done more to popularize and promote it than anybody else. I stand by the meaning of it being “what they bring to the table,” when it comes to object-oriented programming].

Translation: Thanks to Anja Skrba, you can now read this article in Serbo-Croatian.