看这篇就够了!2021 大前端技术回顾及未来展望( 五 )


Flutter DesktopFlutter 是由谷歌推出的移动 UI 混合开发框架 , 它实现了一整套自底而上的基础库 , 用户可以在 iOS 和 Android 构建高质量的原生用户界面 。
目前 Flutter 为了支持在桌面侧的开发能力 , 采用的是把代码转成 Web 的跨端渲染方案 。但 Flutter to Web 性能还存在着大量提升的空间 , 虽然这一年内业内有不少优化方案 , 但想要性能有明显提升 , 多少都会通过魔改 Flutter 源码的方式来实现 , 这些优化手段在长期的 Flutter 版本迭代过程中 , 会有较大的优化成本 。即使这样 , 优化过后的 Flutter to Web 性能 , 和传统的 Web 项目相比 , 也略有不足 。所以在不考虑兼容性的前提下 , 采用 to Web 方案的开发尽量使用 Canvaskit Render 模式 , 该模式是基于 Skia 的 WebAssembly 方案 , 会有更好的渲染性能 , 但加载性能方面还需持续优化 。
可能是为了彻底解决桌面端的性能问题 , 2021 年中 , Flutter Desktop 侧推出了 Windows Native 方案 , 但它目前仅支持 64 位系统 , 这使得它无法支持 Win7 等较低 32 位系统的 Windows 版本 , 会大大增加了开发者的兼容成本 。不过 2022 年 2 月 , Flutter Desktop 正式推出了稳定版 , 适配了许多常用插件以包含对 Windows 的支持 , 包括 camera , file_picker 和 shared_preferences 。更重要的是 , 社区已经添加了各种其他 package 对 Windows 的支持 , 涵盖了从 Windows 任务栏集成到串行端口访问的全部内容 。同时许多 Microsoft 的团队也积极配合 , 为正式版的发布做出了很大贡献 。2022 年 , Flutter Desktop 值得尝试一下 。
Tauri最近搭上 Rust 的东风的 Tauri 受到非常多的关注 , 对标 Electron , 主要有以下 4 点优势:

  • 包体积大小更小
  • 运行时内存占用更小
  • 安全摆在第一位
  • 真正的开源
但是理性思考 , 对于前端开发来说 , 有三个致命的缺点:
  • Tauri 使用系统 webview , 会有兼容性问题 , 这也是 Electron 重点解决的问题
  • 抛弃了 nodejs , 生态圈目前来说还是很难比得上 Electron 的
  • 底层开发要用 Rust , 有一定的上手成本
当然 Tauri 现在还不是非常成熟 , 但是随着 Rust 的生态起来 , 浏览器兼容性渐小之后 , 胜负犹未可知 。
 
6、Rust-是时候掌握一门新语言了Rust 是 JS 基础设施的未来随着前端生态工具的逐渐完善 , 大家除了探索前端的新领域之外 , 同时还在思考如何提高工具的性能 , 众所周知 , JavaScript 的性能一直是被大家所诟病的点 , 但是前端的基础设施却是十分要求性能的 , 比如构建等 , 所以大家开始考虑是否能够用别的语言来编写前端工具 , 于是 Rust 吸引了大家的眼球 , Rust 语言自诞生以来 , 就以它的安全性、性能、现代化的语法吸引了大批的开发者 , 在过去六年的 stackoverflow 最受喜爱的编程和语言中连续获得榜首的位置 , 并且已经有众多领域都出现了 Rust 重写的项目 , linux 项目也表示正在使用 Rust 重写一部分功能 , 可以说 Rust 进入前端领域也是一种必然的趋势 。Lee Robinson 在 2021 年写的一篇文章《Rust Is The Future of JavaScript Infrastucture》(《Rust 是 JS 基础设施的未来》)列举了众多 Rust 编写的前端工具项目 , 并表示 Rust 将会持续加大影响 Javascript 的生态圈 , 这篇文章也是被众多公众号转了个遍 , 引发大家的热烈讨论 。
Rust 工具融入前端生态在前端构建领域 , 2021 年出现了一个十分突出的项目 —— swc , 它是由 Rust 编写的构建工具 , 可以用来编译、压缩、打包 , 目前它已经被一些知名项目使用 , 比如 Next.js、Parcel、Deno 等 , Next.js 12 直接使用了 swc 替代 babel , 并在他们的官网博客表示说使用了 swc 之后 , 热更新速度提升到了原来的三倍 , 构建速度提升到了 5 倍 , 由此可见 , Rust 性能的强大 。


推荐阅读