您的位置:首页 > 编程语言

初识Kotlin新的安卓编程语言

2016-02-19 00:15 316 查看

说在前面

要说这个语言我是2015年就听说过了,然后也是一直没有去接触,然后2016年元旦的时候听搞安卓朋友说的最多的就是KotlinReact Native语言,然后一直聊的设计模式就是MVP/RxAndroid/MVVM/Hybrid这些设计模式到现在还是没有时间去尝试。

说来也奇怪,那天看见了一个github上的项目你也可以down来看看AndroidUI4Web,让我奇怪的是里面的文件格式是.kt的文件,然后百度一搜是这个:





真的是吓死宝宝了,看到这个我才明白:





我决定从那个时候要去揭开Kotlin的神秘面纱。

Kotlin语言简介:

Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin是一门非常简单的语言,其主要目标之一就是提供强大语言的同时又保持简单且精简的语法。

为什么Kotlin能够脱颖而出是安卓开发者的福音呢?

众所周知Android程序是运行在Java虚拟机之上的,因此从技术上来说,可以运行在JVM之上的一切都可用于开发Android应用。现在已经有很多可以生成JVM能够执行的字节码的语言,其中一些语言开始崭露头角并逐步流行起来。

现存的计算机编程语言有好几千种,JVM上的语言也有十几种(比如NBJL/Clojure/Groovy/Scala/Fantom),所以大可不必为没听说过的编程语言感到惊奇,我也就听过Groovy/Scala/Kotlin,scala比较和C语言接近,而Groovy和java很相似你肯定对gradle不陌生吧,但是Kotlin就是其中的佼佼者。

语言特点

鉴于我们安卓开发者一直使用的是java语言开发,还要受到65535方法的摧残,动不动一个空指针就会导致程序崩溃。所以我们来学习Kotlin,下面是她们之间的比较:



java的缺陷:



对象可以赋值null造成NPE

受检异常(checked exception)

属性getter,setter太烦

接口不能有实现(java8 fixed)

缺乏Lambda(java8 fixed)

方法Overloading对可读性和动态调用造成伤害。

语言层缺乏模块化支持

并发支持很糟糕

原始类型不是对象>

Kotlin优势:

创建一种兼容Java的语言

让它比Java更安全,能够静态检测常见的陷阱。如:引用空指针

让 它比Java更简洁,通过支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等实现。




语言特性

轻量级:这一点对于Android来说非常重要。项目所需要的库应该尽可能的小。Android对于方法数量有严格的限制,Kotlin只额外增加了大约6000个方法。

互操作:Kotlin可与Java语言无缝通信。这意味着我们可以在Kotlin代码中使用任何已有的Java库;因此,即便这门语言还很年轻,但却已经可以使用成百上千的库了。除此之外,Kotlin代码还可以为Java代码所用,这意味着我们可以使用这两种语言来构建软件。你可以使用Kotlin开发新特性,同时使用Java实现代码基的其他部分。

强类型:我们很少需要在代码中指定类型,因为编译器可以在绝大多数情况下推断出变量或是函数返回值的类型。这样就能获得两个好处:简洁与安全。

Null安全:Java最大的一个问题就是null。如果没有对变量或是参数进行null判断,那么程序当中就有可能抛出大量的NullPointerException,然而在编码时这些又是难以检测到的。Kotlin使用了显式的null,这会强制我们在必要时进行null检查。

适用平台

只要能用Java的地方就能用Kotlin, Kotlin支持所有主要的开发工具以及服务,比如:

* IntelliJ IDEA、Android Studio和Eclipse;

* Maven、Gradle和Ant;

* Spring Boot(Kotlin 支持今天正式发布!);

* GitHub,Slack,甚至Minecraft。

看图:



Kotlin与其他JVM语言的比较

Ceylon, Kotlin, Fantom. 它们的特性比较如下表:



Kotlin 的前景



一些数字来了解Kotlin。

上个月总计有超过11k的使用者,光是上周就有5k的使用者

上百个StackOverflow回答

两本书:Kotlin in Action和Kotlin for Android Developers

大约1400人活跃于Slack(获得邀请)

超过50万行的Kotlin代码的在大型项目中使用,比如IntelliJ IDEA和Project Rider

参考

JetBrains正式发布Kotlin 1.0:JVM和Android上更好用的语言

http://kotlinlang.org/

新JVM语言比较:Ceylon vs Kotlin vs Fantom

总结

据说kotlin是安卓中的swift,和我一样还不太了解Kotlin,学习永远都不迟,那你还在等什么,一起加入学习的行列吧,这一篇让我们来了解Kotlin下一篇我们就来学习Kotlin的语法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: