好吧,让我们想象一下我们在 2014 年。满足以下要求的替代品并不多:
Kotlin才 3 岁,但还没有接触到移动世界。尽管当时它的受欢迎程度很低,但编译器只为 JVM 生成字节码。
C#非常流行,但还不够开放,并且在微软的控制之下。这可能会产生与 Java 相同的冲突。
那时, Golang开始在世界范围内流行起来,谷歌正在试验 MobileX,这是一个用 Go 编写移动应用程序的包。但是语法对于移动应用程序来说不够友好,就像对服务器一样。
TypeScript成立 2 年,由微软控制。此外,直到今天(2021 年),尽管尝试为 WASM 创建编译器,但还没有有效的二进制编译器。
Dart并不流行,被称为孤儿,但它有一个 Dart VM 的编译器,谷歌也完全控制了这种语言。
然后,我们可以推断出最好的选择是 Dart,其次是 Kotlin。
现在,Kotlin 拥有 Kotlin Multi-Platform (KMM) 和 Kotlin Native 等工具来避免 JVM。为什么 Kotlin 不重写 Flutter?
在这个问题之前,我们必须记住,有一个名为 Jetpack Compose 的框架处于测试阶段,自 2017 年 5 月以来一直在开发中。
2017 年 5 月 Jetpack Compose 的前身 Jim Sproch 个人资料的 Twitter 截图。
Jetpack Compose (JC) 正在重新定义创建 Android 移动应用程序的方式,其概念与 Flutter 非常相似,但与 Kotlin 辩证兼容。
目前,JC 仅适用于 Android,而 Flutter 适用于许多平台(移动、Web 和桌面),因为 Flutter 比 JC 大 3 年。
两者都是不错的选择,但 Flutter 更成熟。
回顾了一些历史,Dart 是 Flutter 在构想那一刻的最佳选择。这个“问题”并不是一个真正的问题,只是缺乏对重要细节的了解来发表意见。Dart 是 2014 年创建 Flutter 的最佳选择,也可能是唯一的选择。因此我认为这是一个技术决定,而不是谷歌的心血来潮。