专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
码农翻身  ·  漫画 | ... ·  昨天  
程序员小灰  ·  刷新三观,深圳某公司重新定义八小时工作制 ·  2 天前  
码农翻身  ·  Chrome背后最大的秘密:印度人拯救了Go ... ·  3 天前  
OSC开源社区  ·  甲骨文正式发布VirtualBox ... ·  6 天前  
51好读  ›  专栏  ›  程序猿

除了小程序,我们别无选择?聊聊WebApp的未来

程序猿  · 公众号  · 程序员  · 2017-01-11 19:57

正文

来源:知乎专栏-青岚

链接:https://zhuanlan.zhihu.com/p/24799134




最近小程序的文章铺天盖地,发酵了快一年的小程序终于推出了,朋友圈再次被刷屏。但我们会发现,大家在热议小程序时,谈的其实不是小程序的技术本身,而是小程序的产品逻辑,这很“腾讯”,这很“微信”。

 

作为一个前端码农,我也试图从小程序的技术本身去理解小程序未来到底会是什么样,或者说,小程序是未来吗?自己大脑反复思考后,我得出的答案是:小程序代表不了未来,一个前端码农对自己这样说。




为什么一部分人觉得小程序好?

 

首先我们要明确的一点是不是所有人都觉得小程序好,先抛开觉得小程序不好的这一部分人,我们可以简单看一下为什么大家觉得小程序好,以下是我总结的主要原因:


1、有方便的入口;
2、有微信的社交属性;
3、体验流畅,无需安装下载。

 

以上几个主要因素中,我们发现其实只有第3个因素是和技术有关的,其他两个,其实还是因为微信的产品逻辑,而其他两个,在没有小程序时,依然成立。那这里有个问题,小程序一定是必须的吗?

 

在回答上文提出的问题之前,我们先聊一聊小程序的技术。小程序的技术层面上提供的支撑,让小程序具备了很多新鲜的能力,比如:类似NA体验、无需安装下载、基于微信的API。


这些能力让大家都觉得一个小程序就是一个APP了。作为一个前端码农,这里又触动我的神经了,这不是Web的特性吗?这么深入浅出的分析,我们会发现,小程序很渴望Web的特性!这很不“腾讯”,这很不“微信”。

 

所以很多人觉得小程序好,是因为它在具备了部分NA能力的同时,也拥有部分Web的特性,并且有微信赋能(入口、社交),这大概是那一部分觉得小程序好的人的想法吧。

 

但根本问题是,小程序不是Web,因为它是独立的、封闭的。


小程序没有想象得那么好




上文已经提到了小程序可能让大家觉得爽的点,在这里也需要提一提小程序特别不好的,特别让Web开发者不爽的地方,我们都知道,Web或者互联网的核心哲学理念是:

去中心化

避免信息孤岛
万物互联


我们比较一下小程序的几个“规范和理念”:


不能脱离微信运营(中心化)
没有独立可访问URL(信息孤岛)
无法连接其他Web页面(万物不可联)。


这么一比,非常容易看出来,这些非常不符合互联网哲学理念的限制,也同时限制了小程序的路走不远。小程序,没我们想象中那么好。




现在的Web足够好吗?


作为一个前端码农,我带着非常诚恳的态度承认:现在的Web不够好,甚至特别糟。


其实现在的Web不够好,也是大家觉得小程序不错的一个原因吧。


既然都说了现在的Web不够好,那到底是哪里不好,请大家继续往下读。



在PC时代,桌面上大家和外界互通的入口,其实基本是浏览器。PC时代的Web,已经满足了大家一切非移动特性上的互联网需求,但随着移动互联网的技术发展,IOS和Android手机迅速占领大家的日常生活,而移动互联网同时带来了另一个新的东西,叫做NativeApp(原生应用,简称NA)。


众多NA满足了大家在手机上的需求,并快速覆盖了各种互联网垂直行业。在此过程中也有极少数超级NA占据了移动互联网的半壁江山。

 

移动互联网操作系统的技术生态同时也改变了Web,在手机上,Web不再是唯一的互联网入口,大家通过在桌面上放置五花八门的APP来满足日常的需求。


移动互联网也让PC时代的Web不再那么风光,潜移默化的,大家也都使用开发NA而不是开发Web页面的方式来服务用户了。

 

那为什么众多开发者会觉得现在移动互联网的Web页面不好呢?原因总结如下:


1、手机桌面入口不够便捷;
2、没网络就没响应,不具备离线能力;
3、不像APP一样能进行消息推送。

 

除此之外,作为前端码农的我也发现众多Web开发者都是PC时代转行的,移动互联网手机的特性,要求了大家需要写更好的代码,才能做好一个Web页面,也就是我们所说的Web App。




Web App会好吗?

 

作为一个前端码农,我必须回答:WebApp会好。

 

让我们再回顾一下之前所讲述,我们先论述了为什么有人觉得小程序好,这里得到的结论是抛除微信本身的能力,小程序好的原因其实是因为它具备了几个Web页面的关键特性(无需安装下载、用完即走),其次我们也讲述了为什么现阶段的WebApp不够好。

 

一方面是因为Web缺少了一部分NA的能力(离线,桌面入口,消息推送),另一方面是因为Web的开发者(特别是国内的)综合能力欠缺,缺乏具备开发一个好的Web App的能力。


那基于以上的回顾,我们发现Web App可以变得更好。作为前端码农,我必须给出我理想中的方案:PWA(Progressive Web Apps),什么是PWA呢?PWA就是渐进式Web应用,它具备了Web对比NA急缺的几个能力,包括:


1、离线缓存
2、添加到主屏
3、消息推送


基于以上能力,一个Web App基本上可以媲美一个Native App,同时,它还具备了小程序渴望的特性:


1、无需安装
2、用完即走


很激动有木有!!


赘述了这么多,我们回顾本文的标题,也是一开始留下的问题:


问:除了小程序,我们别无选择?
答:有选择!我们可以使用开发的、标准的Web解决方案:PWA。


Web App的未来,它是开放的、不封闭的,它可以做的更好,至少比小程序好。