5G,对前端有什么影响

5g-01

最近在小组做了一次小分享,主题是【5G来袭,我们有何机遇】,有这个想法是源于在社区看到有人面试被问到这个问题。因为2019年5G一直都是热门话题,而小组刚好有次分享机会,所以自己花了点时间做资料收集和整合,看看5G对未来前端的领域有哪些影响。本文主要还是以聊聊看法为主。

可能有人一看这个标题或者选题,就会冒出想法:一看就是蹭热点的啦,5G真正到民用哪有那么快或者前端只是个写UI的页面仔,能有多大影响…马上关闭页面走人!

且慢!没错,5G到真正普及可能还有到明年甚至后年。但是我想在这里传达的是:我相信意识会潜移默化的影响你的行动。有些东西看似遥远,但是你日常有意识的多留意、多思考一下,总会比你真正发生变革时才突然觉悟(原来5G真的已经来来、原来5G真的颠覆大家对前端这个认识,巴拉巴拉…)要更有优势。

移动通信的发展

先来简单介绍一下基础硬件的移动通信历代发展。

1G

1g

从上图可以看出,1G时代,移动通信的主要设备就是大哥大,如果看过80、90年代的香港电影,应该会看到过这种大哥大电话。

2G

2g

到了2G时代,速度到了32Kb/s,除了能打电话,也可以发短信了,还可以利用2G网络来打开非常简单的网页,而且移动手机设备也变小了不少。比较有代表性的比如诺基亚功能机。这时候已经初现移动网页了,但是页面都是最简陋的形式,而且受限于流量资费的影响,普通人基本是很少使用里面的网络功能的。

3G

3g

3G时代,移动通信的网络速度最高2Mb/s,出现了上网冲浪、手机QQ、3g智能手机等等经典名词。比如下面这张很熟悉的手机QQ网页

5g-04

可以看到界面都是比较原始,基本就是文字加链接的形式,偶尔会有一两张图片。3G时代的流量资费对于普通人来说,还是很贵、很少。所以当时基本都是在浏览器设置,把显示图片的功能关闭,这样可以节省很多流量。而且当时的手机QQ很流行,还有飞信(因为发短信不用钱,只要流量就行了)。但是手机qq还是有离线和在线的概念,因为生怕流量被无缘无故流失,基本都是需要网络的时候才打开移动数据功能,然后登录qq上线。

5g-05

3G时代还发生了一件很有历史影响性的事件,那就是乔布斯带来了3G触屏智能手机。原来手机可以长这样,不需要键盘!可以触屏!也正是苹果,带来了移动应用APP这个概念。那种惊艳真的无法用言语表达。

4G

4g

到了4G,网络速度最高达到100Mb/s,是上一代的50倍。因为有了苹果的3G智能手机,后面陆续的智能手机也出现了,而小米,把国产的智能手机开启了在当时看来非常便宜的价格普及。有了4G和智能手机,人们能用手机的事情就多啰:以前只要电脑看的网页开始为移动端适配了,网页也多了图片、视频和音频等更丰富的形式,各种语音聊天、视频社交、视频直播接踵而至,在线社交也没有了上线和离线的概念,因为大家always online。硬件的发展也带动了移动互联网的技术发展——H5技术到来,也带来了火爆的移动互联网时代。

5g-15

5G

5g

2019年,5G的商用牌照已经下发,意味着5G时代将要来临了。是第五代移动通信技术,包含毫米波、波束赋形、Massive MIMO 等众多关键技术。这么多的技术,好像也看不懂,那么5G有什么牛的地方呢?有三大普通人也能明显感知的特性:

  • 高速率:未来理论上10Gbps 的通讯速率,相比4G提升了约100倍

  • 低延时:1ms的超低延时,相比于4G网络小于50ms的延时,再次降低了一个数量级

  • 广连接:每平方公里100万个设备接入,这也让每个物联网设备单独接入网络成为可能

我们在看5G介绍时,经常看到的就是下载电影只要多少多少秒~看来速度,一直都是人们最能直接感受的变化了。而这些特性,又将会给对前端带来什么影响呢?下面本文从三方面分析(终于入正题了)。

对前端有什么影响

XR(VR/AR)技术

5g-03

其实,在2015年~2016年XR技术就已经火了一把,和前端关系比较大的有比如:腾讯游戏在ChinaJoy首曝的《龙之谷》webvr小游戏(Three.js)、支付宝AR红包、全景视频和各种XR活动推广专题等等。

下图是腾讯游戏在ChinaJoy给游戏爱好者现场玩的webvr小游戏场景:
5g-11

下图是支付宝AR红包:
5g-10

下图是一个妹子在玩AR活动:
5g-09

5G如何影响XR技术?

  • 消除时延所致的眩晕感

  • 全新的XR解决方案,即将VR运行能力由终端向云端进行转移的“云计算”

  • 设备无线化。5G云,将大大降低VR/AR体验对“用户终端硬件性能”的要求

  • VR直播/VR流媒体,5G将带来体育赛事和演唱会等大型场景的现场VR直播

  • 更多场景:VR/AR模拟训练、AR车载导航等应用领域

可以看出,5G解决了很多痛点,比如因为时延的眩晕,比如因为有线的缠绕和设备笨重等等。

XR与前端

我坚信的一点是有交互的地方就有前端的需求,所以不管是平面的交互,还是未来的立体交互。

即使回到上面的传统的Web XR层面,5G的出现在加载速度、云计算等方面将会给用户带来更好的体验,从而推动Web XR技术的发展;

而放眼未来,当这些XR设备越来越普及时,酷炫的交互会不会对前端发起新的挑战呢?会不会带来更广义的“前端”技术发展呢?

回到本质:XR技术也无一例外不与图形技术相关联。

引用一句在社区看到的:

图形技术可能是仅有的与前端有密切联系的计算机底层技术了,因为所谓的UI就是靠图形接口调用GPU绘制而成的,这样就意味着掌握图形技术就能更深度地定制UI。

所以图形技术很有可能在未来前端大放异彩。未来的前端UI可能不再是简单常规的流体布局,不再是简单粗糙的元素组件,甚至不再是基于平面设计的UI,而是更加多元化、更加细粒度、更加酷炫和立体的UI。
5g-13

而且我们目前的UI门槛比较低,未来可能会被AI代替(下面说AI的时候会说到)。而图形技术就不一样,首先被AI替代的可能性或者说实现性还是比普通UI要低很多。其次现在这方面的前端还是比较少,一方面是门槛比较高(数学计算、美术、空间思维等等),另一方面市场需求相对较小,可能在一些游戏公司会相对多点(游戏公司在做游戏推广的页面对酷炫UI要求比较多,甚至把游戏里面的某些场景通过web小游戏来呈现给玩家,让玩家在没有下载游戏之前就能进行体验),还有一方面,就是图形开发成本相对比较大,而给企业带来收入不成正比(没钱的企业养个普通开发都嫌成本高了)。

人工智能——AI IN FE

如果你是前端,一看到这个领域,会觉得有点遥远。前端能做AI?在浏览器上做机器学习?不能吧?

的确,看起来是比较遥远,但是我们换一种思维,如果从工具层面呢?

不过,目前的确有支持在浏览器上跑的机器学习开源项目。先来介绍两个开源项目:

TensorFlow,一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief

TensorFlow.jsTensorFlow 出了 JS 版本。一个利用 WebGL 来进行加速的机器学习类库,它基于浏览器,提供了高层次的 JavaScript API 接口。

目前算是比较靠谱的前端+AI的场景就是自动化UI,将设计师的设计稿自动生成UI组件,闲鱼的大前端团队在2019.06的GIAC(全球互联网架构大会)分享了【UI2CODE图片识别自动生成代码】的项目。

5g-14

上面的文章有视频介绍,看效果,还原度还是比较高的。UI2CODE的视频截图:

5g-17

如果这个未来真的能满足业务,有多少前端目前的工作是可以被替代的!细思极恐啊!所以对这方面有兴趣的,可以研究下,多从日常的痛点思考,即使是做工具,像上面的UI2CODE工具,对行业也是影响深远的。

物联网(Internet of Things, IoT)

5g-06

前端在想IoT上大展身手?这不是扯淡么?

没错,从目前来看,的确有点扯。因为两个原因:

  • IoT是低性能低功耗低内存的设备,适合运行时高性能偏底层的编程语言,比如C语言

  • JavaScript功耗是个大问题(充电五分钟,待机5秒钟)

下面看一张目前主流IoT设备的内存情况:

5g-07

但是,我们不是在聊未来吗?回头看看,JavaScript最初的出现是为了解决浏览器端用户交互的问题,到后来Node.js的出现,把它带到了服务端,很不可思议吧?后来因为Node.js,把前端带到了PC桌面应用开发,再到现在移动端app的开发。看来,前端是要一统江湖啊。不过,这里“前端”的定义当然也发生了变化,不再是我们传统的web前端那么简单了。

那么怎么把JavaScript运行到IoT设备呢?

JerryScript 虚拟机来了!三星还为IoT设备定制了JavaScript虚拟机(JerryScript ),它能够运行在小于 64KB 内存上,且全部代码能够存储在不足 200KB 的只读存储(ROM)上。

来个Hollo World5g-08

而和虚拟机配套使用,三星还推出了 IoT.js,基于 JerryScript 的“物联网”JavaScript框架。 IoT.js 使用 libuv 库实现类似于Node.js的事件驱动(非阻塞I / O模型)。向下兼容 Node.js, 遵守 CommonJS 规范中的模块化编程,并且支持 Node.js API 中核心功能的子集。目标是在资源受限的设备中运行,例如只有几千字节的RAM可用设备。

5g-02

总结

5g-15

前端在不断发展,而其代表的含义和领域也在发生变化。

每次网络、终端设备的发展必然会推动web技术的更新,而“前端”这个领域也会有新的诠释,也许这也是我们新的机遇!

5g-12