乔布斯:关于 Flash 的思考

这是乔布斯 2010 年 4 月 29 日发表在苹果网站上的文章。跟三年前炮轰 DRM 的关于音乐的思考一样,这也是一篇檄文,声讨对象是与苹果多年来亦敌亦友的 Adobe 门下的 Flash 技术。近几个月来,业界就 Flash vs HTML5 的问题讨论得热火朝天,本文并未带来新的视角与观点,但乔布斯的身份无疑令它具备了别家不可企及的重要性。—— 编者

苹果与 Adobe 的关系由来已久。Adobe 的创始人还在那如今已成传说的车库中工作时,我们就已经认识了。苹果是他们的第一个大客户,将他们的 PostScript 语言改为我们当时新推出的 LaserWriter 打印机所用。在很多年里,苹果都是 Adobe 的股东之一,拥有其 20% 的股权。两家公司通力合作,开创了桌面电脑出版业,其中有不少快乐的时光,但那段黄金时代一过,我们便分道扬镳了。苹果经历了濒死的过程,Adobe 凭其 Acrobat 产品进入了企业市场。今天,两家公司仍然同心协力为创意产业的客户服务——Adobe 的 Creative Suite 软件的顾客里,有大约一半是苹果电脑用家。但除此之外,我们几乎没有别的共同利益了。

我想在这里记下自己关于 Adobe 的 Flash 的一些想法,希望我们的顾客以及批评家们能够更好地理解为什么我们不允许 Flash 在 iPhone, iPod 和 iPad 上运行。在 Adobe 口中,我们这一决定背后主要的驱动力是商业上的考量。他们说,我们是为了保护自己的 App Store。但事实上,这里的问题主要是技术问题。Adobe 说,苹果是一个封闭系统,Flash 则是开放的,但他们恰恰说反了。我来解释一下吧。

首先,谈谈开放

Adobe 的 Flash 是 100% 的私有软件。你只能从 Adobe 处获取 Flash,并且 Flash 在未来的改进、定价等等,完全受到 Adobe 一家的左右。尽管 Flash 和相关产品的应用十分广泛,但这并不等于说它们是开放的,因为它们完全处于 Adobe 的控制之下,并且你也只能从 Adobe 那里获得它们。无论怎么定义,Flash 都是一个封闭系统。

苹果也有很多专有性的产品。虽然 iPhone、iPod 和 iPad 的操作系统是私有的,但我们完全相信与万维网相关的所有标准都应该开放。我们没有用 Flash,而是选择了 HTML5, CSS 和 JavaScript,它们全都是开放标准。苹果的所有移动设备都与生俱来地对这些开放标准有着良好的支持:运行速度快,用电量低。HTML5 是万维网上的新标准,为苹果、谷歌以及很多其他公司所采用。网页开发者利用 HTML5 就能做出高级的图像、字体、动画以及过渡效果,而不必倚赖第三方插件(例如 Flash)。HTML5 完全开放,并受一个标准委员会控制。苹果是该委员会的成员之一。

苹果甚至还为万维网创造了一些开放标准。例如,我们从一个小型开源项目出发,做出了 WebKit。WebKit 是一个完全开源的 HTML5 页面转译引擎,我们所有产品中的 Safari 浏览器的内核用的都是它。WebKit 也广泛被别家公司所采用。谷歌在其 Android 系统的浏览器里用它,Palm 用它,诺基亚用它,RIM(黑莓)最近也宣布将会改用它。除了微软以外,几乎所有智能手机里的浏览器用的都是 WebKit。苹果通过开放自己的 WebKit 技术,为移动网页浏览器订下了标准。

 

第二,谈谈完整的互联网

Adobe 反复说苹果的移动设备无法访问「完整的互联网」,因为网上 75% 的视频用的是 Flash。他们没有提及的是,几乎所有这些视频,同时也以一种更加摩登的格式——H.264——存在于网上,用 iPhone、iPod 和 iPad 都能看。YouTube 占有线上视频大约 40% 的份额,它在苹果所有的移动设备中都以一个软件的形式存在,运行得极为顺畅。其中,iPad 上的 YouTube 所提供的搜寻及观看视频的体验或许可以算作各家之冠。除此之外,还有 Vimeo、Netflix、Facebook、ABC、CBS、CNN、MSNBC、Fox News、ESPN、NPR、《时代》、《纽约时报》、《华尔街日报》、《体育画报》、《人物》、《国家地理》(美国),以及很多很多。没有多少线上视频是 iPhone, iPod 和 iPad 的用户看不到的。

Adobe 还宣称说,苹果的设备玩不了 Flash 游戏。这不假。所幸,在 App Store 里有五万多款游戏和娱乐软件,其中很多都是免费的。iPhone、iPod 和 iPad 上的游戏和娱乐软件之数量也居于世界上众多平台之冠。

 

第三,谈谈可靠性、安全性和性能

赛门铁克最近指出,Flash 是 2009 年最不安全的系统之一。我们有第一手资料表明,苹果电脑死机的罪魁祸首就是 Flash。我们一直在和 Adobe 合作,试图解决这些问题,但几年过去了,效果不彰。如果说,为 iPhone、iPod 和 iPad 加了 Flash 之后,会导致它们的可靠性与安全性下降,这是我们不愿看到的。

此外,Flash 在移动设备上的性能也有问题。过去几年里,我们经常请 Adobe 用移动设备——任何移动设备——示范 Flash 的性能,希望看到好的表现,但至今未能如愿。Adobe 曾公开说 Flash 会于 2009 年初出现在智能手机上,后来又推迟到 2009 年下半年,然后又变成了 2010 年上半年,现在又说是 2010 年下半年了。我们相信它迟早会出现,但我们也庆幸自己没有一路等待。谁知道它到时性能会怎么样呢?

 

第四,谈谈电池续航力

为了在播放视频时保持良好的电池续航力,移动设备必须用硬件来对视频进行解码;软件解码太费电。如今的许多移动设备中的芯片组里都包含名为 H.264 的解码器。H.264 是业界标准,每一台蓝光 DVD 播放器都用它。苹果、谷歌(YouTube)、Vimeo、Netflix 和许多其他公司也都有用。

虽然 Flash 最近增加了对 H.264 的支持,但目前几乎所有 Flash 网站都需要用旧一代的解码器:移动设备里的芯片不支持它们,因此只能通过软件解码。区别是巨大的。例如,在 iPhone 上,H.264 视频可以连续播长达十小时,但通过软件解码的视频播不到五小时,电池就会用光。

如果各网站把视频重新用 H.264 编码,那么用户完全不需要 Flash 也能看到。这些视频在苹果的 Safari 浏览器和谷歌的 Chrome 浏览器里都不需要任何插件就能流畅播放,在 iPhone, iPod 和 iPad 上也会赏心悦目。

 

第五,谈谈触屏

Flash 是为个人电脑和鼠标设计的,并不适合触屏和手指。举例来说,许多 Flash 网站都用到了「光标悬停」:当用户把光标移动到某个点时,弹出菜单或其他元素。苹果革命性的多点触控介面不用鼠标,也没有光标悬停的概念。如果要支持触屏设备,大部分 Flash 网站都要重写。而如果开发者要重写 Flash 网站,为什么不用较为摩登的技术,例如 HTML5、CSS 和 JavaScript 呢?

就算 iPhone、iPod 和 iPad 支持 Flash,还是不能解决大多数 Flash 网站需要重写,以便支持触屏设备的问题。

 

第六个是最重要的问题

Flash 封闭、私有、有重大技术问题、不支持触屏技术。除此之外,还有一个更加重要的理由,让我们决定不让它在 iPhone、iPod 和 iPad 上跑。我们刚才谈过了用 Flash 播放视频与展示网站上的互动内容的弊病,但 Adobe 还希望开发者用 Flash 来编写跑在我们的移动设备上的软件。

过去的痛苦经历让我们了解到,在平台和开发者之间加多一层第三方软件层,最终会导致大量不够水准的软件,并对整个平台的进步与发展起到负面作用。如果开发者开始依赖于第三方的库与工具,那么他们将受制于这个第三方:只有当第三方采纳了整个平台引进的新特性之后,开发者才能够利用它们。我们自己的平台的改善何时能够传递到开发者手中,不能由一个第三方来决定

当这个第三方提供的是一个跨平台开发工具时,情况会变得更糟。某一个平台上的功能改善,第三方未必会立即采纳,而是可能会等到这些改善在自己支持的所有平台上出现时,才开始支持它们。因此,开发者就只有最基本的功能可用。同样,苹果无法接受这样的结果:开发者无缘接触我们的创新与功能改进,而原因却是这些创新与改进在我们的竞争对手的平台上还不存在。

Flash 是一个跨平台的开发工具。Adobe 的目标不是帮助开发者写出最好的 iPhone、iPod 和 iPad 软件,他们的目标是帮助开发者写跨平台软件。在过去,Adobe 在采纳苹果的平台的改进上可谓迟缓之至。例如,Mac OS X 推出已有十年之久,但 Adobe 直到两周前发布 CS5 时才将其完全 Mac OS X 化(Cocoa 化)。在所有的重要第三方开发者里,Adobe 是最后一个完整支持 Mac OS X 的。

我们的动机很简单:提供最先进、最创新的平台给开发者,希望他们能够直接站在这一平台的肩膀上,创造出前无古人的优质软件。我们希望持续改进这一平台,以便开发者们可以写出更棒、更强大、更好玩、更有用的应用程序。人人都是赢家——苹果会因为有了最好的软件而卖出更多设备,开发者会有越来越多的用户,而面对最好的、选择最广泛的软件平台,用户也会感到开心愉悦。

 

结论

Flash 是个人电脑时代的产物,它是为个人电脑与鼠标发明的。Flash 对于 Adobe 来说是一盘成功的生意,我们也明白他们为什么希望将它延伸到个人电脑以外的领域。但在移动时代,重要的是低能耗、触控介面和开放的万维网标准。所有这些都并非 Flash 的强项。

各家媒体争先恐后地为苹果的移动设备提供内容,这说明 Flash 已经不是看视频或消费任何类型的网页内容所不可或缺的了。苹果的 App Store 里的二十多万个软件证明,对于数以万计的开发者来说,编写视觉效果丰富的程序——包括游戏——并不一定要用 Flash。

HTML5 等移动时代的新标准会在移动设备上(以及个人电脑上)取得胜利。或许,与其忙于批评苹果义无反顾地大步向前,Adobe 更应该专注于为未来打造优质的 HTML5 工具。

 

史蒂夫·乔布斯

2010 年 4 月

 

 

Thoughts on Flash

Apple has a long relationship with Adobe. In fact, we met Adobe’s founders when they were in their proverbial garage. Apple was their first big customer, adopting their Postscript language for our new Laserwriter printer. Apple invested in Adobe and owned around 20% of the company for many years. The two companies worked closely together to pioneer desktop publishing and there were many good times. Since that golden era, the companies have grown apart. Apple went through its near death experience, and Adobe was drawn to the corporate market with their Acrobat products. Today the two companies still work together to serve their joint creative customers – Mac users buy around half of Adobe’s Creative Suite products – but beyond that there are few joint interests.

I wanted to jot down some of our thoughts on Adobe’s Flash products so that customers and critics may better understand why we do not allow Flash on iPhones, iPods and iPads. Adobe has characterized our decision as being primarily business driven – they say we want to protect our App Store – but in reality it is based on technology issues. Adobe claims that we are a closed system, and that Flash is open, but in fact the opposite is true. Let me explain.

First, there’s “Open”.

Adobe’s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system.

Apple has many proprietary products too. Though the operating system for the iPhone, iPod and iPad is proprietary, we strongly believe that all standards pertaining to the web should be open. Rather than use Flash, Apple has adopted HTML5, CSS and JavaScript – all open standards. Apple’s mobile devices all ship with high performance, low power implementations of these open standards. HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash). HTML5 is completely open and controlled by a standards committee, of which Apple is a member.

Apple even creates open standards for the web. For example, Apple began with a small open source project and created WebKit, a complete open-source HTML5 rendering engine that is the heart of the Safari web browser used in all our products. WebKit has been widely adopted. Google uses it for Android’s browser, Palm uses it, Nokia uses it, and RIM (Blackberry) has announced they will use it too. Almost every smartphone web browser other than Microsoft’s uses WebKit. By making its WebKit technology open, Apple has set the standard for mobile web browsers.

Second, there’s the “full web”.

Adobe has repeatedly said that Apple mobile devices cannot access “the full web” because 75% of video on the web is in Flash. What they don’t say is that almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads. YouTube, with an estimated 40% of the web’s video, shines in an app bundled on all Apple mobile devices, with the iPad offering perhaps the best YouTube discovery and viewing experience ever. Add to this video from Vimeo, Netflix, Facebook, ABC, CBS, CNN, MSNBC, Fox News, ESPN, NPR, Time, The New York Times, The Wall Street Journal, Sports Illustrated, People, National Geographic, and many, many others. iPhone, iPod and iPad users aren’t missing much video.

Another Adobe claim is that Apple devices cannot play Flash games. This is true. Fortunately, there are over 50,000 games and entertainment titles on the App Store, and many of them are free. There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world.

Third, there’s reliability, security and performance.

Symantec recently highlighted Flash for having one of the worst security records in 2009. We also know first hand that Flash is the number one reason Macs crash. We have been working with Adobe to fix these problems, but they have persisted for several years now. We don’t want to reduce the reliability and security of our iPhones, iPods and iPads by adding Flash.

In addition, Flash has not performed well on mobile devices. We have routinely asked Adobe to show us Flash performing well on a mobile device, any mobile device, for a few years now. We have never seen it. Adobe publicly said that Flash would ship on a smartphone in early 2009, then the second half of 2009, then the first half of 2010, and now they say the second half of 2010. We think it will eventually ship, but we’re glad we didn’t hold our breath. Who knows how it will perform?

Fourth, there’s battery life.

To achieve long battery life when playing video, mobile devices must decode the video in hardware; decoding it in software uses too much power. Many of the chips used in modern mobile devices contain a decoder called H.264 – an industry standard that is used in every Blu-ray DVD player and has been adopted by Apple, Google (YouTube), Vimeo, Netflix and many other companies.

Although Flash has recently added support for H.264, the video on almost all Flash websites currently requires an older generation decoder that is not implemented in mobile chips and must be run in software. The difference is striking: on an iPhone, for example, H.264 videos play for up to 10 hours, while videos decoded in software play for less than 5 hours before the battery is fully drained.

When websites re-encode their videos using H.264, they can offer them without using Flash at all. They play perfectly in browsers like Apple’s Safari and Google’s Chrome without any plugins whatsoever, and look great on iPhones, iPods and iPads.

Fifth, there’s Touch.

Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover. Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?

Even if iPhones, iPods and iPads ran Flash, it would not solve the problem that most Flash websites need to be rewritten to support touch-based devices.

Sixth, the most important reason.

Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices.

We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.

This becomes even worse if the third party is supplying a cross platform development tool. The third party may not adopt enhancements from one platform unless they are available on all of their supported platforms. Hence developers only have access to the lowest common denominator set of features. Again, we cannot accept an outcome where developers are blocked from using our innovations and enhancements because they are not available on our competitor’s platforms.

Flash is a cross platform development tool. It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps. It is their goal to help developers write cross platform apps. And Adobe has been painfully slow to adopt enhancements to Apple’s platforms. For example, although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5. Adobe was the last major third party developer to fully adopt Mac OS X.

Our motivation is simple – we want to provide the most advanced and innovative platform to our developers, and we want them to stand directly on the shoulders of this platform and create the best apps the world has ever seen. We want to continually enhance the platform so developers can create even more amazing, powerful, fun and useful applications. Everyone wins – we sell more devices because we have the best apps, developers reach a wider and wider audience and customer base, and users are continually delighted by the best and broadest selection of apps on any platform.

Conclusions.

Flash was created during the PC era – for PCs and mice. Flash is a successful business for Adobe, and we can understand why they want to push it beyond PCs. But the mobile era is about low power devices, touch interfaces and open web standards – all areas where Flash falls short.

The avalanche of media outlets offering their content for Apple’s mobile devices demonstrates that Flash is no longer necessary to watch video or consume any kind of web content. And the 250,000 apps on Apple’s App Store proves that Flash isn’t necessary for tens of thousands of developers to create graphically rich applications, including games.

New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.

 

Steve Jobs

April, 2010

 

 

参考推荐

乔布斯:关于 Music 的思考