前言
为什么要写这本书
2017年5月,Hadi Hariri(JetBrains的首席布道师)在座无虚席的Google I/O大会上介绍Kotlin时,先开了一个玩笑:“大概4年半之前,我们曾在一个容纳900人的会场做过同样的事情,但结果只来了7个人。”
他说的是事实,自从Google宣布Kotlin成为Android官方编程语言之后,Kotlin这门默默无闻的语言一下子成为技术圈中的“明星”。随后,关于Kotlin的开源项目和学习资料也如雨后春笋般出现。
同一时刻,在我们位于杭州的办公室里,水滴的同事也在进行着一个用Kotlin研发的Android项目。作为一个采用Scala全栈开发的“非主流”技术团队,我们对Kotlin有天然的好感。一方面,它在某些地方非常像Scala。相比Java,它们都拥有更简洁的语法,以及更多的函数式特性(如高阶函数、更强的类型推导、不同程度上的模式匹配等)。另一方面,Kotlin还有比Scala更快的编译速度,同时兼容Java 6,这使得我们可以用它完美替代Java以更好地进行Android开发工作。
那么Kotlin到底是怎样一门编程语言呢?我们试图通过这本书来回答这个问题。
与其他Kotlin的书籍不同,本书在工具属性上会显得稍弱。如果你想快速索引Kotlin某个具体语法的使用,推荐你去阅读Kotlin的官方文档或者《Kotlin极简教程》。但假使你有一颗好奇的心,渴望窥探Kotlin这门语言的设计哲学,那么本书可以提供一个浅薄的参考视角。本书会围绕Kotlin的设计理念,介绍其核心的语言特性,探索它在设计模式、函数式编程、并发等方面的具体应用。
越来越多的公司和团队开始加入Kotlin的阵营。除了Android之外,依靠Kotlin Native等项目,Kotlin也开始在其他领域施展拳脚。在Android官方支持Kotlin之后的数月,Google又推出了Android的Kotlin扩展库,在很大程度上提升了Android开发的体验。Spring 5正式发布时,也将Kotlin作为其主打的新特性之一,使Kotlin再一次受到了很多Web开发者的关注。这一切都预示着这门语言将有无比广阔的前景。
值得注意的是,除了蓬勃发展的生态之外,Kotlin语言本身也在不断迭代。截至本书完稿时,Kotlin又发布了一些有趣的新特性(如inline class),我们对Kotlin的未来充满了期待。