Kotlin编程实战:创建优雅、富于表现力和高性能的JVM与Android应用程序
上QQ阅读APP看书,第一时间看更新

第1章 你好Kotlin

Kotlin是俄罗斯圣彼得堡附近的一个小岛的名称,这本书是关于它的同名编程语言的。使用Kotlin的程序员不仅是喜欢这种语言——他们说他们爱上了它。产生这种感情的原因是什么?我们很快就会开始讨论这个问题。然后我们将安装Kotlin 软件开发工具包(SDK),编写一些代码,编译并执行它们,这样就可以看到它的工作情况了。

想象一下,把许多不同语言(C++、C#、Erlang、Groovy、Java、JavaScript、Python、Ruby、Scala、Smalltalk)的精华结合在一起,得到的就是Kotlin。Kotlin的优势在于其多样性。

Andrey Breslav[1]和这门语言背后的JetBrains[2]开发团队试图创建一种流畅、表达力强、实用、易于使用的语言,并且其比许多主流语言更简洁。当程序员开始学习Kotlin时,他们很快就能识别出他们所熟悉的语言中的好的部分,同时,他们还会对以前从未接触过的其他令人惊叹的功能感兴趣。Kotlin中熟悉的思想让程序员在学习和采用该语言时感到宾至如归,而与他们之前习惯的语言相比,这些新思想更富有成效。这就是程序员们对Kotlin充满热情的部分原因。

在谷歌宣布Kotlin是Android开发的官方语言之后[3],人们对Kotlin的兴趣大大提升了。来自谷歌的支持当然是很重要的,但是还有更多的理由让我们对Kotlin感到兴奋。

Kotlin是为数不多的可用于服务器端、移动/Android和前端开发的语言之一。适当编写的代码可以向下编译为Java字节码,或者转换为JavaScript代码(从一种语言的源代码编译为另一种语言的源代码)。Kotlin/Native支持将源代码编译为本地二进制文件的目标平台,包括iOS、MacOS、Linux、Windows和WebAssembly。这使得Kotlin成为少数可以用于全栈开发的语言之一。

在Kotlin的旅途中,你可能会认识到许多这些特征,并追溯其根源:

□尽管在语法上不同,但Kotlin在语义上与Java类似,这使得Java程序员很容易适应。

□无须继承类,你可以将自己的特定于域的便利方法添加到类中。这些方法称为扩展函数,可以像原始类中的方法一样使用,并完全支持集成开发环境(IDE)。这类似于C#风格的扩展方法,尽管Kotlin有更丰富的功能。

□委托通常是比继承更好的重用代码的设计工具。受Groovy和Ruby等语言的启发,Kotlin在将方法调用从一个对象委托给另一个对象方面是通用的,而不会损害类型安全性。

□你可以使用Kotlin中简洁而优雅的参数匹配语法,它类似于Erlang和Scala语法,而不是冗长的一系列嵌套的if-else语句。

□在Kotlin中扩展现有函数和方法很容易(尽管由于二进制不兼容,需要重新编译),这要归功于其默认参数的功能,类似于JavaScript、Scala、Ruby和Python。

□类似于Groovy、Scala和Ruby中的命名参数,使代码具有更高的表达力、更容易阅读,并且不易出错。

□在有意义的地方,你可以在自己的类或第三方类上重载运算符,很像在C++和Groovy之类的语言一样。

□Kotlin优雅、流畅和简洁的特性共同支持创建内部DSL,类似于Groovy和Ruby等语言,但完全支持静态类型检查。

□你可以用Kotlin编写C风格的过程、Scala风格的脚本、类似Java的OO代码和类似Smalltalk/Erlang的函数风格的代码。

□Kotlin在使用协程和延续进行异步编程方面引领着创新。

这些只是Kotlin突出的几个重要特性。

[1] https://twitter.com/abreslav

[2] https://www.jetbrains.com/

[3] https://developer.android.com/kotlin