当前位置: 首页 / 新闻 / 网站知识 / 正文

定制网站之前端未来的发展方向

来源:qiuzhx时间:2019-08-15


首先有几个点应该是大家都同意的:


  • jQuery 彻底退出舞台,但会始终留在课本。
  • NG / React / Vue + ES / TS + SCSS / PostCSS / CSS-in-JS + Webpack + Node.js 成为基本功。
  • PWA、WASM、Web Component、WebP、…… 等技术在看得见的未来就会普及开。


当然这些都已经是共识了,我想说的是,前端乃至整个客户端,定制网站,html5的未来,大方向一定是趋同。


  1. 从“差异化”到“标准化”

自从 ES2015、React 这些出现以来,前端的生态发生了翻天覆地的变化

  • 前端居然也需要编译了;
  • 曾经的三驾马车,现在都写进 JS 了;
  • CSS-in-JS 在争议中百花盛开;
  • 写进标准的不一定能用,能用的不一定被写进标准;
  • CommonJS 可以用在 ESM 里,但 ESM 却不能用在 Node 里;
  • 微软给 JS 造了个老爸叫 TS,备受欢迎;但因为生态缺少类型定义,普及受阻;
  • Microsoft Edge 诞生了,IE 11 还没死;
  • ……

前端领域遇到了大量此前从未遇到的问题,相应的也出现了各种各样的解决方案。我们花在处理这些问题上的时间,不比用于开发业务的时间少,在外界看来,我们把事情给搞复杂了。可以理解,面对新的挑战,大家给出了不同的方案,一时间百家争鸣;但经过时间的考验,大家冷静下来,求同存异,最终只会留下 1~2 个选项被大部分人接受,成为事实上的标准。

多样性自然是好事,但如果选择过于丰富,我们也会因为不知道该选谁而困惑。每到这种时候,我们就会羡慕后端领域,不用在这些事情上耗费过多的精力,方方面面都有非常成熟的解决方案,有需要时只管拿来用就好了。

所以“标准化”会是“技术大爆炸”之后必然的结果,届时我们或许可以不用编译、不用 polyfill,大范围地在生产环境部署 ESM 的代码;LESS 和 SCSS 的特性被 CSS 吸收,我们可以用更好用的语法去写 CSS 并直接运行在生产环境;标准和实现之间不再严重脱节;TS 得到普及,前端领域不用经历 Python 2 / 3 的问题;各大浏览器在通用特性上的 API 达成统一;……


2. 由“大前端”到“泛客户端”

多终端已经成为时下以及未来的一个必然态势,如果每多一类新的终端,就必须配备一类新的开发者,那对于企业而言成本是巨大的。跨端技术自然也就成为了大家的宠儿,如果只需要一类开发人员就可以覆盖所有的终端,那一定是对所有人都好的。

Web 技术与生俱来的适合开发 GUI 的特点,使得它成为研发跨端技术的最佳选择。React 推行的“Learn Once, Write Anywhere”的理念,背后其实就是跨端的思想。我们也已经看到以 React native、Electron、PWA 为代表的成功案例,验证了这条路的可行性,我们甚至已经开始用“大前端”来称呼现状。虽然还有很长的路要走,但目的地确实是大家都想要去到的地方。

近来,圈子里还先后出现了能够让 React 和 Vue 代码互相转换的工具,以及用 React 和 Vue 开发小程序的技术,更是充分说明了这一需求确实是众望所归。

或许终有一日,我们可以只需要一套技术栈,就可以生成网页、小程序、原生的 App、桌面端应用,并且可以运行在所有主流操作系统/平台上,甚至是 VR/AR 类的应用。(虽然这很理想化,但梦想还是可以有的)届时各个平台下的应用之间的边界会变得越来越模糊,所有的客户端都会被归入同一套技术栈。


3. Web OS 逐渐普及

Web OS 一度难以普及的原因,主要在于可行性、离线可用性、安全性、性能等问题,但这些问题都在逐个被击破,在消费领域推广 Web OS 越来越成为可能。

以 Chrome OS 为例,我们可以看到这一类的技术已经离我们越来越近。


4. IE11 寿终正寝

相信这是绝大部分开发者,包括微软自己,都想要看到的结果。IE 的存在对整个前端领域都是一个巨大的限制,我们遇到过太多“其他都好的,就 IE 不支持”的情况,这在桌面端是个不可回避的问题。

当然这还需要比较长的时间,尤其在中国。当然升级需要动力,我们需要引导用户去迈出这一步,可以看到以微软、阿里为首的不少龙头公司已经开始逐渐放弃低版本 IE,但阻碍这一进程的不仅仅只是用户的惰性,操作系统的价格、国企事业单位的态度也占了一定的比例,需要大家共同的推动。


5. 前端 + AI

TPU 解决了硬件的性能问题,WASM 解决了代码层面的性能问题,Tensor Flow 提供了适用于 JS 的 API。或许在未来,一部分的 AI 应用会搬到客户端来实现,而且完全有可能就会用 JS 来开发 AI 应用。


6. 前端 + IOT

既然未来是“端到端”的,那么在 IOT 的领域里,自然也少不了 JS 的一席之地。用 JS 开发嵌入式应用早已有不少案例,随着 IOT 的普及,自然会有相应的前端开发者开始从事这方面的工作。


7. 前端 + 区块链

首先 Node.js 已经是除 Python 外开发区块链应用的最佳选择。

结合前面提到的种种,未来用 JS 开发智能合约,内置 AI 技术,用于 IOT,完全可以串得起来。


说到底,定制网站前端现在目前最令人头疼的,莫过于选择太多、环境太复杂,能做的事情越来越多,伴随产生的问题也越来越多,为了解决这些问题所诞生的解决方案也越来越多。这其中有太多和业务无关的工程化需求,还没有得到完善的解决方案,但这毕竟是探索阶段不可避免的现象,一旦对这些领域研究的足够多了,主流环境必然只会留下少数几个选项,甚至是统一的答案。到那时,前端的整体环境就会像后端领域一样,一套方案 hold 住全场。虽然前路漫漫,希望渺茫,但依然期待这一天能够早日到来。