乔布斯:关于Flash的几点看法

Flash播放器:从开创者到“被革命者”

2011/08/20 · HTML5 ·
HTML5

注:本文转载自21世纪商业评论
作者:Tiaroma

“HTML5的出现将为互联网带来一次前所未有的革命。”这段口号正化为字节传递到光纤和电话线所能触及的每一个角落。“革命”一词,你可以把它理解为一个刺激肾上腺素分泌的名词,也可以把它理解成一个杀意很强的动宾短语——利剑出鞘,谁的命要被革掉?

答案直指Flash player。没错,就是那个无所不在的Flash
player,那个看视频、听音乐、玩页游都离不开的Flash player。

“Flash已不再适合互联网发展的需要”、“HTML5将取代Flash一统网络富媒体领域。”“让Flash去死吧!”诸如此类的言论伴随着HTML5的出现在互联网上蔓延开来。Flash
player究竟犯了什么错,以致遭到此般口诛笔伐?

是功能上的缺陷,还是性能方面的落后?让我们先来看看下面一组数据:视频支持、音频支持、画布标签(2D绘图和动画),是HTML5为引人注目的三个新功能。而Flash
player对这三个功能的实现年份分别为1996年、1999年、2003年,版本号分别为1、4、7。其他诸如3D加速、硬件解码等功能,在
Flash player进入第十个版本后亦得以实现。就功能方面而言,Flash
player非但没有落后于时代,相反它还扮演了先行者的角色。在支持GPU加速后,新版本Flash
player的2D、3D图像渲染引擎更是展现出良好的性能。

此外,较高的资源占用率在过去一直让Flash的用户困扰不已。但随着10.1版本的Flash
player的推出,这一现象得到了明显的改善。在此个版本中,Adobe彻底重写了
Flash
player代码,同时加入硬件解码和2D/3D加速功能。10.1对处理器造成的负荷,比原来Flash
player10都要小很多。

我们可以看到,Flash
player在功能和性能方面都有着良好的表现,同时亦在资源占用方面得到了明显的改善,Flash
player看上去无疑是一款很不错的产品。既然如此,为何会有那么多的反对意见集中指向Flash
player?为何众多Web大佬要不遗余力地推动HTML5标准面世?如果我们继续纠结于技术方面的问题,答案只会离我们越来越远。

“言人人殊”的动机

我们先来看看是哪些公司正在不遗余力推动HTML5标准面世:它们是谷歌、苹果、谋智以及OPERA。这四家公司有一个很明显的共通点——他们都是
Web浏览器提供商。Flash player以插件的形式依托浏览器存在,Flash
player经过不断地进化后实现了诸如视频播放、音频播放、动画显示等浏览器本身无法实现的功能,而市场对这些功能又拥有很大的需求量。

“没有Flash就不能看视频,没有Flash就不能听音乐;没装Flash
player的浏览器跟一个残废没有任何区别。”互联网用户逐渐达成了这样的共识。Flash
player在网络富媒体应用领域的市场份额像雪球一样越滚越大,最高峰时超过了95%。如今,你很难看到一台没有安装Flash
player的电脑,也很难找到一个不装Flash
player就能正常使用的音乐网站、视频网站乃至新闻网站。

图片 1

  一个基于浏览器而生的产品实现了浏览器无法实现的富媒体功能,实现了浏览器厂商们望而兴叹的市场占有率,成为了一种“源于浏览器,高于浏览器”的存在。浏览器厂商此时此刻的内心感受,笔者表示非常理解。所以,我们就听到了这样的声音:

“Flash
player是一个封闭的系统,是由Adobe独家控制。让一个主要开发平台控制在单一供应商手中是很可怕的。如果他们停止开发或开始收费,那整个Web
界都要面临极大的危机。而HTML5的目标是将Web从那些非开放性富插件中解放出来。创造一个开放的Web。”

“Adobe
Flash技术是100%拥有专利的,这些专利为Adobe独享,而Adobe也对其未来发展、价格等拥有绝对控制权。尽管Adobe
Flash技术广泛流行,这并不意味着它是开放的,因为它完全被Adobe控制,也只为Adobe而存在。无论从哪个方面来看,Flash技术都是一个封闭的系统。”

上面两段话分别出自HTML5细则的合作设计者Ian
Hickson以及著名的反Flash“艺术家”斯蒂夫.乔布斯。前者来自谷歌。而后者,则是苹果公司的CEO。

很明显,Flash
player在网络富媒体领域呈现出的统治性优势,让浏览器厂商们难以安坐。在HTML5的开发团队中,来自谷歌、谋智、苹果和OPERA的员工占据了绝大多数。其实对于谷歌、苹果和谋智而言,“由Adobe独家控制”这一点才是Flash
player最大的缺点。这意味着Adobe在Web领域将拥有极大的话语权,这是让人难以忍受的。为了打破这种局面,浏览器厂商们需要寻找一个
Flash
player的替代品,这个替代品不能独属于任何一个公司,同时又要服务于各家浏览器厂商。在这样的背景下,HTML5走进了人们的视野。

HTML5对Flash发起的这一场革命,绝对不是一场以实现技术升级、提升用户体验为目的的革命,而是一次由浏览器厂商发起,以打破现有产业格局、实现重新洗牌为目的的革命。简而言之,这是一场属于厂商而非用户的革命。

图片 2

变化莫测的走向

然而,在技术尚未过时之际Flash就会束手就擒吗?

性能、功能等技术方面的问题暂且不提,规范难以得到真正统一无疑是HTML5最大的硬伤。Adobe的首席执行官Shantanu
Naranyen表示:“我认为HTLM5所面临的一个挑战依旧是如何在不同的浏览器上一致地显示HTML5。HTML5在成为支持众多浏览器的互联网标准之前,人们必须再等待至少10年。”

HTML5的制作团队内云集了包括谷歌、苹果、微软、谋智在内的各家利益关系者,各家都试图让HTML5的标准制定朝着最有利于自身的方向发展。

以HTML5视频的编码标准为例,各家就产生了巨大的分歧:谋智和欧普拉支持Theora,苹果和微软支持H.264,而谷歌则力推VP8。如果各方不能尽快达成共识,那么HTML5标准统一将会是一个漫长的过程。而这个漫长的过程,将为Flash
player的进化和完善提供充足的时间和空间。到了那个时候,想要战胜Flash
player将会变得更加困难。

成熟的开发环境、极高的市场占有率无疑使Flash
player具备了得天独厚的优势。但在移动平台上的表现欠佳,却是Adobe无法回避的问题。在谈到IOS弃用Flash的缘由时,乔布斯表示Flash适用于PC时代,为PC与鼠标而存在。

但移动设备关乎低功耗,触摸界面及开发网络标准,这些是Flash的短板。功耗问题,让Flash
player移动版饱受诟病,移动设备使用Flash
player播放视频比使用HTML5要高出接近一倍的功耗。同时,Flash
player移动版也经常出现不兼容和崩溃、假死等现象。这些都为Flash
player在移动设备上的前途蒙上了一层阴影。

在笔者看来,这场革命者和与反/革命者之间的战争在桌面PC领域和移动设备领域将出现不同的走势:在桌面领域,Flash利用HTML5标准统一之前的那段时间,实现性能和功能上的进化和完善,在技术上同HTML5拉开距离。HTML5在经过漫长的纠结后终于走上了商业化的道路,同Flash相比,不插即用成为它的核心卖点。

在未来的Web前端,两者将扮演不同的角色。网页中HTML5足以驾驭的基础部分,将选择HTML5使用本身自带的各类标签。在需要实现更强的视觉表现力、更有趣的互动效果、而HTML5又无法搞定时,则会去借助Flash
player的力量。HTML5搭建基础部分,Flash搭建高端部分,桌面领域将呈现Flash
player和HTML互为补充的局面。

在移动领域,高性能的APP应用占据统治性地位,用户更倾向于使用这些APP应用来观看在线视频、收听在线音乐。由于众多优秀的APP游戏的存在,移动平台的用户很少会产生玩网页游戏的需要。

当用户需要访问YouTube、Vimeo等视频网站时,他们会倾向于访问更为稳定、耗电更少的HTML5版(YouTube、Vimeo等视频网站大多会同时提供Flash和HTML5两个版本)。在这种情况下,兼容性差、不稳定、费电的Flash
player显得颇为鸡肋。就目前来看,HTML5要比Flash更加适合移动平台。

虽然,有人坚定地认为Flash这种必须依赖插件的形式生存的“寄生物”可以被“寄主”轻易地屏蔽、封杀,最终消失。然而东方逻辑往往很难推算出西方战局——即便是著名的反Flash“艺术家”乔教主,也不会选择在自己的桌面级系统上将Flash屏蔽掉。屏蔽、封杀竞争对手这种行为,在文明世界的用户看来,实在是在太过“重口味”。在媒体宣传尚未到位,Flash还未被塑造成“全民公敌”之前,这种做法无疑太过冒险,难以赢得用户的选票。要知道,在硅谷很难上演3Q大战这种“大尺度激情动作片”。

 

赞 收藏
评论

图片 3

    如今,HTML5
可谓如众星捧月一般,受到许多业内巨头的青睐。且不说谷歌、苹果等业内巨头把它描绘为互联网体验的未来,即便是以不服从标准著称的微软,也向它频频示好,
决心在 Internet Explorer 9 中加入对 HTML5
的大量支持。然而,HTML5的路途真的将一帆风顺么?本文将列举了一些在HTML5发展和普及过程中需要解决的问题。

当初这篇轰动一时的文章,据说是乔大爷去世前亲自写的(好吧,Java虽然同样被拒,但还没这种待遇)

乔布斯:关于Flash的几点看法

苹果与Adobe的渊源很深。实际上,Adobe还在车库创业时,我们就和他们的创立者打过交道。苹果是他们第一个大客户,当年我们新型的Laserwriter打印机采用过他们的Postscript语言。苹果还投资过Adobe,并多年拥有该公司约20%的股份。两家公司曾并肩合作,一同在桌面出版的前沿打拼,一起度过了一段美好时光。那段黄金时代过后,两家公司便分道扬镳,苹果从死亡线上活了过来,而Adobe则依靠Acrobat产品朝企业市场发展。今天两家公司依旧都在为共有的、有创意的客户服务:将近一半的CreativeSuite用户使用Mac电脑-
但除此之外,我们几乎没有共同利益。

我想写下我们对于AdobeFlash产品的看法,这样客户与批评者能够更好的理解:为什么我们的iPhone、iPod与iPad不兼容Flash。Adobe称这是商业利益的驱使,他们认为我们是想保护苹果程序商店,但实际上这只是个技术层面的问题。Adobe声称我们的系统是封闭的,而Flash是开放的,但实际上反过来说才对,让我来解释:

一、开放
Adobe的Flash产品是有100%专利权的,提供商只有Adobe一家,只有Adobe有权决定其未来的性能、价格等等。Adobe的Flash产品是相当普及,但只要它完全受到Adobe的控制,并只能从Adobe取得,就不能说它是开放的。不管从哪个方面看:Flash是封闭的系统。

苹果也拥有很多专利产品。虽然iPhone、iPod及iPad的操作系统就有专利权,但我们坚信所有与网络有关的标准都应该是开放的。相对于使用Flash,苹果采用了HTML5、CSS以及JavaScript-这些都是开放的。苹果的移动设备全部都能在这些开放标准下高性能、低耗能的运作。HTML5,这个由苹果、谷歌和其它厂商共同创立的网络新标准,能够让网络开发者在不依靠第三方浏览器插件(比如Flash)的状况下,创作高阶的图形、排版技术、动画与特效。HTML5是完全开放的,由标准委员会管理,苹果是会员之一。

苹果甚至为网络创建了开放标准。例如,苹果曾创立一个小型的开放源代码计划,由此创造了Webkit:一个源代码完全公开的HTML5渲染引擎。所有产品上的Safari浏览器都以此为核心。Webkit也被广为使用,Google把它用到了Android的浏览器上,Palm也用、Nokia也用,RIM(黑莓)也宣布将会采用Webkit。除微软以外,几乎所有智能手机浏览器都采用Webkit。基于Webkit的技术公开,苹果为移动网络浏览器设定了标准。

二、完全的网络体验
Adobe多次宣称苹果的移动设备不能提供”完全的网络体验”,因为网络上75%的视频是Flash格式的。但他们没提这些视频几乎都有另一种更先进的格式可供选择:H.264,而H.264格式视频能在iPhone、iPod与iPad上观看。差不多拥有互联网上40%视频的YouTube,能够依赖程序在所有苹果移动设备上播放。而iPad能提供最好的YouTube视频探索和观赏体验。再加上Vimeo、Netflix、Facebook、美国广播公司、哥伦比亚广播公司、有线电视新闻网、国家广播公司、福克斯新闻、ESPN、国家公共电台、《时代》、《纽约时报》、《华尔街日报》、《运动画刊》、《人物》、《国家地理》,以及其它更多的视频来源,iPhone、iPod、iPad不会错过大多数视频。

Adobe还宣称苹果的设备不能玩Flash游戏,这说的没错。幸运的是,程序商店里有超过5万种游戏与娱乐程序,大多数都是免费的。iPhone、iPod与iPad能玩的游戏比世界上任何其他平台都多。

三、稳定、安全与性能
赛门铁克最近将Flash列入2009年安全性最差名单中,我们也早就知道,Flash是Mac死机的首要原因。我们曾经与Adobe一齐修复这些问题,但是多年过去依然没有解决。我们不想因为加入Flash支持,而降低了iPhone、iPod与iPad的稳定性与安全性。

此外,Flash还严重制约移动设备的性能,我们一再地要求Adobe拿出Flash能在某种移动设备上流畅运行的证据,任何移动设备都可以,但多年过去,我们从来没看到过。Adobe曾在2009初公开表示Flash将登陆智能手机,然后又说是2009年下半年、接着又是2010年上半年,现在他们又说是2010年下半年。我们认为它总归会登陆的,但我们庆幸自己没有期望过高,谁知道Flash的表现如何呢?

四、续航时间
为了播放视频时,让电池有更长的续航时间,移动设备必须采用硬件解码,如果采用软件解码能耗会很高。现代多数移动设备的芯片都内置H.264解码器,H.264格式是工业标准,应用在每台蓝光和DVD播放器上,而且被苹果、谷歌(YouTube)、Vimeo、Netflix与许多其它公司采用。

虽然Flash最近加入了对H.264格式的支持,但是现在几乎所有的Flash网站上的视频都需要老一代的解码器,移动芯片并不支持,以至于不得不软解码。结果差别是巨大的:例如在iPhone上,H.264格式的视频能播放10小时以上,但如果视频以软解码形式播放,不到五个小时电池就将完全耗尽。

当各网站将视频重新以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。我们已经讨论过使用Flash播放视频以及网站交互内容等弱项,但Adobe还是希望开发者使用Flash来创建能在我们的移动设备上运行的程序

我们从痛苦的经验中得过教训:让第三方软件挡在平台与开发者之间,其结果必然是写出低于标准的程序,并且还会阻碍所在平台的进步与提高。如果开发者依赖第三方开发工具与函数库,一旦平台加入新功能,开发者必须等到第三方厂商支持并推出这些功能,他们才能利用。我们不能依赖第三方厂商,让他们来决定何时将新功能提供给开发者。

当第三方厂商提供跨平台的开发工具时,情况变得更糟。除非新功能支持所有他们支持的平台,否则他们可能不会采用某个平台的新功能。如此一来开发者只能使用最少的功能组合。再次重申,就因为新功能不被我们竞争对手的平台所支持,就把开发者阻隔在创新与提高之外,这样的结果我们绝不接受。

Flash是一个跨平台的开发工具。协助开发者写出最佳的iPhone、iPod和iPad程序不是Adobe的目标。他们的目标是帮助开发者编写跨平台程序。而且Adobe在采用苹果平台新功能上动作迟缓。例如,MacOS
X至今已上市将近十年,但两周前当他们的CS5上市时,才完全支持(Cocoa)。在完整支持Mac
OSX问题上,第三方主要厂商中Adobe是最晚的一个。

我们的动机很单纯:我们希望提供最先进和创新的平台给开发者,而且我们希望他们直接站在这个平台的肩膀上,写出全世界见所未见的最佳程序。我们希望继续加强这个平台,这样开发者能写出更梦幻、强大、有趣和有用的程序。每个人都是赢家。相比其他平台,我们能卖出这么多设备,只因为有最好的程序,开发者有最广大的观众和用户做基础,用户也能不断的被更多和更好程序所吸引。

结论
Flash是个人计算机时代的产物,为个人计算机与鼠标准备。对于Adobe而言,Flash是门成功的生意,我们理解为什么他们要将它推广到其他领域。但是移动时代是低功耗、触屏界面与开放网络标准的时代,不管从哪个角度看,Flash都有缺陷。

众多的媒体门户提供适合苹果的移动设备的内容,说明Flash不再是观看视频和体验网络内容的必需品。苹果程序商店里的20万个程序也证明了数以万计的开发者不再需要用Flash来制作动感十足的应用程序,包括游戏在内。

移动时代创造了HTML5等的开放新标准,它们将在移动设备(还有个人计算机)上获胜。也许未来Adobe应该将焦点更多的放在HTML5工具的开发上,而在苹果放弃过时东西的问题上少加批评。

史蒂夫·乔布斯

2010年4月

英文版原文:

    什么是HTML5?

    根据维基百科上的解释,HTML5 的前身是 Web Applications 1.0,由
WHATWG 于2004年提出。2007年,它被 W3C
接纳,并于2008年1月22日发布第一份正式草案。

    以下摘录自维基百科的文字介绍了 HTML5 的特点和与 HTML4 的差别:

新应用程序接口(API)
即时二维绘图
定时媒体播放
储存
离线
编辑
拖放
通讯/网络
后退按钮管理
MIME 和协议处理程序时表头登记

    与 HTML 4 的不同之处

新的解析顺序
新的元素:section, video, progress, nav, meter, time, aside, canvas
input 元素的新属性:日期和时间,email, url
新的通用属性:ping, charset, async
全域属性:id, tabindex, repeat
移除元素:center, font, u, strike, s, frameset, frame, applet

    战胜 Flash, HTML5 还需要什么?

    决定胜负的因素很多,在此分为两部分分析。

    一、技术方面

    HTML5 与 Flash
在功能上并不是完全重叠的,比如对于摄像头等计算机硬件的调用,仍然只能使用
Flash 或其他方法实现。但是 HTML5 却引入了一些让 Flash
不得不认真对待的元素。其中最为人所知的和最重要的即为 canvas 和 video
标签。在我看来,其他的新属性跟 Flash
的竞争关系很弱,只有此二者是真真正正要抢 Flash
的饭碗,而且一旦普及,将深刻的改变整个互联网,可谓是 HTML5 的左膀右臂。

    canvas

    在 Flash
流行之前,曾经出现过很多种在网页中实现绘图功能的方法,其中包括著名的Java
Applet 。这些方法各有千秋,相互竞争不休。但是在 Macromedia 公司推出
Flash 之后,这场战争很快就结束了。

    为了对抗 Flash,又有很多新的技术被提出,其中就包括现在 Flash
的东家 Adobe 提出的 SVG。然而这没有能够阻止 Flash 迅速的被网民接受。基于
Flash 的动画、游戏等应用几乎是在一夜之间蔓延到了互联网的每个角落。

    而今,新的挑战者出现了,他就是 HTML5 的新标签 canvas。

    canvas 相比 Flash
显然是有其优点的。它不依赖于外部插件、与浏览器渲染引擎紧密结合、节约资源,最重要的是极大的简化了图形和网页中其他元素的交互过程。

    对于 Flash 来说,使
Flash中的元素与网页中其他元素进行交互是要消耗大量时间和资源的,另外在编程上也相当不方便。

而 canvas 本身就是 HTML5 的一个元素,可以像操作普通 HTML
元素一样操作它。开发人员可以将所有的代码整齐的写在一个文件里,降低了维护与更新的难度。

    然而 canvas 也有其缺点:

   
其一,开发者不得不编程描绘每一个点和矢量曲线,在旋转缩放时更需要和矩阵变换打交道,这会增加描绘复杂图形的难度。而在
Flash 里,图形显示的 API
被封装在名为“Sprite(显示列表)”的类里,大部分图形元素都继承于此类,开发者可以使用多种工具设计图形,对图形进行旋转放缩只需要简单的调用类
的函数。

    其二,动画的实现存在缺憾。canvas 虽然提供了不同于传统的通过 div
块实现动画的方法,但这种方法仍然非常繁琐。开发者必须在每一桢动画显示时清空画布,然后重画所有元素,这必然导致包含大量元素的场景动画缓慢,只移动少
量元素就要重画整个画布会浪费大量资源。而且创建动画也是一件十分繁琐的事情。相比起来,Flash的实现就方便多了,虽然从最底层来说,动画时仍然需要
重画整个画布,但其被交予 Flash Player
自动处理,无需开发者手动管理。基于字节码的 Flash
在解析的过程中将会比即时编译的 HTML5 和 JavaScript
快速。一般来说,复杂动画将会更流畅。另外,良好封装的图形类和强大的设计工具使得动画的创建非常方便。

    其三,没有提供一套方便的事件体系。开发者也许需要通过捕获鼠标在
canvas
中点击的坐标,判断用户到底点击了什么图形元素。在这个过程中可能要遍历所有的显示元素并判定点是否在图形内,实现起来比较繁琐,更不要说实现事件的冒泡
和递归模型了。虽然今后出现的图形库可以解决这个问题,但这实质上相当于使用
JavaScript
构建了一套事件响应模型,其效率显然不如内建于浏览器的原生事件模型高。在
Flash
中,事件也被良好封装为类,捕获点击等事件自然不在话下,更重要的是提供了判断两个图形是否有交集的事件和函数,这在游戏编程中非常方便。另
外,Flash 的最新版本将会支持多点触摸事件的响应,而 HTML
想要支持这点恐怕要等到 HTML6 了。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website