It seems that Apple's decision to ban apps created using cross-compilers seems to have upset a lot of developers. But Steve Jobs' own views as expressed in an email to a developer shows us a shocking example of double-standards with a case of "do as we say, not as we do!"
Greg Slepak, CEO of TaoEffect, fired off a quick email to Apple's CEO outlining concerns he had about the changes that the company had made to the iPhone Developer Program License Agreement. In response to Slepak's concern that Apple was limiting creativity with this latest move, Jobs had the following comment to make:
We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.
So basically what Jobs is saying is that developers should write apps for the target platform natively as opposed to leveraging an intermediate layer.
This is an interesting statement for Jobs to make because this runs counter to how Apple develops applications for the Windows platform. Take the iTunes applications. As programmer "DVD" Jon Lech Johansen points out, iTunes for Windows uses non-native APIs such as CoreFoundation and CoreGraphics.
Johansen puts it bluntly:
Is iTunes hindering the progress of the Windows platform by not taking advantage of the latest native Windows APIs? By Steve's logic, Microsoft should start banning apps such as iTunes from Windows.
"Do as we say, not as we do!"
There's been a lot of nonsense written as regards to why Apple has taken the step to ban cross-compilers, and imagined excuses such as it being to do with app quality, multitasking or protecting the platform being conjured up by the Apple faithful. None of this really makes sense to me because when you look at platforms such as Windows, Mac OS X and Linux, applications such as Firefox show how programs created using cross-platform development software can work. Equally, much of the crap that resides in Apple's own App Store, junk created using the tools that Apple wants developers to use, proves that quality has nothing to do with it.
Bottom line, developers can knock out sub-standard apps no matter what tool they use, and intermediate layers haven't hindered the Windows, Mac OS X or Linux platforms.
That said, I look forward to Apple releasing a native Windows version of iTunes real soon.