做系统开发久了感觉有点跟不上时代了。刚在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# 更是。
领取专属 10元无门槛券
私享最新 技术干货