可能不少读者看到Kotlin这个单词会感到很陌生,这很正常。就和2007年之前同样,在苹果公司推出iPhone以及相应的开发工具以前,Objective-C就不为人知,至少在国内是这样的。上面提到的Objective-C是一种编程语言,而本书的主题是Kotlin,那么首先要回答的是,Kotlin究竟是什么呢?没错,Kotlin和Objective-C同样,是一种编程语言。html
Kotlin是由JetBrains建立的基于JVM的编程语言,那么JetBrains又是什么呢?我相信不少Java程序员使用过IntelliJ IDEA,这个很是棒的Java IDE(集成开发环境)就是JetBrains的杰做。若是你没听过或没用过IntelliJ
IDE,那么也没有太大关系。相信阅读本书的读者或多或少都了解一些Android的知识,Android官方推荐的IDE是Android Studio,简称AS。这个IDE就是基于IntelliJ IDEA社区版开发的。JetBrains旗下不仅有IntelliJ IDEA一款产品,Kotlin也是JetBrains旗下的一款产品,一种编程语言。这种编程语言运行在JVM上,也就是Kotlin编译器会将Kotlin源代码编译成Java Byte Code(Java字节码),能够直接运行在JVM上。从这一点看出,在技术层面,Java和Kotlin是同一个级别的,都以Java
Byte Code形式运行在JVM上。固然,Kotlin编译器还能够将Kotlin源代码编译生成JavaScript代码,以便在没有JVM的状况下运行。在将来,Kotlin编译器还能够将Kotlin源代码编译生成本地代码,彻底脱离任何虚拟机运行,也就是说,Kotlin相对Java的优点之一是多目标编译语言,而Java只能编译生成Java Byte Code(.class文件)。程序员
尽管Kotlin已经推出有很长一段时间了,但并不怎么出名,多是由于JetBrains对它的推广力度不够,加之如今的编程语言实在太多了,因此Kotlin就像一块石头扔进了大海,不见了踪迹。spring
那么为何如今Kotlin忽然成为热门了呢?缘由也很简单,Kotlin能够开发Android App,并且被Google公司选为开发Android App的一级语言,即在Android Studio 3.0及以上版本中会支持利用Kotlin语言开发Android App。这也就意味着,到目前为止,开发Android
本地App可使用Java和Kotlin两种编程语言。这就很像开发iOS App的场景了,可使用Objective-C和Swift两种语言开发iOS App。所以,不少人把Kotlin比做Android世界的Swift。并且Kotlin和Swift的确都是很棒的编程语言,都加入了不少“语法糖”,能够大幅提升程序开发的效率。编程
可能不少读者会问,既然有了Java,为何Google公司还要选择Kotlin来开发Android App呢?Kotlin相比Java有哪些优点呢?安全
在这一节咱们来简单了解一下Kotlin的特色,经过这些介绍,咱们能够体会到Kotlin的优点所在。框架
更容易学习:Kotlin是一门包含不少函数式编程思想的面向对象编程语言,并且相比Scala语言更容易学习。异步
轻量级:相比其余编程语言,Kotlin函数库更小。因为Android存在65K方法数限制,使得这一点显得更为重要。虽然使用ProGuard或者打包成多个dex可以解决这个问题,可是全部这些解决方案都会提升复杂性,并增长调试的时间。Kotlin函数库方法数小于7000个,至关于support-v4(Android
1.6)的大小。编程语言
高度可互操做性:Kotlin能够和其余Java类库友好且简单地进行互操做。Kotlin团队在开发这门新语言时正是秉承了这个中心思想。他们但愿可使用Kotlin继续开发现有的使用Java语言编写的工程,而不是重写全部代码。所以,Kotlin须要可以和Java很好地进行互操做。函数式编程
很是好地集成Android Studio及Gradle:Kotlin有一个专门用于Android Studio的插件,以及另外一个专门用于Gradle的插件。并且即将推出的Android Studio 3.0已经集成了Kotlin,所以在Android工程中开始使用Kotlin并不困难。函数
固然,Kotlin还有不少语法层面的特性,如数据模型类、空类型安全、扩展函数等,这些技术将会在后面的章节介绍中展开。
从前面的内容能够知道,Kotlin能够用来开发Android App,那么除了Android App,Kotlin还能够作什么呢?在本节咱们就来一窥究竟。
既然Kotlin是基于JVM的编程语言,那么天然而然就可使用全部基于JVM的服务端框架。下面是几个Kotlin官方文档推荐的框架。
Spring:一种开源框架,是为了解决企业应用程序开发复杂性问题而建立的。从Spring 5开始,Spring就已经支持Kotlin的新特性了,并可使用Spring在线生成器(start.spring.io)生成基于Kotlin的工程。
Vert.x:用于创建基于JVM的响应式Web应用的框架。
Ktor:由JetBrains发布的一款基于Kotlin的本地Web框架
kotlinx.html:是一种DSL(领域专用语言),用于在Web应用中生成HTML。Kotlin服务端框架和kotlinx.html的关系就像JSP和FreeMarker的关系同样,FreeMarker是基于Java的模板引擎。使用FreeMarker,能够不依赖于HTML或其余技术,能够根据须要生成HTML或其余东西,也就是一种与具体渲染技术无关的技术。
Kotlin提供了生成JavaScript源代码的能力,也就是将Kotlin代码直接转换为JavaScript代码。目前,支持ECMAScript 5.1标准,将来会支持ECMAScript 6。
注意,若是将Kotlin代码转换为JavaScript代码,在Kotlin代码中只能包含Kotlin标准库,不能包含任何JDK API以及任何第三方的Java Library API,任何不属于Kotlin自己(Kotlin语句和标准库)的部分在转换的过程当中将被忽略。
这一部分在上文提到过,Kotlin和Java同样,均可以开发Android App,并且Kotlin和Java源代码文件能够在同一个工程中,能够联合进行调试。
尽管Kotlin能作不少事(Java能作的,Kotlin都能作),但本书的主要关注点是开发Android App,所以,在本书后续部分将着重介绍如何利用Kotlin开发Android App。
一本全程视频陪伴贴心跟踪初学者学习效果的Kotlin开发书
《Kotlin程序开发入门精要》
点击图片查看详情)
编辑推荐
1基于最新的Kotlin版本
2本书分为三部分:Kotlin基础、Android开发和项目实战,读者经过对本书的学习,不只能够掌握Kotlin的知识,还能够将Kotlin用于项目实战。
3赠送近70小时视频课程,包括Kotlin和Android,供初学者学习使用
4经过极客题库提供大量的测试题以及过关斩将系统,读者能够用通关的方式更有效地学习书中的知识
5随书赠送价值300元优惠卡,能够用于购买李宁老师其余视频课程以及如今及将来提供的其余服务
6有问题的学员能够经过欧瑞科技(创始人是李宁)的问答社区区(geekori.com)提问,会有专人回答读者提出的问题,以及经过博客系统总结书中学到的知识,同时,提出问题、回答问题以及撰写的博客越多,就会增长读者的积分,之后学习李宁老师其余的课程和获取其余资源,会有更大的优惠。
仅仅一本书怎么行?海量视频、海量习题快速入门
更多Android类好书,扫码查看