7

大前端时代即将来临,后端该何去何从?

 3 years ago
source link: https://zhuanlan.zhihu.com/p/52907826
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

大前端时代即将来临,后端该何去何从?

河南冠杰智能科技股份有限公司 研发总监

缘起

“天下大事,合久必分,分久必合” 一直以来,前端都是“切图师”,仅有“特效师”一脉堪称翘楚。

大家就这样安安分分过了几年,前端一直是js的天地,直到08年的一天,node.js 横空出世,开始不安分起来。

一时间,暗流涌动,后端也开始发力。

与此同时,也有 coffeescript 等相关的项目崛起,用后端语言写前端。

甚至 谷歌也有 GWT 这样的以 java 写前端的方式。

反击

但紧接着,grunt gulp webpack ... 以及三大框架 层出不穷。

express 、 koa 再到最近的nest.js 也让人难以招架。

node.js 在后端虽然没掀起大浪,可也总算有了一席之地,前端复杂的工具链及框架,coffeescript 败下阵来,GWT 后来演变为 Dart。

毫无疑问,这场战争的胜利属于 JavaScript/Typescript。

webassembly 出世

JavaScript 看来没办法绕过去了,Rust kotlin go 一直想通过 webassembly 弯道超车,有了一些前端框架(编译成 wasm), 可由于生态原因,兼容问题,以及各种难以解决的问题(比如SEO)也没能分到一杯羹。

前端更新迭代太过于迅速了,这么活跃的社区,以至于其他语言难以分到一杯羹。

可以说 JavaScript 和 Typescript 的地位已经难以再被撼动了。

flutter 弯道超车

随后有 weex 、ionic、nativescript 、 react native 这样的项目出现,以及 electron, nw.js ,这下前端可真的要成为大前端了。

不曾想,半路又杀出个 flutter ,不仅在 热重载 、性能 等方面有很大优势,而且跨平台,正式版还没发布,社区一度火过 react native ,国内的各种插件包括微信支付,支付宝支付,微信分享等等,非常齐全。 由此可见 flutter 在国内多么受欢迎。

虽然 Dart 有 Angular 版本,但不得不说,一直以来只有可怜的1000star 不到。

flutter 此次要延申到 桌面应用、web 领域,那就跟 Typescript 必有一战了。

这跟后端有什么关系

“帝国主义亡我之心不死”

前面提到过,有如此完善的工具链,后端语言很难再把手伸向前端了。

但可以预知的结果是,不管 Typescript 和 Dart 谁输谁赢,都会把手进一步伸向后端,去蚕食后端的份额。

前端有什么杀手锏

这是最近非常好用的一个工具: https://www.apollographql.com/

可能你觉得它还不够,那么接下来这个东西将让你倒吸一口凉气: https://www.prisma.io/

替代 restful 、 RPC 、 ORM 一气呵成。 不需要后端了,设置好数据权限即可。

可能你觉得它还太过于“玩具” ,但未来发展,等到前端再次将手伸向后端,再结合前端工具链优势,一切未可知。

会不会出现 prisma 和 后端的杂交品种? 会不会 出现一个新的打包工具?

将来的差距可能只在生态上。

一点思考

照这个情况来看,讨论后端语言谁优谁劣的意义实际上已经不在了。

万一哪一天, npm run build 或者 flutter packages get 一个命令帮你把 k8s 下载构建好,利 用webpack 自动构建好 istio 和 jenkins 配置, 那时候,你又会怎么想呢?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK