每周一问:Kotlin,Dart,Flutter是什么关系?

做系统开发久了感觉有点跟不上时代了。刚在github看到一个android工程是用Kotlin写的,最近又开始关注Flutter,很久以前还关注过Dart。于是就有此一问,它们三个到底是什么关系呢?

Kotlin

Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发,第一个稳定版于2016年发布。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。在2107年Google I/O大会,Google正式宣布Kotlin成为Android官方支持开发语言。Kotlin被称之为 Android 世界的Swift。

设计目标:创建一种兼容Java的语言。让它比Java更安全,能够静态检测常见的陷阱。如:引用空指针。让它比Java更简洁,通过支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等实现。让它比最成熟的竞争对手Scala语言更加简单。

从这段介绍我们可以认为Kotlin是改良版的Java。

Dart

Dart是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开源软件。Dart是面向对象的、类定义的、单继承的语言。它的语法类似C语言,可以转译为JavaScript,支持接口(interfaces)、混入(mixins)、抽象类(abstract classes)、具体化泛型(reified generics)、可选类型(optional typing)和sound type system。

Dart亮相于2011年10月10至12日在丹麦奥尔胡斯举行的GOTO大会上。该项目由Lars bak和kasper lund创建。

2015年5月Dart开发者峰会上,亮相了基于Dart语言的移动应用程序开发框架Sky,后更名为Flutter。

看完这段介绍说实话我只记住了第一句话的前半句——Dart是谷歌开发的计算机编程语言。

Flutter

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。它也是构建未来的Google Fuchsia 应用的主要方式。

基于Dart的介绍,我们知道Flutter是基于Dart语言的移动UI框架。

我们应该学习它们吗?

语言之争从计算机语言诞生的那天起就没停止过。新的语言层出不穷,新语言的优势是可以站在巨人的肩膀上,通常有更丰富的特性、更强的语言表现力;劣势是需要时间吸引更多的开发者、构建更丰富的生态,毕竟人都是有惰性的,开发者也是一样。

下面摘几段网上很有启发性的句子:

有些人学习了一门新的语言的语法,然后继续用自己熟悉的方式去写代码。

有些人学习语言的时候,学习的这门语言设计的意图,寻找这种语言编程(抽象和表达)的感觉。

而在原生开发方面,Kotlin 基本和 Java 的完善程度等同,同时又被 Google 支持,是所有第三方语言都达不到的。Android 又不会用 Dart2 重写,所以原生开发它基本没戏,除非它也成为 JVM 方言。所以 Dart2 即使被 Google 钦定也是在新系统 Fuchsia 上,而 Kotlin 原本就没打算分一杯羹,C# 更是。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190107G1DBWE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券