大前端2020年前瞻:有哪些你不能错过的技术趋势?

作者|张晓楠
文章链接:https://mp.weixin.qq.com/s/wxGul8muHeFSiaRCKi-NHA

大前端2020年前瞻:有哪些你不能错过的技术趋势?

提起大前端,总会有人抱怨“学不动”了,因为新东西实在太多。2019 年的大前端领域虽然并没有出现什么颠覆性技术,但是 Flutter、WebAssembly、Serverless 的火爆发展还是超乎我们预期,也让我们进一步看到大前端的融合趋势。在即将到来的 2020 年,大前端领域又有哪些你不能错过的技术趋势呢?正值 GMTC2019 全球大前端技术大会召开之际,我们采访了大会四位专题出品人:PayPal Senior Software Engineer 于航,腾讯前端技术专家 / 总监、IVWEB 团队负责人刘恒兵(河伯),腾讯 QQ 小程序前端负责人黄佳琳,阿里巴巴前端技术专家桑世龙(狼叔),请他们对 2020 年进行展望,同时也阐述 2020 年前端从业者可能将要面临的挑战。

InfoQ:2019 年即将过去,在今年大前端领域,您印象最深刻(或者认为最重要)的一件事情是什么?

于航: 我印象最深的要属 WebAssembly 在 2019 年的飞速发展了。从 3 月份 Mozilla提出 WASI (WebAssembly 系统接口,WebAssembly System Interface)的概念到后来成立 ByteCode Alliance 联盟(字节码联盟),再到最近 WebAssembly 进入 W3C 成为正式推荐标准,Wasm 在 “out-of-web” 领域的发展着实迅速。不仅如此,伴随着谷歌和 Mozilla 强有力的推广和在 Chrome 以及 Firefox 上对 MVP 标准的快速实现,Wasm 目前已经或者正准备逐渐取代 PNaCl、SIMD.js 甚至 ASM.js 等昔日的流行技术。

刘恒兵(河伯): 2019 年我认为相对重要的是 TypeScript 的大规模普及和流行,至少在我们团队,TypeScript 已经跟 JavaScript 并行成为我们的重要选择了。当然选这个的原因还在于 TypeScript 的普及会反向推动 ES6(ECMAScript 6.0)的进步和发展。我们知道在最近 Node.js 13.2.0 版本中,正式支持了 ECMAScript modules,这些新特性的逐渐支持其实也源于社区内先行者们的探索和实践,正因为这样的努力才最后推动了 JavaScript 的进一步发展。

黄佳琳: 2019 年印象最深的是小程序的发展,以及各大主流 App 纷纷推出小程序平台。小程序发展至今,热度不断攀升,目前小程序平台越来越多,这也促使各种跨平台的小程序框架不断涌现。已有的框架在性能和兼容性方面也在持续优化(例如 taro 和 uni-app 都会在本次 GMTC 大会上有相关的分享),同时也出现了像 kbone 这样的新思路。结合小程序云的开发能力,越来越低的开发门槛将持续刺激小程序的发展。

InfoQ:在今年年初您对大前端领域的趋势预测中,如今看来跟您预测最相符的一个技术趋势是什么?最超乎您预期的一个技术趋势是什么?

桑世龙(狼叔): 在我看来,今年大前端增速放缓,并没有出现很多颠覆性的技术,反而在细分领域厮杀得非常厉害,我想这是好事,意味着前端正在走向成熟。这点从框架、语言,甚至是前后端分工上都有体现。比如 Flutter,跨端能力进一步增强;比如小程序,不断涌现出各种转译实现,例如 Wepy、Taro 等, ReactReconciler 出现之后,出现了 Remax 框架,通过 Remax 把生成的「虚拟 DOM」渲染到视图层,从而做到了使用真正的 React 去构建小程序;比如 React,能讲的新特性并不多,在 Create-React-App 火爆之后,类似的支付宝的 Umi 框架也正在悄然兴起,尤其值得一提的是 Umi UI,在可视化辅助编程领域可谓一个新的突破。但无论怎么看,这些都不算是颠覆性的变革,而是在深度上更精进一步。

在 Node.js 领域,今年新东西也不多。最新已经发布到 v13,lts 是 v12,Egg.js 的生态持续完善,进度也不如前两年,成熟之后的创新就少了。在很多框架上加入 TypeScript 似乎已经大致正确,比如自身是基于 TypeScript 的 Nest 框架,比如阿里也开源了基于 Egg 生态的 Midway 框架。另外,GraphQL 也有很强的应用落地场景,尤其是 Apollo 项目带来的改变最大,极大地降低了落地成本。已经用 Rust 重写的 Deno 在稳步发展中,没有火起来,但也有很高的关注度,它不会替代 Node.js,而会是基于 Node 之上的一种更好的尝试。

大家可能会感觉 Node.js 热度不够,但事实上很多做 Node.js 的人已经投身到研发模式升级上了。对于今天的 Node.js 来说,会用很容易,但用好很难,比如高可用、性能调优,这些还是非常有挑战的。我们可以假想一下,流量打网关,网关根据流量来实例化容器,加载 FaaS 运行时环境,然后执行对应函数提供服务。在整个过程中,不许关心服务器和运维工作,不用担心高可用问题,是不是前端可以更加轻松地接入 Node.js?这其实就是当前大厂在前端做的基于 Serverless 的实践,比如基于 FaaS 如何做服务编排、页面渲染、网关等。接入 Serverless 不是目的,目的是让前端能够借助 Serverless 创造更多业务价值。

于航:最相符的可能就是 WebAssembly 将会在 2020 年底成为 Web 新技术浪潮的主角,不过现在来看这个时间可能要提前了。Wasm 技术自 2015 年被提出后经过四年多的发展,现在逐渐从规范制定转向到了技术实施的层面。但实际上相较于规范制定所花费的时间,今年以来,技术实施的进度是以肉眼可见的速度在发展。因此伴随着各类基础设施的完善和落地,相信 Wasm 被真正应用到各类实际项目中的日子并不会太遥远。

刘恒兵(河伯):相对符合我的预测的技术趋势应该是工程提效。提效对于企业研发来说非常重要,因此大前端领域建设中如何更好地提效也是最值得关注的重点之一。无论是 React Native 还是 Flutter,其实都是在提效(大前端跨端研发)的基础之上兼顾性能。另外,同构、组件、智能研发、Serverless 等等都离不开企业提效。

让人惊喜的大前端领域的技术趋势应该就是 Wasm 逐渐看到了商业化的可能,我们目前在播放器场景下通过 Wasm 来解决浏览器不支持 H.265 编解码的问题。可以看到随着浏览器逐渐完善其基础能力,大前端的空间也越来越大。

黄佳琳:与我预测相符的是 Flutter 的爆炸性发展和 Flutter for Web 的发布。此外,小程序平台也在尝试和 Flutter 技术结合,提升小程序的渲染性能。

最超乎我预期的一个技术趋势是 Docker 在前端领域的快速发展。Docker 在过去一年里改变了我们团队的构建方式和部署方式,在效率提升上十分明显。

InfoQ:预测 2020 年的大前端领域,您认为最值得关注的技术趋势是什么?

于航:伴随着 WebAssembly Post-MVP 标准的逐渐完善,Wasm 在 Web 领域能够擦出怎样的火花?这是我比较关注的事情。Wasm 能否真正享受到与 JavaScript 一样的浏览器控制能力?是否能够直接操纵 DOM 进而以更低的成本来操作和构建前端 UI 组件 / 页面?

谷歌和 Mozilla 对 WebAssembly 的大力推广可见其对该技术的重视程度,但在此之前 Wasm 真正落地的项目其实并不多,因此 2020 年可能会是一个 Wasm 应用百花齐放的年份。不仅如此,在构建 AI 以及区块链应用上,基于 WebAssembly 技术构建的 SSVM 虚拟机可能也将会在 2020 年得到大规模使用,此举将会把 Wasm 技术的应用场景拓宽到更多领域。

刘恒兵(河伯):我基于 2019 年大前端技术趋势的发展再进行一下延展,我认为企业效率以及大前端性能可能会是 2020 年最值得关注的大前端趋势。针对企业提效这点,未来 Serverless、基于 AI 的智能研发、高效的全链路监控等都能在大前端中扮演更多的角色和戏份;在性能方面,除了浏览器逐渐提升基础能力之外,跨端研发这样能让大前端更为一体的技术,将会逐渐被更多团队所选择。

黄佳琳:2020 年的大前端领域,随着跨平台框架、Serverless 等技术的不断成熟,端的边界会变得越来越模糊,大前端将进一步走向融合。在小程序方面,我认为值得关注的是小程序的工程化趋势。Web 项目的工程化在 2019 年日趋规范,而小程序项目的工程化目前还不够完善,我们在这方面则做出了尝试,提供了官方的 CI 构建方案。随着小程序项目的复杂化,小程序工程化方面的更新值得大家在 2020 年去重点关注。

InfoQ:您认为对于前端从业者来说,2020 年可能面临的最大挑战是什么?

于航:前端技术逐渐开始不再局限于 Web,或者说不再局限于我们所熟知的 JavaScript + CSS + HTML 这三种技术了。随着前端应用体积的逐渐增大,更多用于提高应用性能、解决大型应用工程化构建问题的解决方案开始逐渐涌现。

不仅如此,近年来,依赖于 Node.js、Chromium 等前端相关的成熟技术或底层基础设施,Electron/NW.js 也让我们可以将前端技术应用在本地桌面构建领域,类似的还有 React Native 在移动应用开发领域所占有的一席之地。

除了应用开发领域,基于 Serverless 的 BFF 层也开始将后端的“部分控制权”移交到了前端开发者的手中。而 2020 年,我相信随着 WebAssembly 技术及其相关基础组件的逐渐成熟和完善,其在“ on-web ”和“ out-of-web ”这两个领域内,都会开始不断涌现出更多的、在各类新技术领域和场景下的尝试,Web 技术逐渐开始向多领域融合。再借助 WebAssembly 本身的高性能、高可移植性以及可大量复用历史代码库等特性,相信类似 Chrome OS 的“浏览器操作系统”又会席卷而来。

为了迎接前端技术的快速发展,前端开发者需要不断学习、快速横向扩展所了解的知识领域,这样才能够在遇到问题时找到最合适的解决方案,然后再进行对该知识领域纵向而深入地了解。

刘恒兵(河伯):我认为 2020 年最大的挑战是前端技能模型的扩展(无边界化)。以前做前端,懂 HTML+JS+CSS 就好了,但现在不同,Serverless 的发展让前端更多参与到中后台建设中,如果要做得更专业,就要掌握更多的 Server 知识。在端上也如此,React Native、小程序、Flutter 等跨端技术要求我们更多地去掌握 Native 上的技能知识。所以如何快速适应变化和发展、快速普及知识 / 能力模型变得尤为重要。

黄佳琳:如果说 2020 年大前端融合是趋势所在,那么对前端从业者来说既是机遇,也是挑战。机遇在于前端开发的天花板越来越高,想象空间越来越大;挑战在于对优秀前端开发人员的要求越来越高。前端发展方向趋于多元化,而真正的全能型人才比较稀缺,我们要在关注领域动态、扩大知识面的同时,找准自己专精的方向去钻研,忌浅尝辄止。

桑世龙(狼叔):不可否认,这依然是大前端最好的时代。对于前端从业者来说,证明自己的最好办法不是看你获得多少资源,而是看你可以创造多少业务价值。虽然在垂直领域的深耕可以让我们有更多生存空间,但我更愿意认为 Serverless 可以带来前端研发模式上的颠覆,只有简化前后端开发的难度,才能更好地放大前端的业务价值。最后,引用我常说的一句话送给大家:”少抱怨,多思考,未来更美好。“

上一篇:从Gartner魔力象限图来看 戴尔存储将如何颠覆自己?


下一篇:rhel 5 yum源配置文件