Steve Jobs thinks Objective C is Perfect?
josht writes "Nitesh Dhanjani has posted an e-mail thread between Steve Jobs and himself. Dhanjani argues "I'd like to see Apple developers gain more choice. With every iteration of OSX, there seems to be so much effort put into innovation of desktop components, but the development environment is age old." I agree with Dhanjani. What has Apple done recently to wow the developers, and make it fun to code Cocoa components? I've looked into the Objective C and Xcode environment but compared to Microsoft's .NET solutions, it doesn't impress me at all. I think Apple can do a lot better. Steve Jobs disagrees. What do the readers think about Objective C and Xcode?"
It is a really outdated 'language' today compared to Java, C#, and even C++.
If you look closly to objective C, it is really not a language, it is just C with a enhanced macro pre processor.
Performance is ABYSMAL compared to any modern language because message sends (the objective C equiv of a method call) has to go through a dispatch map. This is how it works:
1: you send a message to an object like [anObject doSomething]; this sends the doSomething message to the anObject object.
2: under the covers, this calls a function called regular function called objc-msg-send, this is part of the Objective C runtime.
3: this function looks up the object, then looks up the dispatch table to see if if can accept this message, then finally invokes it.
Overall, objective c message call performance is comparable to Javascript.
Now, of course you can just call C functions, but then what is the point of objective C?
Modern languages like Java, C# provide all the dynamsism of objective C, but do it effciently thougth vtables and reflection.
For a while I thought about porting some software we have to the Apple platform (it is currently written in C#), but with the abysmal performance of Objective C, the portion of the app turned out to be not usable (this is a parser that needs to make several thousand method calls per second). We ended up porting it to Java, and performance was a bit better than the original C# version.
So, while Objective C was a neat idea in the 80's, it is time to move on Apple.
Objective C was a great idea in the 80's but it is time to move on. Steve Jobs, why don't you try some Java?