前言
JetBrains作为时下流行的IDE开发商,为软件领域提供了诸多的集成开发环境,比较著名的如IntelliJ IDEA、WebStorm和PyCharm等,这些IDE几乎覆盖了目前主流的编程语言。Kotlin正是由JetBrains团队开发的。作为一门现代的、多平台的静态编程语言,可以说Kotlin语言从一诞生就自带光环。
作为一门现代编程语言,Kotlin语言充分借鉴了Java、Scala、Groovy、JavaScript和Swift等诸多语言的优秀特性,可以说是集多家语言之大成的编程语言。同时,作为一款多平台的编程语言,开发人员可以使用Kotlin语言编写JVM、Android、iOS和浏览器应用程序。Kotlin可以将代码编译成Java字节码运行在JVM环境中,也可以编译成JavaScript运行在浏览器中,而且它可以编译成机器码直接运行在没有JVM的嵌入式设备上。
Kotlin语言的历史最早可追溯到2010年,当时JetBrains团队使用Java开发应用程序的时候遇到诸多问题,于是Kotlin语言应运而生。Kotlin项目在2011年开源并在2016年发布了第一个稳定运行的版本Kotlin 1.0,而Kotlin语言真正为人所熟知是在2017年的Google I/O大会上。在那次大会上,Google宣布将Kotlin作为Android开发的首选语言,逐步取代Java语言在Android开发中的地位。另外,作为当前最为流行的服务端开发框架之一,Spring框架也在5.0版本引入了对Kotlin的支持,再加上Kotlin对JavaScript环境的支持,可以说Kotlin为时下非常流行的多平台开发语言。
伴随着2018年Google I/O大会的召开,Kotlin已得到开发者社区的广泛认可,并在Android开发中扮演着越来越重要的角色。据Google官方统计,自2017年宣布支持Kotlin以来,超过35%的开发人员开始使用Kotlin开发Android应用程序,而且这个数字正在逐月递增,而Play Store中用Kotlin开发的应用也增长了6倍之多。同时,Google官方表示将会继续改善Kotlin在支持库、工具、运行时、文档以及培训中的开发体验,而且在新版本的Android P系统中对运行时(Android Runtime)进行了微调,以此加快Kotlin编写的应用的运行时间。
众所周知,在面向对象编程的年代,Java作为一门非常优秀的面向对象编程语言而为开发人员所熟知;但是在当前函数式编程的热潮中,和其他函数式编程语言相比,Java就显得有些笨重了。虽然Java在1.8版本之后逐步在向函数式编程靠拢,但是Java的历史包袱实在太重了,而作为一门新兴的现代编程语言,Kotlin不仅支持面向对象编程,而且支持函数式编程,另外Kotlin还可以100%地兼容Java程序,这对传统的Java开发人员来说是非常有吸引力的。
正如大家所熟知的那样,Google与Oracle的版权之争或许是Google选择Kotlin的原因之一,但Google选择Kotlin更多的还是因为Kotlin相比Java的技术优势,比如容易上手、语法简洁、空指针安全和跨平台开发等,可以说Kotlin就是为“颠覆”Java而创造的。说了这么多,相信大家对Kotlin的强大有了一定的认识。
“路漫漫其修远兮,吾将上下而求索”,通过本书的写作,我深刻地意识到学无止境的含义。写书的过程也是一个自我总结和学习的过程。如果本书对大家有所帮助和启发,我将不胜欣慰。
如何阅读本书
本书共分为18章,力图通过详细的讲解,帮助读者全面了解Kotlin语言,并将它运用到实际的项目中。本书主要内容如下。
Kotlin入门与基础部分(第1~3章)
这部分内容主要包括Kotlin语言简介、Kotlin开发环境搭建、JVM语系和Kotlin各版本重要特性。通过这部分知识的学习,读者可以对Kotlin有一个基本的认识。
Kotlin语法(第4~16章)
这部分内容是本书的核心内容,主要介绍Kotlin语言的基础语法,包含的内容有类与接口、扩展函数与属性、集合与泛型、对象与委托、反射与注解、Lambda表达式、协程、Kotlin DSL和Kotlin Native开发等。本部分配备了大量的实例,通过对这部分知识的学习,相信读者能够对Kotlin的语法有一个全面的认识。
Kotlin项目实例(第17、18章)
这部分内容是Kotlin实战的部分,是对前面章节所讲基础知识的实战运用。通过和Spring Boot框架的集成来介绍Kotlin在Web服务器开发方面的应用,通过Android视频播放器项目来介绍Kotlin在Android开发方面的应用。
适合人群
本书是一本Kotlin入门与实战的图书,不管是前端开发者、Android/iOS开发者还是Java开发者,本书都适合读者阅读参考。同时,本书配备了大量的实例,在讲解理论的同时与实例相结合。相信通过本书的阅读,读者一定有所收获。