Friday 9 April 2010
More Apple Evil
Chris Double just pointed out to me the new iPhone development agreement terms that require an application's original source language to be C, C++ or Objective C (plus maybe JS running on Webkit). Basically they're outlawing compilers like Adobe's Flash-to-iPhone compiler, Innerworks' J2ME-to-iPhone compiler, the Mono iPhone compiler, etc. They're also forbidding compatibility layers that wrap Apple's APIs.
This is mind-boggling. There's no possible technical justification for this. It's pure evil. I'm not even sure why Apple would do this. Maybe to make it harder for people to write cross-platform apps that run on the iPhone?
The lesson for those companies that just got hung out to dry is simple: don't build on locked-down platforms.
Comments
I suspect that the AppStore verification process is largely automated, so perhaps Apple's verification tools don't work properly on Apps that aren't compiled with XCode. But even then, apps should be considered on a case-by-case basis, not by the compiler used to build them.
OTOH, if the App Store requires all apps to be native apps while the iPhone is still the leader, it's much more difficult for developers to write cross-platform apps and thus the iPhone's App Store is more likely to maintain its lead.
So, yeah... evil.
Ben: of course they can enforce this. This provision doesn't have to be automated. They can just ask the developers. Sure, the developers can lie, but if they get found out, Apple can potentially sue for breach of contract and can certainly ban the developer from the iPhone forever.
The locked down model of applications on the iPhone OS requires that the developer (or some third party) can't change the application after it's been approved and put in the store. An interpreter allows you to run any code at any time, including malicious code.
It's a shame - I'd love the iPad as a Pharo development environment. That would so rock.
But "Evil"? Seriously? Apartheid South Africa's treatment of 20 million of it's citizens is sort of my low bar for evil, and frankly that's a bit higher than an SDK agreement for a device that I am not forced to own.
This is not the same as blocking interpreters. Read the text. Various companies including Adobe were using compilers to translate code and not including an interpreter in the final app.
The other part may simply be quality - most of the cross platform UI systems I've seen are pretty appalling. Mozilla and Eclipse's SWT are the only two that have ever been even passable (it's been a while actually; do you guys still render down to native widgets?)
Or maybe the code needs to be human readable in these languages because the verification staff is skilled only in these languages?
"Apartheid South Africa's treatment of 20 million of it's citizens"
Like what? Torture, rape, murder...
What's really your "low bar" on evil?
What's needed for you to considered it evil?
Edouard: they've already blocked interpreters, so that is simply not the reason.
The quality argument is bogus. Apple can and do already vet apps for quality, and they can reject apps that don't look or feel right regardless of the underlying technology. And from what I hear, they already admit thousands of low-quality apps written in Objective-C...
Our cross-platform UI support is a lot better than Eclipse's IMHO. We do not use native widgets. It's simply a matter of having done a lot of work on it.
This sounds very, very good.
I also noticed this inside the comments, from someone who works for google :
"Theora can already playback in real time on an iPhone 3GS at native screen resolution, 25 fps, without any optimizations except for the final YUV2RGB stage.
Hardware decode support is a red herring. I've brought this up many times with various organizations, and once you demonstrate that decoding on a portable can in fact already be done, they admit that it's actually a political issue. It's just a convenient excuse to hide the real reasons."
The os x compiler tools are opensource - both gcc and clang.
Webkit and jscore are opensource.
Thats good enough for me.