前言
-
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言
-
谷歌在 2017 年 5 月的 Google I/O 中宣布 Kotlin 这门编程语言成为 Android 新官方语言
Kotlin的优势
在 Kotlin 之前,JetBrains 团队一直使用 Java 来创建他们的 IDE。那为什么他们要开发一门新的编程语言呢?
JetBrains 团队之所以开发 Kotlin 这门新语言,是因为他们对已经存在的语言略有失望。这和 Go 语言的发明动机类似。
当时,Java 和其他语言都不能满足 JetBrains 的需求,而 Scala 语言虽然不错,但无奈编译时间太长,于是 Kotlin 因运而生。
Kotlin 从不少语言获得灵感,比如 Java、Scala、Groovy、C#、Gosu,可以说是博采众长。既具备了快速开发的能力,编译运行也快,实现相同功能的代码长度可以比 Java 少很多。
Java 和 Kotlin 对比
Java 和 Kotlin 对比_官网
Swift对比Kotlin
列举Kotlin的主要优势
-
多平台开发的可能 :基于 JVM 的开发,Android 开发,Web 开发,Native(原生)开发。其中 Web 开发可以结合 Spring 框架,而且 Kotlin 也可以编译生成 JavaSript 模块,可以在一些 JavaScript 的虚拟机上编译。Native 开发就更牛了,目前 Kotlin 官方在 Github 开源了 Native 开发的源码 https://github.com/JetBrains/kotlin-native,基于 LLVM(Low Level Virtual Machine 的缩写,表示「底层虚拟机」。LLVM 是一种编译器基础设施,以 C++ 写成。它是为了任意一种编程语言而写成的程序,利用虚拟技术创造出编译时期、链接时期、运行时期以及闲置时期的最优化)的后端,方便为各个平台编写原生应用,比如为 Mac OS,iOS,Linux,嵌入式系统,等等。
-
开源:闭源项目总归比较有限。众人拾柴火焰高,代码开源可以更快速地发现 Bug,有了全世界各地程序员的贡献,Kotlin 的优秀代码和库会越来越多。Linux 系统就是开源的很好例子。
-
和 Java 100% 兼容 :Kotlin 调用 Java 已有的代码或库没有问题。在一个项目中也可以同时用 Java 和 Kotlin 来编写代码。Android Studio 和 IntelliJ IDEA 都可以实现一键转换 Java 代码到 Kotlin。官方也有专页介绍:https://www.jetbrains.com/help/idea/2017.1/mixing-java-and-kotlin-in-one-project.html
-
安全 :大家聊得最多的肯定是可以轻松防止在 Java 中很常见的 NullPointerException(空指针异常)问题咯。做 Android 开发的一定深有体会,一般 app 奔溃,基本都是因为 NullPointerException,很多时候规避机制就是加一个 if 语句的判断,很累赘。
-
容易学习 :Kotlin 语法很简单,和主流语言类似,语法高效,入门非常容易。好比当初苹果发布 Swift 也是因为 Objective-C 的语法奇怪,学习曲线比较陡峭。
-
Lambda 表达式。
-
变量类型推断。
-
when 语句块 :告别繁琐的 switch 和 if... else if... else 语句块。
-
非常方便的运算符重载。
-
不再需要手动添加 get 和 set 方法对了,直接对类的私有变量赋值和取值。
-
Anko 这样的 Kotlin 的官方库可以使 Android 应用开发更快捷。
-
函数/方法 的关键字是 fun,而不是 function。真的很简洁也很有趣(fun 是英语「有趣」的意思)。
-
Var 和 Val 关键字 :和 fun 关键字类似,也很简洁。Var 是 Variable(英语「可变的」之意)的缩写,表示「可变的」变量。Val 大概是 Value (英语「值」之意)的缩写,表示只能赋值,而不能改写其值,是表示「只读的」变量,有点类似 C 语言中的 const 变量。这两个关键字的起名估计是参考了 Scala 语言。
-
类的方法扩展很方便。
-
可以创建自定义的 DSL(领域特定语言)。
-
优秀工具的支持 :JetBrains 公司开发了那么多优秀的工具,Kotlin 可以完全享用。
-
Coroutine :协程。
网友评论