为什么扑打飞镖?

时间:2018-08-30 10:28:42

标签: dart flutter

我知道可能有很多原因,但是当开发人员社区已经采用ES6并正在努力使其变得更好时,为什么选择dart而不是JS?

有什么特别的东西可以使飞镖非常适合Flutter吗?

3 个答案:

答案 0 :(得分:6)

这是一个常见问题解答,已经得到了广泛的答复

我不确定您为什么编写ES6和“ dart js”。

Flutter与JavaScript无关。
虽然Dart可以编译为JavaScript,但Flutter不使用此功能。

对于Flutter Dart,它已编译为本地二进制代码。

答案 1 :(得分:1)

几个同事问了这个问题后,我做了一点研究,认为总结一下我所读和思考的内容会有所帮助(这对我的同事来说是一个非常重要的问题)

Flutter的语言要求

  • AOT和JIT编译用于快速重新加载和快速发布代码
  • 一个好的垃圾收集器,可以在创建和破坏许多对象后进行清理
  • 单线程以避免锁,从而避免造成麻烦
  • 避免使用其他引擎在设备上运行代码的Arm编译器(又名React Native)

Dart满足所有这些要求。除了AOT和JIT编译器部分外,JS(我认为)也很接近上述所有方面。

为什么Flutter不选择JS并构建JIT和AOT编译器? (最初他们确实选择了JS,但他们切换了),我可以猜测以下内容...

  • Dart从一开始就考虑到二进制编译
  • Dart已经具有一个二进制JIT编译器,后来又添加了AOT编译器
  • Dart更加结构化和简单(它是类型安全的,没有eval)
  • JS可能会实现可能危及Flutter开发人员的新语言功能
  • 可以针对Flutter优化Dart,而无需担心JS的其他用途
  • 历史上等待新的JS功能的时间很长(最近3年更好)
  • Dart和Flutter团队可以紧密合作

说完所有这些,我可以想象出可以实现JS解决方案,但它可能是昂贵且更复杂的解决方案。 Dart非常好,Dart2确实具有固有的类型安全性。

答案 2 :(得分:1)

我对此主题进行了一些研究,发现使用dart对扑打至关重要。

以下是Dart的一些优势,使其成为Flutter开发的重要组成部分,这正推动Flutter应用程序开发公司开发更多此类应用程序:

  1. 提前(AOT)编译
  2. 及时(JIT)编译
  3. 井井有条的动画
  4. 单一布局语言
  5. 易于使用
  6. 分配和垃圾回收
  7. 支持热装
  8. 抢先式调度,时间分片和共享资源

如果您想详细了解,请在此处阅读Why Dart is Used in Flutter上的完整博客。