w3ctech

Web与原生:我们得承认失败

原文地址:http://www.quirksmode.org/blog/archives/2015/05/web_vs_native_l.html

我觉得现在该重提Web与原生的争论,并且承认失败了——或者至少承认Web不能,而且也不应该在复杂的、类似应用的场景下与原生竞争了。

在模拟原生应用这条路上,我们走得太远了。承认失败才能重新思考Web的用途及其独有长处,虽然已经为时太晚。

我们企图超越原生的欲望,已经催生了过分复杂的工具链,拖慢了本应简单的网站。在此,我想特别提一下苦苦挣扎的新闻网站,接下来会证明为什么它们应该选择原生路线,而不是Web。

工具之争

最近我写的一篇关于工具的文章收到很多反馈,其中不少观点很有意思。我没时间逐个回复,不过所幸Jeremy上周的一篇文章好像正好是替我写的。看一看这篇文章,你就会了解目前都存在哪些争议。

最有力的反击来自Sebastian Markbåge,他在文章中条理清晰、逻辑严密地论证应该有更多、更好的工具。可是,他那篇文章的前提是Web应该模拟原生用户体验和原生应用。

这个前提站不住脚。难道Web的用处就是加入更多功能以模拟原生应用吗?我不那么认为。

原生打败Web

技术上讲,很简单。Web不可能完美模拟原生,永远不可能。原生应用直接跟操作系统对话,而Web应用是跟浏览器对话,然后浏览器再跟操作系统对话。这样Web应用与操作系统之间就隔了一层,而这一层导致它与原生应用相比,速度会慢一些,同时也粗糙一些。这个问题是无解的。

即便如此,我们Web开发者愣是花了6年时间来否认现实。我们工作的思路一直是所有网站都应该像应用一样,由此就义无反顾地不断制造工具。Web是无所不在的,对吗?那它也非常适合用户的复杂任务,对吗?

错。我认为。

模拟原生会导致很差的用户体验(至少赶不上原生用户体验)和表现不佳的网站,原因就是那些我们认为必要的库和框架。Baldur Bjarnason说得好

你们劫持滚动条,破坏可用性。你们对照着飞快高效的原生功能(滚动、选择、链接、加载),用“最前沿的”JavaScript工具和框架来重写它们,结果却慢吞吞、常出错、很难用。你们给自己的网站装备了几兆的东西。你们对最佳实践视而不见。你们把有用的对业务有益的补充变成了累赘。

真到了该承认这是一种错误方法的时候了。我们不应该以原生应用的标准去跟原生应用竞争,而应该把注意力放在Web自身的长处上:它的无所不及,包含所有原生平台(这一点很明显);它的URL,极其有用而原生环境不支持;还有它不麻烦的特性。

不麻烦的Web

不麻烦?什么意思?实话实说,这一点相当有意思。

最近,Benedict Evans把公司应用是否应该选择原生而不是Web归结为一个问题

“人们想不想把你的图标放在自己的主屏幕上?”

如果答案是想,那就选择原生。如果答案是不想,那就选择Web。不过,我要补充一句,可不是假装成原生的Web。

说到这我想起了4年前Scott Jenson的一篇文章,文章中的说法有点类似。多数需要互联网存在的商业形态(比如小商店、疏通管道服务、餐车等)都不需要出现在你的主屏幕上,而只要能支持即时交互就行了。想知道它们的营业时间、电话号码或菜单?随时可以上网查。用户希望上网查这些信息,不希望费事地安装它们的应用。

实际上,这对Web而言绝对是好消息。如果用户不希望你的图标出现在他们的主屏幕上,如果用户想要的就是一次即时交互,那就是Web了。并不是因为Web在技术上有什么优势,而是因为它不麻烦。打开网站,查看信息,然后关了完事。一点不用占用手机空间。

大多数公司都没机会出现在用户的主屏幕上。因此这些公司才需要Web,但不是盲目模拟原生的Web。

新闻网站

有事实为证,新闻网站最容易塞满没用的东西。并不是网站所有人愿意,而是他们迫于业务压力不得不在网站中插入各种广告和吸引人点击的东西。他们想要的是一个毫无特点的界面,至于为什么,只有鬼知道。想让别人看起来像原生的?还是就此打住吧。

我们再问一遍Benedict Evans的问题。用户想不想把这些新闻网站的图标放到自己的主屏幕上?对于一些久负盛名的报纸,当然,我确实认为应该如此。就包括新近的Next Web或Verge也有这个必要。这确实是做原生应用的一个充分的理由。

接下来就是预算的问题了。Tim Kadlec恰如其分地指出了这一点

如果网站很慢,那说明性能不是最优先考虑的。因为在最终拍板的时候,时间和资源都被投入到了站点的其他功能上,而非保证网站快速加载。

你把预算花到了网站的哪一部分上?性能还是功能?新闻网站因为业务需要会选择功能。

因此新闻网站会出现在很多用户的主屏幕上,它们需要原生应用才会有的用户体验。而且,如果它们都是原生应用,那么用户只要下载相应的框架一次,然后显示广告、吸引点击和漂亮的功能(及内容)就有人管了。此后,用户只需要下载广告(和内容)。很容易理解,在你的互联网存在中有很多乱七八糟的东西时,原生性能更佳。

正是出于这个原因,我认为Web开发者应该建议新闻网站以及所有认为功能优先于性能的网站选择原生路线,因为这样才对它们有利。事实上,由于对这些网站来说必要的功能是性能最大的杀手,Web将不再是发布它们网站的最佳媒体。

更新:刚收到一个不错的反对意见:新闻网站需要URL。一点都没错。看来还得好好想一想。

当然,开发两个原生应用比开发一个网站要贵。可这是你把预算花到功能上的必然结果,不是吗?选择Web,不仅无所不在、没有麻烦、没有乱七八糟的东西、速度快,而且成本更低。(好,这个说法有必要再深入讨论,但我希望你明白我的意思。)

重新思考Web

这是我喜闻乐见的一个例子。对你的用户来说,你要想想他们的用户是不是愿意把它们的图标放在自己的主屏幕上,如果答案是不,为什么他们还坚持在那些没用的功能上浪费钱呢!

你怎么说服他们选择原生或者利用Web的优势而回避其弱点呢?他们会赞同哪种说法?

我知道这个问题还有很多值得探讨之处,这样才能重新思考Web以及它与原生之间的关系,认识原生与Web各自的优缺点,而不是沉迷于跟实际没有关系的理想化的Web。

可是,要重新认识Web,就得先承认它搞不过原生。这样我们才会解放思想。我太渴望Web重生的那一天了!


【继续阅读】回应:web应用与本地应用之争

w3ctech微信

扫码关注w3ctech微信公众号

共收到5条回复