software development kit for the upcoming iPhone OS 4.0 says that native
applications must be "originally written" in Objective C, C, or C++",
forbidding developers from using any sort of "translation or compatibility
layer." This legalese seems to rule out just about anything you can think
of -- translating an application written in any other language to C++. However,
this stern interpretation is probably exaggerated. Besides, when you consider the outcry and criticism with which Apple's license was greeted, you can't help but wondering where all these freedom of expression activists were when Sun -- and later Microsoft and Google -- imposed similar draconian restrictions on developers.
What Apple had in mind (if I
may guess) is something a bit different -- they want developers to write iPhone
philosophical question: "what constitutes 'translation'?" is
interesting but in the software world it usually means: machine translation
(e.g., Facebook's HipHip for PHP project which automatically translates PHP code
to C++), and not a porting project whereby human programmers are writing
new code that's roughly equivalent in terms of functionality.
In an ideal world, developers would be allowed to use whatever programming language they desire. Alas, that ideal world ceased to exist sometime in the mid 1990s when Sun started to push its Java programming language (sorry, platform) aggressively. They pretended that they cared about security but the real reason was obvious: locking users in Sun's proprietary programming language, which has never been exactly the picture of top-notch performance. Sun may have set the bluntest example of such lock-in policy but Microsoft and Google have exercised a similar strategy, each trying to promote its proprietary development tools, languages and platforms.
It's therefore interesting to observe the clamor and outcry
that IT experts have expressed regarding Apple's policy. Aren't these the same
people who lauded and bowed to Sun's monopolistic behavior some 15 years ago?
And aren't these the same people who have been praising and adoring Google for Android?
So what has transformed them into bleeding-heart activists of freedom of
expression and democratic values all of a sudden?
I wholeheartedly believe in letting developers use
the programming language they desire. However, the rules of the game changed
some 15 years ago. It's hypocritical to criticize Apple just because your
pet language isn't included in iPhone's developer's license while practicing the
silence of the lambs when other manufacturers impose draconian restrictions on C++
developers for ages. Apple's considerations are not that off the wall, by the way. They want
developers to use Apple's proprietary language (Objective-C), which is more
less what all other major players have been doing. Additionally, Apple also
lets developers use truly open and no-strings-attached languages such as C and
C++. Very few programming languages these days are as free as C and C++, I regret to say.
I bet that had Apple chosen Java or
Ruby as their pet language, Steve Jobs would have been greeted with praise and admiration for his innovative and brave decision.
Take advantage of special member promotions, everyday discounts, quick access to saved content, and more! Join Today.