支付宝十周年推出了一个新产品:支付宝的十年账单,我也赶个时髦查看了一下我的支付宝十年账单,哎,感慨自己真是太屌丝了,不过这只是说明我使用淘宝少了,当我大规模网上购物时候,我很讨厌慢速的快递,所以我大部分消费都贡献给了像京东这样具有火箭般快递速度的电子商城了。不过在支付宝十年账单里,有个统计数据引起了我的危机意识,在中国一些偏远或者是经济欠发达的省份,电子购物在居民的全部消费里的占比比发达地区高多了,而这个的助推剂居然是移动互联网在中国的普及,在中国使用智能手机和平板电脑购物的人们已经远超使用PC电脑的人们,这点不管是经济欠发达地区还是经济发达地区都是如此,而且全世界移动互联网发展最好的国家就是中国,这点连美国都不如。
在移动互联网出现之前,互联网系统都是建立在Browser/Server的架构之上,即我们常说的B/S架构,B/S架构其实是Client/Server即C/S架构的一个子集,而到了移动互联网时代,大部分的传统互联网产品都需要我们去安装一个APP即一个客户端才能使用,这个客户端相当于PC电脑上的桌面软件,而每个客户端都是某家公司专门为自己定制的,移动互联网的web应用蜕变成了一个标准的C/S架构。说心里话这个现象的转变让我很诧异,传统的PC也是可以装客户端,为啥C/S系统在PC端没有流行起来,却在移动互联网下流行了起来,更诧异的是,移动设备和个人电脑一样也都是默认装有一个免费的浏览器,为啥移动端的浏览器在很多应用里都是靠边站,人们更加倾向于先麻烦自己一下,下载安装个客户端APP呢?
我今天和一位正在做移动互联网开发的朋友聊了下天,我提出了自己的疑问,在一系列扯蛋以后,我似乎有了上面问题的部分答案,我总结了下,大致如下:
由以上6点我们可以知道了,用户在移动设备上忽视浏览器的原因还是移动浏览器的给予用户的产品没有APP好,孰好孰坏老百姓的心里都是雪亮雪亮的,老百姓是很聪明的,忽悠不到他们的。
在中国移动互联网发展迅速,甚至已经开始挤压PC端浏览器的份额,而移动设备是广大用户的首选,那么这是不是说明web前端技术到了移动互联网领域就会没落了?为了说明这个问题,我想谈谈为啥在PC电脑上我们会选择浏览器开发商家应用,而不是为商家专门开发个客户端软件呢?很多人说这点是商家出于成本考虑推动的,因为世界上操作系统很多,如果要做客户端就得要为每个操作系统开发一个客户端,就算是同一个操作系统,系统升级后客户端就得有相应的更新,就算操作系统没有升级,出于安全考虑很多客户端也会经常升级,而浏览器则不同,开发一套网站就可以打遍天下无敌手,可以不用自己考虑客户端升级的问题,其实用户怕麻烦本性也帮助了这个潮流的发展。那么这个理由在移动互联网里还有效吗?
我们看到的现象得到的答案似乎是无效的,因为移动互联网下浏览器已经没落了,更多人会选择APP而非移动设备的浏览器,但是PC端浏览器大行其道的理由放到移动设备上,仔细掂量下还是很有市场的。
当今世界智能手机和平板电脑上流行两大操作系统:苹果公司的IOS和谷歌的android,虽然Android是一个独立的操作系统,但是到了各个具体手机生产厂商,其手机上所使用android都会被或多或少的改写,甚至有的公司能将其改的面目全非,在移动设备上操作系统的差异处理问题比PC操作系统要严重的多,毕竟个人PC电脑上微软的windows操作系统还是一家独大,我们只要满足了windows的客户端,至少在中国就能满足90%以上的用户需求了。APP就和PC电脑上的桌面软件一样,开发它需要调用大量的操作系统底层API,所以我们想让自己的应用覆盖到大多数用户就不得不为每个操作系统建立一个团队,而这些团队开发同样的业务功能,只不过是使用的技术不同而已,结果会使得一个业务系统拥有多个不同版本,造成了人为的系统异构性,这种异构对系统的运维也产生了很大的影响,不同的系统运维需要彼此独立的运维团队,这样就增加了企业的成本压力。
对于有实力的大公司又该如何选择了,大公司的成本压力会比小公司小很多,但是高企的成本也是一种潜在的风险,大公司面对这样的问题,好的解决方案应该是减少重复性劳动,减轻运维压力,其实时下大部分的APP都相当于一个自制的浏览器,只不过这个浏览器是带有公司自有的业务,因此大公司的做法应该是将APP开发和浏览器开发分离开来,APP开发主要职责是做个框架,不过这个框架相当于新开发个浏览器,这点和java里SSH框架有一定区别,而业务开发人员可以只关心浏览器开发技术,用浏览器技术完成业务开发,至于到了业务运行阶段,主要是业务开发人员的事情,这样就避免了建立重复开发的技术人员团队同时也达到了专业的人做专业的事情,运维也变得简单多了,系统稳定性和健壮性也增强了,还有个最关键的好处那就是可以复用原来的客户端开发的技术人员,这是减轻人力成本的一个重要手段。
由此说来,web前端在移动互联网领域并没有没落,而且移动互联网会给web前端带来大发展的机遇。
在移动互联网时代web前端技术会变得越来越重要,比以前任何时候都要重要。但是移动互联网对web前端开发带来了一个弊病,这个弊病就是web前端技术或许会变得越来越复杂。
首先不管哪个移动端操作系统,浏览器的内核技术达到了前所未有的统一即大部分都是使用webkit内核,由于移动互联网没有pc电脑的历史负担,移动端的浏览器一开始就支持了最新的html5,html5是颠覆性的技术,传统的web前端开发人员要重新学习很多新的知识才能掌握它。
Html5技术提升了浏览器做富客户端开发的能力,这种提升不是量的变化而是质的变化,html5让web前端在整个web应用里的作用提升到了前所未有的高度,富客户端将会更加富有,我们在移动互联网里开发web前端不能在那么随意了,而是需要将web前端技术更加框架化和工程化,那么javascriptMVC技术会应用更加广泛,web前后端分离技术也将更加被人重视,到时如果有人再说web前端技术是一个玩具技术,那么这人就等于还生活在互联网的原始社会了。
移动互联网的大发展导致当今这个时代做一个大型网站的成本越来越高了,因为我们不得不去满足更多的客户端。回到传统的PC浏览器技术,作为一名前端工程师我也感受到最近几年传统的PC浏览器技术也在以前所未有的速度发展,就连恶心的微软公司开发的ie浏览器也在发生着巨大的变化,版本发布更加频繁了。html5刚出来时候有很多朋友说这个东西不知道猴年马月会流行,不要做深入学习了,这个说法发生在两年前,但是时下html5技术开始以前所未有的速度普及,很多人可能认为这是浏览器厂商的驱动的,但是我确认为根本原因还是移动互联网上html5的普及间接影响到了PC浏览器的发展,移动互联网的普及挤压了传统PC电脑的部分生存空间,迫使那些原来依仗自己垄断地位不愿改变的厂商发生了变化。
移动互联网的普及对互联网服务端系统架构也会产生很大的影响,对于这个影响的思考还是源自于有一天和一个即将毕业的大学生的聊天,那天他问我自己到底是做web前端开发还是做移动开发好,当时我们简单聊了下两种技术的差异,他觉得客户端技术之间的差异太大,更新太快,他似乎对这种不可控性感到有点害怕,如是他又问我:移动端对应的服务端技术和PC浏览器所对应的服务端技术是不是一样的,我的回答当然是一样的,所以最后他觉得自己还是从事服务端开发比较好。