展望前端开发的未来
2022-06-28

我从 2013 年接触前端,到 2016 年就没再做前端开发了。因此这些年火遍前端的名词,React, Vue, Webpack, Babel, TypeScript 等等,我都悉数错过。

不久前帮朋友做了个网页,我就顺便看了看当今的前端是个什么状况。于是写成本文,当中必有不专业的地方,权当是我一个局外人管中窥豹了。

HTML, CSS, JS

先说结论,最稳的是 CSS,七年前学的 CSS 一点儿没浪费。当年凡是学前端,都从老三样学起 HTML, CSS, JS,外加一个统治力极强的 JS 库——jQuery。如今 jQuery 早已被替代,而 HTML 和 JS 的命运差不多,大家都承认它们的存在,但使用的范围非常有限。不信问问自己,平时工作中用到多少种 HTML 标签?会使用 JS 去操纵 DOM 吗?于是 HTML 和 JS 的地位好像汇编语言——你很重要,但我不会直接用你。

这些年前端技术层出不穷眼花缭乱,开发者也表示学不动了,原生 JavaScript 甚至有了一个搞怪的名字—— Vanilla JS,算是对前端生态过分繁荣、过分多样化的抗议。

但冷静下来看,JavaScript 本身的问题实在是太多,即使 从 ES6 以来开始加快了改进的步子,仍然满足不了开发者。大家想的不是改进,而是另起重来。TypeScript 担起了这份重任,不得不说,TS 让前端开发者慢慢摆脱了「脚本小子」的尴尬,向着更职业化的软件工程师方向靠拢。

HTML 的未来接替者应该是 Web Component。随着 IE 被基于 Chromium 的 Edge 浏览器取代,这个趋势应该不会遇到太大的阻碍。在 React 等框架的努力下,组件的概念和写法已经深入人心,所以在大方向上应该不会有什么分歧了。

框架

这么多框架该学哪个?如果只能押一个的话,还是 React,稳如老狗。虽然在中国 Vue 已是主流,放眼全球 Svelte 等后起之秀虎视眈眈。但短期内是不可能扳倒 React 的,因此下一个五年占统治地位的还是 React。

老话说,既然打不过他,不如就加入他。Next.js 这货就选择紧抱 React 的大腿,在它官网上用最大的字写的一句自我介绍就是 The React Framework for Production,可谓是找准了自己的生态位。就像三国曹操手下良将如云,如果这些良将都一个个的要另立山头,山头没立起来自己的人头先可能保不住了。没了良将们的辅佐,曹操也建不了一番大业,双输。

图形化

继 WebGL 之后,又出来个 WebGPU,而且将成为未来的主导。这对目前在风口上的 Web3、数字孪生是个大好消息。而对 WebGPU 来说,涌入进 Web3 的资本也会推动工具链加速向前,WebGPU 会是受益者,双赢。

市场需求大,且技术处于变革期,因此在图形相关的技术路线上,前方有很大的一片开阔地,值得投入。

边缘计算

云计算提升了服务器硬件的利用效率。这些年大大小小的云厂商没闲着,还在不断提升效率,只是改革的重心从硬件转到了软件上。Docker, k8s 这样的容器化技术发生在服务端,而 edge function 则跑在边缘服务器上。边缘服务器一般用做 CDN 托管静态资源,目前的一个趋势是继续压榨边缘服务器的潜力,静转动,跑一些对计算资源占用不高的程序。

这条赛道上,国外目前比较火热,除了有 Cloudflare Workers,还有 Vercel、Deno 等中小型公司也很给力。他们的一个共同点,就是对前端极为友好,终于绕回到了我们今天的主题。Node.js 曾在服务端风靡一时,但慢慢又把这片本不属于它的领地慢慢交还回去了。没想到的是,JS 又在边缘计算上找到了用武之地。JS 的优势是在边缘服务器上的启动速度非常快,背后有 Chrome V8 引擎的功劳,可以说是前端技术反哺后端的典型了。

开发者体验

DX,一个新冒出来的词,猜猜什么意思 —— Developer Experience,开发者体验。由于开发者掌握技术选型的决策权,所以对生产工具厂商来说,用户就是开发者,用户体验 UX 就是开发者体验 DX,因此讨好开发者是头等大事。Vercel 公司可能是把这件事想的最明白的。以我使用 Vercel 的有限体验来看,是前所未有的丝滑。这个公司招进去的大牛,像 React 的带头人,Webpack 的作者等,都是叱咤前端的风云人物、意见领袖。可以说把前端开发社区玩明白了。

开发者体验而已,值得大书特书吗?值得,甚至比前面几个都值得。这几年前端开发的工程复杂度,飙升到一个离谱的程度。光是 build 的耗时,就以分钟计,配置和版本的复杂就更别提了,一不小心就构建失败。前端工程师的相当一部分时间精力损耗在这上面,天下苦 build 久矣。

时势造英雄,Rust 是近几年最受欢迎的语言,高性能和高可靠性是它的长项,貌似和前端不沾边。但不要小看了前端造轮子的热情,是其他圈子都无法比拟的。于是大家用 Rust 重造了很多轮子,例如 swc(Rust 版 webpack),deno(Rust 版 Node.js),Tauri(Rust 版 electron)……貌似形成了这样一个趋势:能用 Rust 写的迟早会用 Rust 重写。简直是在为那句老话致敬了——能用 JS 写的迟早会用 JS 写。

最后

END