Electron 和 Flutter for Desktop 主观评价

在桌面端跨平台技术中, 能排上一席之位的, 我认为有3个, QT,Electron 和后起之秀 Flutter。

QT 我们不做讨论,今天来说说 Flutter for Desktop 和 Electron 的主观对比。

前世今生

先说编程语言,再说框架本身。

Javascript / ECMAScript

1995年12月4日,Netscape 公司与Sun 公司联合发布了 JavaScript 语言,专门用来操作网页。

1996年3月,Navigator 2.0 浏览器正式内置了 JavaScript 脚本语言

语言作者只花了10天时间创造了 JavaScrpt 的故事也不必多说, 经过了这么多年的发展,成为了事实标准。

Chrome 的 V8 引擎让 JavaScript 的执行效率有了跨时代的提升,让很多不可能的事情变成了可能。

当代码越来越多,Typescript 应运而生,也做到了像 VSCode 这样的大型的项目。

《JavaScript语言精粹》中作者讲的很明白,去糟粕而引精华。

Dart

2011年10月10日, Google 发布了Dart语言,文章的标题为《Dart: A language for structured web programming》

2013年11月14日,谷歌发布Dart 1.0版本,其标题为《Dart 1.0: A stable SDK for structured web apps》

其实 Dart 并不是专门给 Flutter 做的开发语音,Dart 项目比 Flutter 早很多,最早的 Dart 语言的目标是干掉 Javascript,成为 Web 开发语言的替代。

《Dart in Action》 第18页
2011年9月,网络上出现了一封标题为“未来的JavaScript”的 Google 内部电子邮件,邮件中表明由于Javascript语言发展缓慢,因此谷歌打算设计一个更好的web开发语言。这种新语言旨在成为下一代的JavaScript。它的主要目标是“保持JavaScript的动态特性,但具有更好的性能配置文件,并且适合大型项目的工具。”它还能够交叉编译为JavaScript。这种语言作为技术预览发布给更广泛的世界,并命名为Dart。

Dart语言设计者Lars Bak 就是 V8 JavaScript engine 的开发者,和 Java JVM 的开发者,他深知 Javascript 的问题。

然而,直到 2018 年这个目标并没有实现,并在 2018 年被评为最不应该被学习的编程语言, JavaScript 完胜。

而这件事情在2019年发生了变化,因为 Flutter 的火爆, Dart 语言也开始被人追捧,同时 Dart 也是 Google 的下一代操作系统 fuchsia 的开发语言。

Electron

2013年4月,Github 内部的文本编辑器项目决定使用 Web 技术开发桌面应用, Atom Shell启动。

2014年5月 Atom Shell开放源代码。

2015年4月 Atom Shell被更名为Electron。

后被微软收购, 最典型的代表作就是 VSCode 了。

因为使用 Web 技术,可以利用当今非常完善的 npm 生态, 也能让大量的 Web 开发人员参与进来开发桌面应用。

Flutter

2015年4月28日, 在谷歌的 Dart Summit 会议上,发布了 Sky 项目,团队成员大多来自 Dart 和 Chromium 团队,这个是一个尝试,如果抛弃浏览器里面繁杂的规则和对历史的兼容,能否做到一个高性能的 UI 渲染引擎, 目标达到在 Android 平台达到了120Hz 刷新率的渲染效果。

2017年5月12日,Flutter 发布了第一个版本 v0.0.6

2018年12月4日,首个稳定版本 1.0 发布,当时的 Flutter 还着眼于移动端App的跨平台开发框架,同时支持 Android 和 iOS 平台。

2021年3月3日, Flutter 2.0 版本发布,Flutter for Web 作为稳定版本发布。

2022年2月3日,Flutter 2.10 版本发布,Flutter for Windows 作为稳定版发布。

至今为止, Flutter 的发展方向已经从移动端的跨平台方案,变为了全平台的跨平台解决方案,已经能够稳定应用在 Android, iOS, Web, Windows, MacOS, Linux 平台,随着开发者越来越多,社区和生态也在慢慢完善。

主观看法

Electron 我认为是一个妥协的产物,是当机器性能过剩,执行效率,内存占用等已经不是主要矛盾的时候,提出来的一种开发桌面应用的解决方案。

但几年之后, Flutter 出现了,并且近2年 Flutter 主要方向集中在了for Desktop 方向, Electron 的历史使命已经完成,拜拜不送。

Electron 模糊了 Web 技术和客户端技术的边界, 一切皆网页的 ChromeOS 我认为已经失败,而以 Dart/Flutter 为开发框架的谷歌新操作系统 Fuchsia 可能是未来。

Flutter 在设计之初,就是做 v8 和 chromiue 的那帮人要革自己的命,希望代替现有的 Web 技术,代替浏览器, 来完成复杂交互的客户端的开发框架, 让 Web 技术重新回到最早设计 WWW 万维网的时候的那个信息展示的功能上。 让原本清晰的Web应用和客户端应用的边界渐渐模糊之后又清晰了起来。

参考资料

songfei 支付宝支付宝
songfei 微信微信
0%