On Replacing Objective-C

Apple has been making strides in Objective-C development. They deprecated GCC in favour of LLVM. They added blocks. They added collections literals. Yeah, and that’s all great, but those are all incremental improvements. At some point, there’s going to be a gulf that can only be bridged by a radical change in the language.

That’s what it should take to inspire a radical change in developer tools - improvements on an order of magnitude in building software, making it easier to solve hard problems, and fixing issues in common coding standards that have arisen through heavy use. This goes beyond just a programming language; it will require new frameworks and design patterns to really bring about the benefit.

I’ve been in the camp that says Objective-C’s incremental improvements will get it there, that we don’t need a revolution. We can have great performance and a great language and frameworks at the same time.

But the one thing that’s made me consider changing my mind is how fast devices are getting. Performance changes the calculations.

Remember that Objective-C used to be considered slow. And it was (and is) compared to straight C. But it’s not slow compared to Java, Ruby, Python, and Javascript.

In other words: the next language and its frameworks could be slower than Objective-C and Cocoa, but because devices are so much faster, that would be fine — as it once was fine that Objective-C was slower than C, because it allowed us to create better apps more easily.