不过如此Kotlin官方文档Android Kotlin

Android遇上Kotlin | Kotlin若只如初见

2017-06-17  本文已影响3147人  程序员联盟

作者 谢恩铭 转载请注明出处
公众号「程序员联盟」(微信号:ProgrammerLeague )
原文:http://www.jianshu.com/p/e04b252e71b8

内容简介


  1. 前言
  2. Kotlin的名字由来
  3. Kotlin是什么
  4. Kotlin的优势
  5. Kotlin学习资源
  6. 总结

1. 前言


随着谷歌在 2017 年 5 月的 Google I/O 中宣布 Kotlin 这门编程语言成为 Android 新官方语言,近来掀起了一阵 Kotlin 学习热潮。

2. Kotlin的名字由来


一般我们介绍事物或人时,总是先从名字入手。比如有人也许会这样自我介绍:「我叫小明,不是黄晓明的晓明。我爸妈当初为什么要给我起这个优(keng)秀(die)的名字呢?blablabla ... 」。

我们要认识 Kotlin,也可以从它的名字开始。

Kotlin 来源于一个岛屿的名字,全称是 Kotlin Island,是英语「科特林岛」之意。这个小岛属于俄罗斯,我们用互联网来搜索一下,它是在下图中红色标记的位置:

科特林岛位于俄罗斯的圣彼得堡以西约30公里处,形状狭长,东西长度约14公里,南北宽度约2公里,面积有16平方公里,扼守俄国进入芬兰湾的水道。

拉近点看更清楚:

圣彼得堡也就是以前的列宁格勒。

那么 Kotlin 编程语言为什么要选这个看似名不见经传的小岛来作为自己的名字呢?

这就不得不说说 Kotlin 语言的开发者 JetBrains 公司了。

提起大名鼎鼎的 JetBrains 公司,小编必须正襟危坐,甚至敲击键盘的手指还会因为激动而略略颤抖(确定不是青年痴呆渐渐显露的征兆?):

作为软件开发者,你应该听说过 JetBrains 公司;而作为当前的 Android 开发者,如果你不知道 JetBrains 公司,那说明你应该没用过 Google 的「亲儿子」Android Studio

我们可以去 JetBrains 的官网 https://www.jetbrains.com 瞧一瞧:

JetBrains 官网

作为 Android 开发者,应该有些激动,因为我们看到了左下角的 IntelliJ IDEA 的图标。和 Android Studio 一样,IntelliJ IDEA 也是一个 IDE(IDE 是 Integrated Development Environment,「集成开发环境」的意思),是一个强大的 Java 集成开发环境,安装上 Android 的 Plugin(插件)后可以用来开发 Android 应用。

而 Google 推出的 Android 官方集成开发环境 Android Studio 就是基于 IntelliJ IDEA 。

这样说也许不准确,应该说 Android Studio 和 IntelliJ IDEA 的 Android 插件 是从同一个源码开始构建的。现在 Google 负责开发 Android Studio,等 Android Studio 发布之后,IntelliJ IDEA 再把 Google 的插件拿去测试并发布。

或者说,Android Studio 纯粹用于 Android 开发。IntelliJ IDEA 能做的事情比较多,但是不专精于 Android 开发。而且因为上面说到的顺序问题,IntelliJ IDEA 的 Android 插件是会相对滞后于 Android Studio 的。因此做 Android 开发最好用 Android Studio。

目前 Android Studio 所用的 JVM(JVM 是 Java Virtual Machine 的缩写,也就是「Java 虚拟机」的意思)是 JetBrains 公司的,见下图 Android Studio 的介绍:

看到上图中那行「JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o 」了吗?

关于 IntelliJ IDEA 和 Android 之间的「恩怨情仇」,可以去官方的 IntelliJ IDEA 和 Android FAQ 看看。

接着,我们可以点击 JetBrains 主页的 IDEs 那个菜单进去看看,可以看到有 12 个 IDE :

上面的 IDE 中,除了刚才介绍过的 IntelliJ IDEA,比较著名的有:

感觉 JetBrains 出品的各个 IDE 长得都比较像。这些年 JetBrains 在 IT 界可谓是风生水起。几乎可以说:「JetBrains 出品,必属精品」。不禁联想到当年「暴雪出品,必属精品」的口碑。

再扯回 Kotlin 的名字由来(小编你还记得回来...)。原来,JetBrains 是来自捷克的公司,公司总部位于捷克首都布拉格,在俄罗斯的圣彼得堡和美国的波士顿都设有分公司。

Kotlin 的主要开发工作是由俄罗斯的圣彼得堡分公司的程序员团队完成的。
他们说:Java 语言的名字是来自于一个岛,那个岛就是印度尼西亚的爪哇(Java)岛,因盛产咖啡而闻名。所以 Kotlin 也得选一个岛作为名字。

我们所见到的 Java 标志,总是一杯热咖啡。Java 语言的许多库的类名称,多与咖啡有关:如 JavaBeans(爪哇豆)、NetBeans(网络豆)以及 ObjectBeans(对象豆)等等。bean 是英语「豆」的意思,咖啡豆就是 coffee bean。

由此看来,Kotlin 确实有取代 Java 的雄心。

当然了,许多语言都认为自己可以取代 Java。比如目前有 Scala、Fantom、Groovy、Gosu、和 Ceylon,而 Scala 和 Groovy 最为流行。

但 Kotlin 已经被 Google 钦点为 Android 开发第一语言,相当于「黄袍加身」,其命运当非其他语言可比。

3. Kotlin是什么


知道了名字的由来和背后的老大们,我们进一步来认识一下 Kotlin 本人。

Kotlin 当然是一门编程语言,但它并不是「新出炉的面包」,从 2010 年就开始「烘焙」了。

说一点 Kotlin 的历史:

图片来自 Programiz

Kotlin 是基于 JVM 的静态类型编程语言,而 Java 也是基于 JVM 的编程语言,那么 Kotlin 比 Java 究竟有哪些优势呢?

4. Kotlin的优势


在 Kotlin 之前,JetBrains 团队一直使用 Java 来创建他们的 IDE。那为什么他们要开发一门新的编程语言呢?

JetBrains 团队之所以开发 Kotlin 这门新语言,是因为他们对已经存在的语言略有失望。这和 Go 语言的发明动机类似。

当时,Java 和其他语言都不能满足 JetBrains 的需求,而 Scala 语言虽然不错,但无奈编译时间太长,于是 Kotlin 因运而生。

Kotlin 从不少语言获得灵感,比如 Java、Scala、Groovy、C#、Gosu,可以说是博采众长。既具备了快速开发的能力,编译运行也快,实现相同功能的代码长度可以比 Java 少很多。

有一个网站 https://fabiomsr.github.io/from-java-to-kotlin 是对比 Java 和 Kotlin 的基本语法。在这个网站上可以看出 Kotlin 比 Java 精简很多。 Kotlin 官网也有 Java 和 Kotlin 对比的页面:https://kotlinlang.org/docs/reference/comparison-to-java.html

我们来列举一下 Kotlin 的主要优势:

可以用下图来大致总结 Kotlin 的主要优势:

图片来自 Programiz

当然了,Kotlin 的优势肯定不止这些,篇幅关系我们不可能一一列举。之后的课程中,会让大家见识的。

正是因为 Kotlin 的这些优势,才得到 Google 的垂青,新出任 Android 开发第一把交椅。现在 Android 还是很火的,国内貌似 iOS 开发的热度稍微下降了些,但各大学习平台上 Android 的火爆程度还是很高,虽然要找个好的 Android 开发职位比以前难了。

现在 Android 和 Kotlin 一联手,那家伙,简直是「AK47」啊。

专治各种不服

说来有趣,目前 Kotlin 被 Google 宣布为 Android 官方语言,而它和 Android 的竞争对手 -- 苹果的 iOS 的官方语言 Swift 很像,有个网站 http://nilhcem.com/swift-is-like-kotlin 是专门对比 Kotlin 和 Swift 的语法的,很有趣。

很多大公司也早已开始用 Kotlin 了,例如 Pinterest,Netflix,Gradle,Uber(个人对 Uber 公司的企业文化比较反感),Trello :

使用 Kotlin 的大公司

有了这么多大公司的支持,开源社区的维护,Kotlin 要再没有明天那简直「天理不容」啊。

5. Kotlin学习资源


中外 Kotlin 学习资源。

英语资源


Kotlin 社区

中文资源


6. 总结


  1. 首先,如果你自学能力比较强,英语比较好,那完全可以根据上面提供的各种 Kotlin 资源着手学习了,都不用继续看我的教程了。没想到,我拆自己台的功力还是蛮强的 :P

  2. 现在不少新的编程语言都挺类似的。新开发的语言更像是已有语言优秀特性集合的产物。Kotlin 和 苹果 iOS 的官方语言 Swift 就挺像。

  3. Kotlin 的未来应该是比较光明的,因为 Google 将其作为 Android 新的官方语言,又有 JetBrains 这样大牌的软件公司做后盾,而且还有那么多大公司在使用,开源社区在维护。

  4. 如果不是为了 Android 开发,那也可以学习一下 Kotlin,毕竟 Kotlin 也能做其他事情。程序员要做到「一专多能」,精通一个领域,多接触其他领域。比如目前 Python(人工智能等领域的新贵)值得学习,Go 语言(被称为 21 世纪的 C 语言,著名的 Docker 就是用 Go 语言开发的)也很不错。即使不用来做开发也应该了解一下,紧跟 IT 潮流。

  5. 作为程序员,真的需要花点功夫把英语入门了。水平不用太高,有些不懂的词可以用有道词典、金山词霸等查,但应该具备基本的英语理解能力,因为很多新语言的资源都是英语的,而中文翻译的工作虽然有人做,但一方面需要时间,另一方面难以保证最新,更何况还难以保证翻译的质量。英语好,你就比别人先行一步。

文中如有错误,欢迎指出,会更正,谢谢。


我是 谢恩铭,在巴黎奋斗的软件工程师。
我创建了程序员联盟的 知识星球,欢迎加入。
热爱生活,喜欢游泳,略懂烹饪。
人生格言:「向着标杆直跑」

上一篇 下一篇

猜你喜欢

热点阅读