全国咨询/投诉热线:400-618-4000

kotlin能取代java吗?Android社区选择Kotlin的几大理由!

更新时间:2018年12月24日09时41分 来源:java培训 浏览次数:

前不久Google宣布在Google I / O 上宣布为Kotlin提供Android官方支持,这也意味着Java今后将告别Android开发的舞台。那么,为何是Kotlin,Java到底弱在哪儿?本文将带你解读Android社区选择Kotlin的几大理由!

Kotlin取代了Java?

Kotlin VS Java

早在Google I / O公布Kotlin在Android领域将取代Java以前,2016年2月发布的Kotlin 1.0版本Android社区就已经提出了这个问题。这是因为Kotlin代码不仅比Java更安全,还更简洁。而且Kotlin和Java文件在Android应用程序中是可以共存的,所以Kotlin不仅可以应用于新程序的开发,还可以对现有的Java应用程序进行扩展。

此外,对于Android开发程序员来说这也可能是一个很大的福利——大多数的Android文档和示例都是关于Java的。另一方面,在Android Studio中将Java转换为Kotlin也非常简单,只需将Java代码粘贴到Kotlin文件中即可。

Kotlin的优势显而易见,资深的Java开发人员要学习Kotlin也只需要几个小时的时间就能搞定。而且学习的范围也仅仅是包括消除空参考错误、启用扩展功能、支持编程功能以及添加协同工作等。

Kotlin取代了Java?

Kotlin VS Scala

由于Android开发工具对Scala支持还有一定的障碍,而且Scala的Android库也是很难搞定的一个问题,所以Android社区最终选择了Kotlin。另一方面,Scala社区也已经明显意识到了这个问题,正在努力的解决这些问题。

但对于Scala本身是不能否定的。因为不同的环境中应用到的语言和系统工具可能也不相同。例如,Apache Spark主要是用Scala编写的,Spark的大数据应用程序通常也会用到Scala。

在许多方面,Scala和Kotlin代表着面向对象语言的融合。这两种语言许多的概念和符号都是共享的,例如不可声明的val与可变声明var。但是在某些方面比方说在声明lambda函数时的是设置双箭头还是单箭头的问题还是略有不同。

但是Scala有一个明显的缺陷是编译时间往往很长,开发人员如果要构建一个庞大的Scala存储库时,这个问题会更加明显。而Kotlin是在最常见的软件场景中被设计的,它的编译速度比Java代码编译都快,堪称秒杀Scala。

Kotlin与Java的互操作性

谈到null处理和检查异常的差异问题,你可能会想知道Kotlin对Java处理互操作性调用结果的处理。Kotlin推出的平台类型与Java类型完全类似,这就意味着可以为空但会生成空指针异常。Kotlin也可能在编译时向代码中注入一个断言,以避免触发实际的空指针异常。平台类型没有明确的语言符号,但是如果Kotlin必须报告平台类型。

在大多数情况下,从Kotlin调用的代码也可以按照程序员期望的方式工作。此外Kotlin与Java的互操作性涉及到Java工具方面上——Kotlin没有自己的编译器或IDE,但是有流行的Java编译器和IDE插件,包括IntelliJ IDEA,Android Studio和Eclipse。也没有自己的构建系统,使用的是Gradle、Maven和Ant等。

Kotlin取代了Java?

总体来讲,Kotlin比Java拥有更多的优势。不仅可以在JVM上运行代码,还可以生成JavaScript和本机代码。与Java相比,Kotlin更安全、简洁明确。除了面向对象编程之外,它还支持功能编程,提供扩展功能、构建器、协同程序等。重要的是,对于已经熟悉Java的程序员来讲无需浪费太多的时间学习Kotlin。

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额