首先还是先来介绍下我们的“女主角”--Kotlin,也许大部分人没有学过这门编程语言也会有听过吧,最起码我在两年前的时候就有了解过,只是粗略的了解,这就尴尬了,如果那时候开始学的话现在不是要年薪百万了?见笑了。好吧,闲话少谈,把Kotlin介绍给你们认识认识。
Kotlin
Kotlin没听过,但是IntelliJ IDEA你应该听过吧?那么JetBrains也听过了吧?对了,就是这家牛逼的东欧公司所写的一门编程语言了,并在2012年开源出来了,我是非常欣赏这样的公司的,毕竟开源才能让所有程序员一起进步嘛,可要知道,你们现在所用的Android开发工具Android Studio可是基于此开发IntelliJ IDEA所开发的啊,可能那时候就已经埋下伏笔了吧,为了就是这一天。
再来说说Kotlin的特点吧(当然这一部分内容来自于这两天疯传的文章所总结的)
兼容性
Kotlin与JDK 6完全兼容,确保Kotlin应用程序可以在较旧的Android设备上运行,无任何问题。
Kotlin工具在AndroidStudio中完全支持,与Android构建系统兼容,并且在出来的Android Studio3.0预览版中已经完全不需要插件的形式进行Kotlin开发,可以实现Java代码一键转为Kotlin代码了。
性能
Kotlin应用程序运行速度与Java类似,非常类似的字节码结构。
随着Kotlin对内联函数的支持,使用lambdas的代码通常比使用Java编写的代码运行得更快。
互操作性
Kotlin可与Java进行100%互操作,允许在Kotlin应用程序中使用所有现有的Android库。
这包括注释处理,所以Data Binding和Butter Knife也是一样。
占用空间
Kotlin有一个非常紧凑的运行时库,可以通过使用ProGuard进一步减少。
在真实的应用程序中,Kotlin运行时只添加了几百种方法,并且小于等于100K的.apk文件的大小。
编译
Kotlin支持高效的增量编译,因此,对于清理构建来说,增加的构建通常与Java一样快或更快。
学习
对于Java开发人员,Kotlin入门很容易。包含在Kotlin插件中的自动化Java到Kotlin转换器有助于实现第一步。
说了一大堆,到底我们该不该深入去学习然后把之前的代码统统给替换了呢?别急,且听我一一道来。
Kotlin是一种兼容Java的语言;
Kotlin比Java更安全,能够静态检测常见的陷阱。如:引用空指针;
Kotlin比Java更简洁,通过支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等实现;
Kotlin可与Java语言无缝通信。这意味着我们可以在Kotlin代码中使用任何已有的Java库;同样的Kotlin代码还可以为Java代码所用;
Kotlin在代码中很少需要在代码中指定类型,因为编译器可以在绝大多数情况下推断出变量或是函数返回值的类型。这样就能获得两个好处:简洁与安全。
编码风格和Java的一样,所以不用出不同的风格进行编码。
看来Kotlin还是有很多优势的啊,看来我们是时候把代码风格变一变了,把之前的Java代码都换成Kotlin了啊,其实下面说的才是本文的重点,上面的都是一些对Kotlin的介绍啊,一些特点还有它所拥有的优势。
名门正娶还是纳妾?
相信大家的朋友圈可能都被Kotlin给刷爆了,当然我的一个样,到处都是这样的文章,Kotlin要取代Java了,赶紧学吧,或者是,Kotlin也许就是下一个swift罢了,不用那么紧张,就算google把它列为主要的开发程序语言也是一级开发语言,Java的位置还是很难被取代的...反正都是这两个方向的文章给充斥着,那么正如标题所说的,Android名门正娶Kotlin还是纳妾而已?
我是这么认为的,一门语言要取代另一门语言成为一个操作系统的主要开发语言,那还是比较难的事,但是也并不无可能的,哪天google就突然宣布废弃Java,那到时Kotlin就真的扶正了,想想谷歌和甲骨文现在的关系嘛,不过这源自于我个人猜测而已,仅用于娱乐哈。
作为一个技术开发者,如果你能掌握并熟悉去使用一种语言的话,你还怕去接触另外一种语言吗?而且Kotlin和Java是那么相像的,我觉得不出一个星期你就能比较上手了吧?所以并不要那么紧张和顾虑的,做好现在不是更重要吗?别让谷歌的这个决定而打乱了你的所有计划,毕竟谷歌每年的IO大会都是想着改变世界的,世界就让它去改变嘛,只要你不要被改变不就行了吗?管他是名门正娶还是纳妾,反正既然你已经知道了这个消息,那就顺着你的计划再添加多一个选项就可以了。
也许很多公司的Android开发团队会召开紧急会议,进行讨论是否要引入Kotlin,进而顺着谷歌的这个势,也可以提高开发的效率,我的建议是,不要打乱了原有的开发计划,在全新的代码里可以尝试用它去编写,而不急着把所有代码都要用Kotlin进行编写,毕竟Kotlin不是适合所有的项目,不要因为要用而去用,要适合才选择去用,如果不适合的话,反而会被它给拖累的。
对我而言,当然我是想尽快去学习这样的一门优秀的编程语言,不过我也不会把所有的时间都花在它的身上,在目前来说,我会尝试去写一个小demo出来,最起码要尝尝鲜嘛,对吧?还要遵循自己的计划走下去的,这才是我们现在应该要做的。当然有人说没必要去学的,那就不对了,既然谷歌的Android团队都能承认Kotlin的优势,那么我们也应该要去相信这个事实。
附上Kotlin的一些学习路径吧。
最后来段代码来压压惊吧。
fun main(args: Array) {
println(“Hello World”)
}