I was previously writing about how Apple’s apparently random iPhone App Store policies could actually be so by design. (Because they save Apple from having to define and defend a universally acceptable set of policies, and because it can easily give special treatment when it so desires.)
Another example here, with a political cartoon app banned and then unbanned after the story got out.
Weirdly, what really got to me was how Apple recently changed their policies to prohibit developers from working in their language of choice:
“Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).”
As a programmer, I find this particularly offensive because:
- I think developers have a right to use whatever tools get the job done.
- There are great applications out there written in Unity3D, for example, and horrible apps written in Objective-C.
- Apple’s benefits are fairly obvious and obviously hurtful for everyone else: Prevent cross-platform development; control innovation. (Flash included, of course.)
- It means that you cannot have a programming environment on the iPhone. Ever.
- The official argument from Steve Jobs is unashamed BS: “Intermediate layers” decrease application quality. Actually, no. There is a reason why developers use middleware, 3D engines, scripting languages and so on: Because they increase application quality. Apple’s argument is a variation on the old claim that “we should write everything in assembler because it runs faster”. This, like Apple’s claim, only holds true for developers with infinite resources and infinite time. There aren’t a whole lot of developers like that, so maximum application quality is reached by using the best tools for the given task and resources. Publishers should not try to decide those tools ahead of time.
A lot has been made out of how the lack of Flash on the iPhone/iPad prevents access to most video on the net. Perhaps that is a red herring. Video could run in HTML5.
The bigger program is that there are a lot of interesting (indie) games being done in Flash, and HTML just isn’t close to be being a game platform. (Can you even play sounds yet?) No indie Flash games for you, buy something from the app store instead.
Bad Apple.