Kotlin 进阶之路之何许人也?
2017年的 Google IO,对于广大 Android 开发者而言最大的惊喜莫过于 Kotlin 横空出世,作为Android开发的第一语言。但 Kotlin 真的是空降吗?到底是何许人也呢?不妨一起来看看。
Kotlin 简历
出生
提到一门语言,自然会问来自于哪里?那么 �Kotlin
一定没有让你你失望,出自著名的 JetBrains
,一个搞IDE的公司,著名的 IntelliJ IDEA
就是他们开发的。每天搞IDE的公司,开发出来的语言,不用想都觉得他们比其他任何人应该都更加了解,如何高效的编码减少成本。2011年发行第一个版本。现在最新版本已经到了 Kotlin 1.1.3
。
�Kotlin
这个单词,据说来源自圣彼得堡附近的一个小岛(Kotlin Island),所以 �Kotlin
官网的背景就是一个小岛灯塔。(当然现在火起来之后,一点也不孤独,更像是照亮大家前行)
家族
�Kotlin
一种基于 JVM
的静态类型编程语言,所以它是在 JVM
家族中,自然也拥抱了开源。
在这里我不是想去�夸赞 JetBrains
,但不得不说他们真的很机智的选择了 JVM
,这样可以规避掉太多问题,毕竟 Java
已经足够强大稳定了那么多年。
Kotlin 一个颇受争议的语言
说它颇受争议,并不是说它有什么问题,而是已经有了那么多基于 JVM
语言,别的不说就说近在身边的 Java
,一直在热门语言前三。为什么 JetBrains
会推出 Kotlin
这门“新语言”呢?
之所以是加引号的新语言,因为如果你已经接触过其他类似的语言,就会觉得语法其实一点也不新,比如 C#
,Swift
等。这也是在15年的时候,小组里面我一直抗拒的原因。
- 基于玩烂的JVM?
�Kotlin
基于 JVM
,所以很多人会拿去跟 Java
对比,�这也是被吐槽最厉害的原因,但 �Kotlin
并不是另起炉灶,而是在 Java
基础上进行扩展,所以官网也写了一句大大的字:100% interoperable with Java™ and Android™
。
- 玩烂的语法糖?
真的,亲身感受,�Kotlin
增加了很多语法糖,使得面向函数式编程不再是空谈,极大的缩短了我们开发周期。但很多人会说这不是封装了下,加了点语法糖吗?有什么好玩的? 但既然能提供�我们开发效率,为什么要拒绝呢?我们写了那么多插件,写了�那么多工具类,不就是为了不做�重复性的工作吗?
简单的举个例子把一个数组里面的元素转换成另外一个新的数组:
val a = [....]
val b = a.map{B(it)}
Java
的时代,我们也许只能老老实实的 for
循环了吧:
List a = [...];
ArrayList b....
for(..){
b.add(new B(.));
}
这里就不做过多展开了的,后续我会�深入的跟大家介绍的。
- �稳定性靠谱吗?会不会像 Swift 那样要学很多个版本的 Swift 呢?
我之所以当时抗拒这门原因,最大的阴影其实来自于 Swift
, 每次更新之后我都想在打开 Xcode
,因为受不了满屏的报错,无法编译。但用过两年 �Kotlin
之后,我可以很负责人的说,很�靠谱,这一点学习了 Java
向下兼容的优良传统,给 �Kotlin
点赞。每个新版几乎都只是在改个版本号,加点新功能或者是bug修复。
Kotlin 的未来
�开源就是前进的动力,越是颇受争议,越是后劲十足,加上 Google
已经将 �Kotlin
列为Android开发的第一语言,相信发展速度会更快,更多人会加入到 �Kotlin
大家庭里。