iPhone SDK, iPhone SDK! Wherefore Art Thou iPhone SDK?

Ever since the iPhone was announced, Steve Jobs has done a terrible job talking about Apple’s policy and plans for third-party iPhone software development.

例如,来自1月份采访了新闻周刊的史蒂文·列维

“You don’t want your phone to be an open platform,” meaning that anyone can write applications for it and potentially gum up the provider’s network, says Jobs“You need it to work when you need it to workCingular doesn’t want to see their West Coast network go down because some application messed up.”

当然,这只是愚蠢,因为有很多其他手机平台可以让第三方软件运行,而这种应用程序的零例无法取消电话网络。

本周,在被问及第三方iPhone开发时,在D:All Things Digital会议上与Walt Mossberg的访谈中,乔布斯说

这是安全性和开放性之间的重要权衡We want bothWe’re working through a way… we’ll find a way to let 3rd parties write apps and still preserve security on the iPhoneBut until we find that way we can’t compromise the security of the phone.

I’ve used 3rd party apps… the more you add, the more your phone crashesNo one’s perfect, and we’d sure like our phone not to crash once a dayIf you can just be a little more patient with us I think everyone can get what they want.

Which doesn’t sound right at all, because if the iPhone is running OS X, it has protected memory, and one buggy app should be no more likely to crash your phone than one buggy app is to crash your Mac.

Andrew Shebanow问道

Does the iPhone not have hardware memory protection? Or is it some other software or hardware change that makes the iPhone more susceptible to 3rd party software crashes than the Mac?

这是错误的问题正确的问题是:为什么乔布斯只是说出他的意思,而不是模糊的技术解释,而这些解释并没有真正具有技术意义?

简单的事实是,Apple承诺什么都不做,因为这样可以让他们保持所有的选择他们没有任何承诺,因为他们没有任何承诺 - iPhone既不需要额外的宣传也不需要更高的期望。

长期来看,在未来两年内,如果不早,我觉得开发人员可以通过各种方式编写iPhone软件(事实上​​,在Gizmodo的成绩单他们引用乔布斯对第三方iPhone开发问题的回应如下(重点补充):“这是安全与开放之间非常重要的权衡取舍我们想要两者我们有很好的想法,而今年晚些时候,我们可以打开第三方应用程序,并保持安全。“)

以这种方式看待它:Apple需要运送iPhone如果我们私下假设苹果公司一直计划最终将iPhone开放给第三方开发,那么它仍然很容易理解为什么它没有这样的支持而发货:它需要更长的时间才能发货官方支持的API需要时间来记录,而且它们是一种承诺虽然iPhone开发仍然是Apple的私人开发,但Apple可以随意更改和转移API如果他们进行了需要更改每个现有iPhone应用程序的更改,那没关系,因为每个现有的iPhone应用程序都是他们的。

等待也让Apple有时间定义iPhone UI体验iPhone正在运行OS X,是的,但整个界面都是全新的Even Mossberg seems confused on this; he asked Jobs: “On the technical side… could a Mac OS X app run on an iPhone?” Jobs replied, “We don’t think that’s a good idea我们没有鼠标,我们没有下拉菜单......手机上的用户界面非常不同。“

In an editorial aside in his interview transcript, Engadget’s Ryan Block remarked after Jobs’s answer, “[Ha! Nice non-answer!]”他是对的,这是一个不答案,因为乔布斯并没有说“不”。Obviously there are some people who think it’d be cool to run Mac apps on an iPhone, but from Apple’s (and Jobs’s) perspective, that’d be about as cool as it would have been for a character-mode DOS or Apple II app to run on an original Mac back in 1984.1Technically possible? Sure但是在“打败我们试图建立的目标的整个目的”我们对iPhone UI知之甚少(例如:如何在没有菜单栏或键盘快捷键的情况下进行复制和粘贴?)

简而言之,乔布斯可能想要推迟允许第三方软件在iPhone上运行的主要原因并不是技术性的(打倒手机网络或使手机崩溃),但审美Let users grow accustomed to what true iPhone-style apps feel like to use, and they — the users — will demand that developers write true iPhone-style apps when development is eventually opened up, in the same way that Mac users demand true Mac-style apps.2

在此期间淡化第三方应用程序开发的前景是一种承诺不足和过度交付的方式通过设定可能的初始预期决不作为iPhone的第三方软件,任何对第三方应用程序的未来支持都将被视为好消息Software projects often take longer to complete than expected; look no further than Leopard.

如果iPhone SDK的官方发货日期为“从不”,则不能迟到。


  1. 最初的Macintosh没有任何类型的字符模式或终端,不是因为技术上不支持,而是因为Apple想强迫开发人员编写真正的Mac风格的应用程序Likewise, I’ll wager that there will be no way, supported or not, to run Mac-style applications on an iPhone. ↩︎

  2. 因此如此乔布斯对iPhone上的Java不屑一顾— it has nothing to do with Java as a programming language, but rather the style of user interface and experience that can be produced through cross-platform Java APIs. ↩︎