Java与Kotlin, 哪个是开发安卓应用的首选语言?

发布时间:2018-11-08

Java是很多开发者创建安卓应用的首选语言,但它在 Android 界的领导地位正受到各种新语言的挑战,Kotlin就是其一。虽然Kotlin最近才开始受到热捧,但有为数不少的人相信 Kotlin 在不久的将来,会成为Java最大的竞争者,甚至会把 Java 拉下移动开发的王座。下文中,我们对 Java 和 Kotlin 进行详细对比,以帮助您确定哪一种语言最适合于您今后的移动开发项目 。

1、JAVA

当谈及 Android 应用开发时,Java 是许多开发者的最爱,主要是由于 Android 本身就是用 Java 编写的。Java 由 Sun Microsystems(已被 Oracle 收购)所开发,是一种面向对象编程语言,在 GitHub 上位居语言活跃度榜单第二位。

Java 的优势

易学易懂;

灵活性 – 您可以在浏览器窗口或虚拟机中运行它。当您重用代码和更新软件时,这一特性会显得很方便;

对于开发跨平台应用来说,是一个不错的选择;

Android 依赖于 Java — Android SDK 包含许多标准的 Java 库;

Java 拥有一个大型的开源生态系统,部分原因是由于 Google 为 Android 采用了Java 虚拟机(JVM);

在 Gradle 中加速汇编 – 我们在汇编大型项目时都非常感谢它;

Java 应用更加紧凑 – 与 Kotlin 相比,Java 应用往往占空间更少(即使是完全模拟);一个包含复杂计算流程的 Kotlin 应用在低配置的用户设备上运行可能会十分缓慢(如果开发者缺乏经验的话);

顶级的开发速度 – Java 具有比 Kotlin 更快的构建过程。

JAVA 的劣势

Java 的一些限制会导致 Android API 的设计出现问题;

作为一种冗长的语言,Java 需要编写更多的代码,这带来了更高的错误率和 bug 风险;

与许多其他语言相比,Java 执行速度较慢,并且占用大量内存。

2、KOTLIN

Kotlin 是由来自 JetBrains 公司(代表作:集成开发环境 IntelliJ IDEA)的开发者所设计的,它为 Java 添加了一些现代功能,这对移动开发很有帮助。Kotlin 是一种基于 Java 虚拟机(JVM)的开源、静态类型语言,但您也可以将其编译为 JavaScript 或 Native,以构建可在 iOS 上运行的代码。

KOTLIN 的优势

在 Android 开发中获得了很高的流行度,但它也被用于 Spring 5 等后端项目;

从 Java 切换到 Kotlin 非常简单 – 您只需安装 Kotlin 插件,将其添加到 Gradle 构建文件中,然后单击 “转换” 就好了;

包含智能扩展功能,帮助开发者构建干净的 API;

在其类型系统中设有 null – null 问题是 Java 开发中的一个常见问题,由于 Android 经常使用 null 来表示值不存在,因此 Kotlin 通过将 null 直接设置在类型系统中来解决该问题;

它比 Java 简洁得多,这意味着代码写错的几率大大下降了;

与 Java 可互操作 – 您可以在 Kotlin 中编写新模块,无需担心它们不能与现有 Java 代码协同工作;Kotlin 兼容所有 Java 库和框架、JVM,并且可以与 Gradle 或 Maven 构建系统进行整合;

开发者可以从 Anko 库 和 Github 上的 2000 多个 Kotlin 项目中汲取灵感;

采用 Kotlin 不需要任何费用。

KOTLIN 的劣势

由于 Kotlin 语法简洁(这既是好处也是挑战),将整个团队转为用 Kotlin 开发时,学习曲线将会非常陡峭;

编译速度慢于 Java(尽管 Kotlin 在某些情况下被证明可以击败 Java);

开发者社区很小,这意味着学习资源有限,很多问题难以得到解答;看一看 Stackoverflow 你就大概了解情况了 – 只有大约 8000 个含有 Kotlin 标签的问题,但含有 Java 标签的问题却高达 137 万个;

经验丰富的 Kotlin 开发者仍然很少见,因此为您的团队寻找导师可能会很棘手;

与纯 Java 项目相比,Android Studio 自动完成和编译的运行速度往往较慢。