Turing equivalence guarantees there's a way to write a program in some other language that produces exactly the same results as a program in ObjC. This deep compatibility made it feasible for the industry to adopt better and better languages. But now Apple wants to put a stop to it and enshrine a few decrepit languages with flaws most of us escaped a decade ago.
(As I understand it, JavaScript doesn't belong on the list. It's permitted, but some of the Cocoa Touch API isn't accessible, so it's not really a substitute for the others.)
But now Apple wants to put a stop to it and enshrine a few decrepit languages with flaws most of us escaped a decade ago.
Your opinion of the languages does not trump the reality that the overwhelming majority of iPhone OS applications were written in them, as was the OS itself, even when it was not a requirement. Trying to make it sound like recent changes to the App Store agreement are the only reason people use Objective-C is a big stretch.
I know that ObjC has always been heavily used in NEXTSTEP and OS X apps (if not a lot else) even before this. My concern is that mainstream vendors will conclude that we tolerate this sort of abuse, and the problem will spread. I care that the industry permits good languages to exist, not whether the majority are interested in using them.
To be fair, that program in some other language only produces the "same results" - there's no guarantee it won't be significantly slower or use significantly more memory. Which is exactly Steve's point.
(As I understand it, JavaScript doesn't belong on the list. It's permitted, but some of the Cocoa Touch API isn't accessible, so it's not really a substitute for the others.)
reply