Apple to developers: don't even think in Flash, bucko

The latest revision of Apple's developer licensing agreement explicitly prohibits the use of third-party software to develop for the iPhone. [Daring Fireball]

Such software lets developers use programming languages that they already know, including easy-to-learn ones like Unity Script. It also lets developers create apps that will run on multiple platforms. The big target here is clearly Adobe — though Flash itself won't run on the iPhone, the latest version of Adobe's development suite can also spit out a non-Flash version of your app that will.

As an occasional developer, the prospect of this is enormously frustrating. It feels like we're being told not to 'port' stuff to the iPhone without learning a new language and writing it again from scratch. To make a version that'll also run on Windows, Linux and even Mac, for example, means redoing it with both Apple's and Adobe's (or Unity's, etc) programming tools— ok for big companies and other large teams, but not for bedroom coder types. (I'll admit I haven't used the new Flash suite, so it might be the case that you have to substantially redo it for each platform anyway. But even then, you can still make all of them in the same language)

I've also spent the last week working on a feature on how the iPad's innovative design helps, rather than hinders, certain creative endeavors. But it's easy to see why people whose creative endeavor is development will remain unimpressed: Apple has very specific plans for them.

Joel Johnson suggests that kiboshing the translation of existing code to the iPhone ("Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited.") may interest the FTC. [Gizmodo]

Update: As irritating as it is to me, personally, here's one good reason Apple might want to prevent widespread use of 'meta' cross-platform development tools — it encourages crummy development practices that ignore the unique capabilities of each platform. As an Amstrad CPC owner many moons ago, among the major disappointments of my early life were crappy ports that failed to take advantage of that machine's superiority to rival platforms. But still, isn't that a smackdown to be delivered by the AppStore approvers on the front lines — or the market! — rather than by adhesive contracts?

Update 2: Ten years ago, Adobe was very slow to upgrade Photoshop to the then-new OSX. It bailed on Apple in similar style when it switched to Intel chips. So Apple turning the screw on Adobe now may look like animus–and developers are certainly among those who lose out. So why not defend Adobe more vigorously?

Flash isn't really an alternative programming toolkit for the iPhone. It doesn't jailbreak it and doesn't build executables from scratch. I just wants to be another door into the walled garden. So it offers developers not freedom but convenience, and perhaps a healthier balance of power within a closed software ecosystem that Apple ultimately controls. Here's Gruber again, putting it bluntly: "If you're an iPhone developer and you are not following Apple's advice, you're going to get screwed eventually." As he says, Apple killing third-party tools is ruthless, but there's no way Apple's going to let Adobe become a de facto (and proprietary) standard hovering over its own programming toolsets, on which developers may become as reliant on as designers are on other components of the Creative Suite.