Web端请停下来

https://www.quirksmode.org/blog/archives/2015/07/stop_pushing_th.html
                      -- 2015.7.28

高能预警,你可能会讨厌这篇文章。我想要让web届停止开发。我想要让新的web浏览器,至少一年内不要加入新特性

最近,我对web届的前景持有很大的怀疑。为什么我们一定要推着web走呢?至今为止,我们做的对吗?你可能从来没有听过类似的疑问。

最近web届以极快且危险的速度一直在发展 -- 可能是一些有趣的东西,一些东西可能会打动你,但是总而言之,东西加的太多了。

请回答,2015年浏览器加入的所有特性名称!你看,你回答不了吧。这就是问题。

我们现在有前所未有多的特性,变得前所未有的复杂,需要前所未有多的polyfill以及其它工具 -- 工具本身也是一个问题,这不是一个正确的答案。

我不觉得这是web前景的一个正确方向。原生App总是比浏览器的体验要好。所以,我们应该发展web的长处:简单,URL以及容易获得。

web届朝着一个错误的方向不断创新。我们需要踩一下刹车。我们需要机会来学习这些特性。同样的,我们需要暂停下来,花费一点时间来思考web届的前路在哪。我认为一年时间,足够我们完成这些事了。

目前的处境

可能你还很惊讶我的看法,那么请看下面这张图,这是一个艺术家的现代浏览器:

浏览器图片

浏览器厂商和web开发者都聚焦于特性和功能,但是忘记了用户体验。

例子:导航渐变

就我个人而言,导航渐变 我认为是当今浏览器特性的错误示范。它的作用是让一个页面过渡到另一个页面的时候,动画更加平滑。

这听起来不错,但是为什么我们要这么做呢?我们没有这东西这么多年也好好的。更重要的是,终端用户也适应了一个页面跳转到另一个页面时的短暂延时。

最近,web开发者突然觉得需要这些过渡动画,所以把它们加入到了浏览器特性中。但是为什么web开发者觉得需要导航渐变?当然是为了模仿原生App。对我来说,这个特性加入的理由完全不够。

另外,导航渐变需要另一个polyfill,让我们的开发工具箱变得更加复杂。

有趣的是,微软在IE4加入了一个类似的特性,然后在IE9中把它废除。

专注特性阶段

Jared Spool为软件市场成熟度,发明了一个三阶段模型。我认为这也同样适用于现在的浏览器.(请看他的1997年的一篇文章).


  1. 专注技术阶段:用户毫无用户体验,软件缺少很多特性。但是你的产品做的事,其它软件都做不到。
  2. 专注特性阶段:用户通过特性来决定使用哪一款产品。如果你知道哪一种特性是用户真的需要的,并且知道原因。那么你就会成为赢家。
  3. 专注体验阶段:用户可以使用任一一款竞争中的产品,因为它们的功能都是一样的。这时候,用户体验就变的至关重要:如果你的产品让你的用户更容易使用,他们就会买。这时候,你甚至可以让一些特性开发变得不那么重要,直到你的用户觉得需要他的时候再开发也来得及。

想想现在的浏览器产品,想想web开发者对用户应该做的。web开发者应该对浏览器有什么期待?

首先,我们在专注技术阶段,让HTML,CSS,Javascript一起工作是多么奇迹的一件事。虽然有很多让人厌烦的不兼容问题,但是我们还是对技术本身痴迷。

然后,我们习惯了浏览器带给我们的功能。这时候,我们有了一些点子,但是因为不同的浏览器支持不同的特性,并且它们沿着这条窄路一直走,所以很难加入特性。我们需要更好地定义哪些是我们需要的,然后对浏览器厂商施压,让他们实现这些特性。

请不要误解我,专注特性阶段是非常有用的。但是我觉得这个阶段太久了。我认为是时候转移到专注体验阶段了。

专注体验阶段

Jake Archibald极为推崇下面这句话:

我认为大多数人都看中功能多于体验。这也是为什么 性能/离线应用/渐进式增强 之类的卖点很难卖的动,但是推送消息之类的功能却很受欢迎。

我说的不是浏览器的用户体验,而是网站创建过程中的(开发者)体验。我不确定Jake说的是否有道理,但是他说的显然是另一个语境下的事情。

Web Component(或者其它同等重要的,令人兴奋的提案)都是特性,所有人都喜欢。渐进式增强是一种体验,它被认为是不现实的,因为没有人会把Javascript关闭掉。(这其实不对,但是这次不讨论)

现在,我认为渐进式增强也没什么大不了,我们的注意力都被新的浏览器特性瓜分了。只要把这些特性去掉,就能为我们带来用户体验。

暂停

我们让web在模仿原生App的道路越走越远,但其实我们永远也做不到原生App。我们需要极多的,难懂的polyfill工具。这不是我想象中web的前景。

因此,我呼吁暂停浏览器新的特性开发一年时间。让我们把所有已经完成的新特性也延后吧。

浏览器被鼓励于先加入已经在其它浏览器支持的特性,然后再开始修复bug。事实上,在暂停研发新特性的时间中,找时间修复旧有的bug是很重要的。新增加的功能并不会抵消旧友的缺陷。

暂停开发新特性,会让google的chrome更加难受。因为现在的众多新特性,大多是Chrome提出的。这可能不太公平,但是因为Chrome处于顶部(不只是市场份额,而且包括支持的特性数量),这就是它不可避免的责任。

扼杀创新

暂停新特性开发的最主要反对论点是,这会阻止Web创新。由于web创新现在被定义于“更多地模仿原生App”,我认为一些扼杀是有必要的,甚至是好事。一旦web创新被重新定义于和web相关,我认为那个时候就可以恢复如常了。

另一个反对论点是,但是我们就是需要特性X!。任何人都可能有一个偏爱的特性,被暂停计划给打断 - 我偏爱的是离线兼容性。这个论点没有提及原生App,所以听起来还不错。

最后的反对论点是IE6。因为微软的拒绝更新,Web开发者已经被阻碍了长达五年之久。新特性会被加入到其它浏览器,但是不会加入到IE。

再次,我要回答是否缺乏新特性会阻碍创新,这不是事实。我要引用James Edwards的话:

有限制才会刺激创造性

让IE6工作已经激发出了很多创造性,即使虽然不是每个解决方案都能站得住脚,它们同样提供了思考方式。

同样的,IE6时代同样强制我们思考我们这些web开发者真正需要什么。我们需要定义和捍卫我们请求的每个特性,并且设置优先级。

请不要再推着web走啦

所以让我们把web端新特性开发暂停一年。它可以让我们放松,重新思考。

posted @ 2019-03-26 06:37  thomaszdxsn  阅读(188)  评论(0)    收藏  举报