原文:HTML5 is dead. Long live HTML5!
作者:Stephen Shankland
翻译:@李松峰

在引用马克·扎克伯格(Mark Zuckerberg)对HTML5的抨击证明Web应用已死之前,别忘了Facebook的问题并不是所有人的问题。而且该公司在某些情况下,仍然青睐Web应用。

enter image description here Facebook创始人兼CEO马克·扎克伯格(Mark Zuckerberg)昨天在该公司首次公开募股以来第一次公开发言。在TechCrunch技术大会上,扎克伯格表达了他对Facebook股票到目前为止的失望,并谈到该公司的未来,以及未来增加盈利的计划。

昨天,HTML5粉丝被当头泼了一盆冷水。

Facebook曾经是使用HTML5和相关Web标准构建移动应用的超级死忠,不过也仅限于其创始人兼首席执行官马克·扎克伯格所说的,Facebook的HTML5应用是“ 我们有史以来犯过的最大的错误之一,甚至可以说是一个最大的战略失误。

这些都是极具杀伤力的字眼儿,鉴于Facebook公司在程序员心目中的地位,这些话可能会让很多人无法释怀。

不过,我们还是要具体问题具体分析——可以肯定,对于认为世界非黑即白的人,这件事确实不好理解,但现实却没有那么简单。扎克伯格在发言中仍然说了支持HTML5的话。

以下是他在TechCrunch Disrupt大会上发言的更完整的版本:

反省过去几年,我认为最大的错误就是太专注于HTML5,而忽略了原生技术。HTML5时代还没有到来(?)。

这并不是说HTML5不好。我实际上一直以来都为之感到兴奋。一个有意思的例子,就是使用移动Web Facebook的人,比使用我们iOS和Android应用的人加起来都多。所以说,移动Web开发对我们而言意义非凡……

我们内部构建了这个叫FaceWeb的框架,终极目标就是有了这个自己开发的框架后,每天都能提交代码,而不必受制于应用商店,并且在我们已经拥有的Web基础设施上产生Web代码,然后由此形成移动开发流程。问题只是我们从来都没有把品质做到自己满意……

我们烧了两年钱,已经心力交瘁。回过头来,恐怕我得说,这是我们有史以来犯过的最大的错误之一,甚至可以说是一个最大的战略失误。但现在我们已经从中走出来了。iOS应用,我认为还不错,而Android版也有望很快发布。

扎克伯格自己也是开发人员出身,公开讨论这件事本身肯定是痛苦的。况且,可想而知,当初那么信誓旦旦地要做好Web应用,如今却彻底否定,那简直是痛上加痛。

不过,Facebook决定在这个场合讨论此事也有一个重要的背景。首先,该公司本身诞生于Web,自成立以来,一直都是基于浏览器的界面。

这个基础是难以动摇的。不说文化基因和自身专长,当然这些也是众多公司继续沿用既有编程手段的重要因素,Web其实还有一个特性极具吸引力:部署。

比如做个网站,用户什么时候登录都能看到应用的最新版本。来一次重大升级?把升级内容全都放到Web服务器上,然后走人就行啦。需要修复一个Bug或关闭一个安全漏洞?用户下次再登录网站,自然就修复了。

这就是让人编程上瘾的关键——速度。谷歌,其“早发布常迭代”的理念同样也源于此。不用为了一次发布而等上一个月、一个季度,甚至一年。不用等着苹果App Store的编辑们对你的应用竖起大拇指。不用像微软程序员对Windox XP那样,还要考虑到自己有一半用户仍在使用11年前的操作系统

所以说,Facebook选择Web应用是自然而然的。跟某人突发奇想要写个休闲游戏相比,这个选择要自然得多。 原生iOS应用软件反应更灵敏,扎克伯格表示,它的使用率更高。响应灵敏是好事,但为使用这个iOS应用以及尚未发布的Android应用,用户也将不得不更加频繁地光顾应用商店,去点击那个升级按钮。

另一个重要的因素是Facebook庞大的用户群。既然有数以亿计的用户,那必须要考虑无数种计算设备。浏览器毋庸置疑是适合所有人的一种自然的方式。事实上, Facebook吹嘘自己Web应用的时候,照搬了当初Java的宣传口号:“编写一次,到处运行”。

说到跨平台编程,Web的触角可谓无处不在。iOS的重要性似乎不会永无休止地增长下去,就跟Android一样,而Windows的逐渐消亡当然也颇需时日。今天的程序员必须考虑比以往任何时候都更多的操作系统,浏览器则为他们提供了一个弥合差异的平台。

Web应用的问题及前景

当然,事情远没有这么简单。浏览器能跨设备,但不同的浏览器也有无数大大小小的差异。PC、智能手机和电视中的浏览器所具备的能力仍然千差万别。

因此, Facebook也推出了测试移动浏览器兼容性的Ringmark,试图在浏览器的无序中建立秩序。 “移动浏览器间有着毫无约束的技术分歧,因此开发者不知道他们可以使用HTML5的哪一部分”,时任​首席技术官布莱特·泰勒(Bret Taylor)在2月份的一次谈话中说。(泰勒已经离开Facebook,加盟了一家创业公司)。虽然Mozilla和谷歌在推动Web技术发展,逐渐加入原生应用的编程接口(比如系统通知),但却相对滞后。

所以说,Web应用有它的问题。

但是,Web仍然有其覆盖面、速度和跨平台的优势。Web应用或许不适合开发第一人称射击游戏,也不适合Facebook这种规模的公司,但也有大量的移动应序,对性能要求没有那么高,或者只是作为一个框架从Web站点上获取内容。而且,也有很多熟稔Web技术的开发者,只要凭其浏览器编程技术就能上手开发移动应用。

Web会日益成熟。就在昨天,互联网工程任务组标准化了Opus音频编解码,这种压缩技术将成为未来一个新的基于Web的实时通信标准WebRTC的基础。Facebook今天跟Skype建立了合作伙伴关系,WebRTC能让它们直接使用现成的Web标准实现语音通话和视频会议。Skype已经有了足够多相互联系的用户。

所以,不要认为Web应用太弱而不考虑它。它或许不适合所有人,但即使Facebook也仍将继续依赖它。