为什么Flutter选择使用Dart?

阿里巴巴口碑Android开发内推
译自 Flutter FAQ
Flutter主体上有四个评价维度,主要考虑框架作者、开发者和用户的需要。我们发现有些语言能够满足一些需求,但是Dart在所有的评价维度中得分最高,能够满足我们的所有需求和标准。

Dart运行时和编译器支持两种Flutter关键特性的结合:基于JIT和hot-reloads
能够缩减开发周期,加之Ahead-of-Time(AOT)编译器生成的高效ARM代码, 能够为产品部署提供快速启动能力和可预期的性能指标。

此外我们和Dart社区紧密合作,他们在积极的投入资源以推动Dart在Flutter中的应用。例如,Dart语言本身并没有生成本地二进制码的ahead-of-time工具链,这是获取高性能的重要因素,但是现在Dart语言支持了,因为Dart团队为Flutter打造了一套共工具链。同样地,Dart虚拟机此前在吞吐量方面被优化过,如今Dart团队在优化延迟,这对Flutter来说更加重要。

在以下几个重要指标上,Dart表现卓著:

  • 开发者生产效率
    Flutter的一个主要的价值主张就是节省工程资源,开发者通过同一套代码库可以实现iOS和Android两个平台的应用开发工作。使用高产的语言提高了开发效率,也使得Flutter更具吸引力,这对于我们框架团队和开发者都异常重要。 构建Flutter主体的语言和我们提供给用户的是相同的,所以我们需要在100k行代码的基础上保证高效,并且保证不牺牲framework和widgets对读者的可读性。

  • 面向对象
    对于Flutter,我们想要一个能够符合Flutter问题域的语言,即创造视觉用户体验,通过面向对象语言构建用户界面框架,业内已经有了几十年的经验。当然我们可以使用非面向对象的语言,这将意味着重复发明轮子来解决几个艰难的问题。此外,大多数的开发者已经拥有面向对象的开发经验,这使得Flutter开发更加易学。

  • 可预期 高性能
    通过Flutter,我们想要给开发者赋能,以开发出快速流畅的用户体验。为了达到这一点,我们需要能够在每个动画帧运行大量的代码。这意味着我们需要一种能够同时提供高效和稳定性能的语言,不能有周期性的停顿,否则会造成掉帧。

  • 快速内存分配
    Flutter框架使用函数式流,它重度依赖底层内存分配器对小量的、短生命周期内存分配的有效处理,在缺乏这种特性的语言中Flutter无法有效地工作。
    Flutter程序员公众号,关注Flutter相关话题~

为什么Flutter选择使用Dart?_第1张图片

你可能感兴趣的:(为什么Flutter选择使用Dart?)