Kotlin 作为 Android 开发语言相比传统 Java 有什么优势？
其实，由于 google 基因中存在某种「浅尝辄止，见到不好就收」的特性，所以在当初，谁也不知道会如何，也无法预料该如何。 不过现在，大概情况已经清晰了，Kotlin 在 Android 平台被扶正，将作为Android开发第一语言。 一种语言，是与其提供的编程框架，运行库，高度绑定的。Google大力发展基于kotlin的androidx库，jetpack库，compose库，很多新特性其实都是为kotlin优化的，可以说，如果不跟进kotlin，将很难跟进今后android开发领域标准库的发展步伐。 那么使用Kotlin相比Java有什么好处呢？ 首先，是将语言特性的发展与jvm虚拟机脱钩。 java语言设计得太早，一部分近年来兴起的新特性不那么容易加上，虽然java也在不断迭代，但java的迭代是与java虚拟机绑定的，要想使用新版本的java语言，就必须升级到新版本的java虚拟机。而java虚拟机的升级对很多项目来说都比较困难。 Kotlin基于jvm，但不依赖高版本jvm，在工业界依然还是jvm1.8天下的情况下，升级jvm某种程度上是奢望。而kotlin可以在保持jvm1.8前提下不断迭代新的语言特性，跟进现代的编程语言发展之步伐。 其次，是新语言可以避免背上历史包袱。kotlin语言的应用范围并不广泛。但正因为它的应用范围不广泛，所以kotlin语言的发展不会有过多的历史包袱，我们知道Java跟C++增加任何特性都需要考虑与旧版本的兼容性。而他们已经存在了二三十年，需要兼容的特性越来越多，历史包袱越来越多就会导致进步越来越困难。 反观苹果的Swift就可以不断迭代12345很多个版本，因为没有历史包袱。kotlin目前也来到了第5个大的修订版本，这个走的路线基本是跟swift类似的。 最后，是kotlin提供了一些新的库，比如kotlin协程，比如给现存具体类直接外挂新成员函数的机制，这些都是java不具备的，考虑到android的一些新编程框架大多在kotlin下有更好的表现。在有条件的情况下完全可以开始考虑将新的开发任务切换到kotlin了。 