web

Web 平台的过去和未来

下一篇文章

谷歌眼镜支付应用 Eaze 已支持比特币支付

迈克尔·布莱夫(Michael Bleigh)是静态 Web 托管平台即服务公司 Divshot 的联合创始人兼 CEO。他的 Twitter 帐号是 @mbleigh

作为一个开发者,我会不由自主地对宣称 Web 将死的文章进行驳斥。对于一些人而言,预言下一个技术潮流的到来并宣布现在技术已死,并不是异乎寻常或突如其来的事情。然而,尽管过去几年移动行业出现了爆发式增长,但在可预见的未来,Web 仍然会是一个占据主导地位的软件平台。

首先,我所说的 Web 是指,能在浏览器上访问的 HTML 内容。Web 更泛泛的定义可能还包括几乎所有原生移动应用当前使用的 HTTP API。根据这一定义,Web 根本没有竞争对手。

为何是 Web 呢?

原生应用在 Web 出现前很久便已存在。那为何 Web 会逐渐成为一个如此强大的软件发布平台呢?即便是在 IE6 的时代,Web 也因多个重要优势而在竞争中占据上风:

  • 无需安装。若想使用 Web 应用,你只需在网页浏览器中访问其 URL 即可。无论是什么样的操作系统,每一个用户都可以在几秒钟内访问 Web 应用。
  • 始终是最新的。无需安装就没有升级过程。每次你访问 Web 应用,都会免费获得具有最新数据的最新版本。
  • 跨平台。由于 Web 是依据开放标准建立的,所以每个人都可以开发 Web 浏览器。Web 目标是成为真正的 “一次编写随处可用” 的软件。
  • 网络效应。Web 应用无需获得准许也可以将彼此联系在一起。每一个链接可以像其他链接那样工作。由于 URL 在全世界都可以分享,“如病毒般迅速传播” 的概念才会存在。
  • 足够快。在桌面端,硬件进步往往会让设备的运行速度越来越快,最终导致一个转折点:对于大多数软件而言,Web 应用在大多数时候都够快。它们在功能上相当于原生应用。

得益于上述优势,Web 应用遇到了软件历史上门槛最低的进入壁垒,以及不容错过的机遇。作为一种发布文件的渠道,Web 不久即发展成为一个能量更大的东西:应用平台。

随着时间的推移,Web 作为软件的能力越来越突出。跨平台 JavaScript 库让开发者能制作出更具交互式的页面。AJAX 允许浏览器在不加载页面的情况下,可以发送和接收新数据。随着自身的不断转变,CSS 简化了应用式界面的制作。Web 技术始终在发生着改变,以满足用户和开发者的需要。

移动、移动、移动 

随着 App Store 商店的迅速崛起,我们很容易忘了 2007 年苹果最初的 “应用” 计划也完全是围绕 Web 展开的。虽然许多事情的发展是因为苹果向原生第三方应用的转移,但最主要的原因还是与性能相关的用户体验。我们简要谈一下这个问题。

App Store 商店给原生应用的发布带来了巨大的改进,对于最终的用户而言,安装和升级应用突然间变得像访问网站一样容易。App Store 商店还提供了单一的集中支付机制(永远不要低估已存信用卡数据的力量!)。这些因素最终导致许多人将移动应用商店看作是 Web 有力的竞争对手,或是取代 Web 的工具。

随着智能手机在全球的渗透速度超过 PC,Web 最终遇到了实力相当的竞争对手了吗?现在到了它将火炬传递到更年轻一代原生应用手中的时候了吗?

还没有。

王位觊觎者

这并不是开放的 Web 第一次棋逢对手。在上世纪 90 年代中期,美国在线(AOL)拥有了庞大的 “有围墙的内容花园”。作为当时美国最大的互联网服务提供商(ISP),他们将完整的服务提供给了生活在 “花园” 中的用户。今天,美国在线是一家内容服务商,旗下资产(包括 TechCrunch)都采用开放的 Web。Web 赢了。

Flash 曾经就像是开发者和用户的 “面包”,提供了 HTML 所不能提供的功能,如视频、动画、声音和互动性。当时 97% 的浏览器都安装了 Flash 插件。今天,只有 14% 的网站安装了 Flash,而高峰时则超过了 50%。Web 又赢了。

Web 在软件领域的主导地位总是受到新技术的挑战,一开始,许多新技术会在某一个方面比 Web 更具优势。但 Web 平台具有一种 “超能力”,那就是不断进化。正如杰森·科特克(Jason Kottke)在 2007 年所写,“在一个竞争性市场,从长期来看,开放和凌乱胜过封闭和控制。”

回报更快 

2010 年 7 月 22 日是 Web 平台历史上最重要的日子之一。那一天,谷歌 Chrome 宣布每六周将推出一个重要 Chrome 更新。当时 Chrome 的版本是 5.0,而现在则是 34.0。2011 年,Mozilla 效仿谷歌的做法,面向 Firefox 浏览器推出了一个相似的计划。更快的更新周期,加上 “发布版本”(release channel)概念(只要用户愿意就能提前试用新功能),永远地改变了 Web 开发格局。

考虑到 IE7 是在 IE6 发布五年后推出的,Chrome 将正常更新周期提升了 40 倍。无独有偶,一套名为 “HTML5” 的浏览器技术也在同一时期从零起步,最终成了无所不在的技术。浏览器厂商必须不断改进其平台,否则会被日益挑剔的用户所抛弃。

今天,Web 技术发展的最大障碍不是微软,而是苹果。在 iOS 平台上,苹果强迫第三方浏览器必须采用更慢的 JavaScript 引擎,结果让第三方浏览器 “自废武功”。该公司还强迫开发者在 iOS 平台上推出替代性浏览器引擎。虽然令人沮丧,但这也是传统科技企业遏制那些威胁其地位的创新的常见做法。更好的浏览器意味着苹果封闭的 iOS 平台将面临更大的威胁。

不仅仅是文档查看器 

现代浏览器本身就是操作系统。浏览器技术现已达到或超出原生应用几乎所有优势。以下即是几个例证:

  • 实时/推送信息。过去,在页面上载以后,如果没有获得新的要求,将数据发送给浏览器是不可能的。今天,Server-Sent Events 和 Web Sockets 让这个过程变得更为直接,而 GoInstant、Firebase 和 PubNub 等服务则令其显得没有价值。
  • 富媒体。大多数人都熟悉 HTML5 视频标签。现在我们还有许多途径去访问网络摄像头和麦克风,建立点对点视频通讯,甚至直接从浏览器上处理语音输入。
  • 线下访问。Web 应用也可以在线下运行,保存数据变动,一旦有网络信号就能同步数据,就像原生应用一样。
  • 设备意识。现代移动浏览器可以访问设备方位、加速计、GPS 地理位置以及网络连接等信息。

随着新使用实例的出现,问题不再是 Web 是否能支持新技术,而是何时可以支持新技术。

表现焦虑

对于许多预言 Web 末日来临的人来说,表现是唯一值得考量的问题。他们高呼,“Web 可能永远不会像原生应用那么快!” 他们是对的。但 Web 大可不必像原生应用那么快,只要足够快就行了。

一个常被引用的案例就是,Facebook 放弃 HTML5 恰恰说明 Web 本身不够快。这种说法具有多个漏洞:

  1. 传闻是最不可靠的证据。即便在那个时候,也有人宣称 HTML5 的问题在于执行,而不是概念。
  2. Facebook 打造原生应用意义重大,即便此举对用户体验的改善不大。Facebook 完全有能力招募大量开发人员支持每一个平台的发展。大多数公司就不那么幸运了。
  3. 这件事发生在大概两年前,而且还是在第 15 个 Chrome 更新周期以前。Web 技术发生了快速变化。

asm.js 等最新发展正将 Unreal、Unity 等高端游戏引擎引入浏览器。硬件快速改变让平稳的动画和过渡成为现实,即便是在移动端。与三年前相比,你今天在浏览器上所能做的事情感觉很神奇。

如果你正在开发图形密集游戏或视频/图像处理软件,一定要开发原生应用。但对于绝大多数应用来说,跨平台原生性就像是套在开发者脖子上的十字架。开发者的确对软件平台的统治力具有举足轻重的作用。

开发者、开发者、开发者

用户先对应用的功能提出要求,然后由开发者来实现。相比其他任何平台,Web 作为一个平台更容易理解,开发者也能更为快速地开发相关应用。正因为如此,从 Treehouse、Codecademy 到 General Assembly,许多公司在 Web 上面下的功夫超过了其他任何平台。

客观地讲,Web 应用的发布规模也是世界上最大的。每一个具有原生应用的平台还有一个浏览器。这也是 HTML5 是 Indeed 网站上面第一大就业趋势的原因,也是我在过去一年能将 Chromebook 作为我主要电脑的原因。正因为如此,无论竞争对手的短期优势有多大,Web 最终都会胜出。

当然,Web 也可能从移动端吸取了许多经验和教训。我们需要基于浏览器的认证标准,就像是谷歌在安卓平台上采用的注册方法。我们需要更简单的方法,便于为 Web 平台上的活动付费(requestAutocomplete 是积极的第一步)。我们需要一些工具让应用开发成为 HTML 上面的优先项(谷歌旗下 Polymer Project 主导的 Web Components 将会改变一切)。作为一个十多年来始终从事 Web 应用开发的开发者,我相信这项技术会不断进步,以满足开发者的需要。

千万不要坐井观天,要勇敢走出去尝试新技术。只有这样,科技行业及 Web 平台才能变得越来越好。当然,你也要抱着谨慎的态度,以免随波逐流。但从长期来看,与 Web 对着干始终就像是涉世不深者才会下的赌注。我的建议是,在下这样的赌注之前,一定要万分小心。(译:皓岳)