Kotlin 能取代 Java 吗?

百家 作者:CSDN 2019-01-26 05:12:56


作者 | Paresh Sagar

译者 | 安翔

责编 | 伍杏玲

出品 | CSDN(ID:CSDNNews)

当谈到 Android 应用程序开发时,哪种编程语言会首先出现在你的脑海呢?我猜你会立即想到 Java,毕竟大多数的 Android 应用程序都是用 Java开发的。

但自从在两年前的谷歌 I/O 大会推出 Kotlin 以来,如今的 Kotlin 也在 Android 应用程序开发领域中占据一席之地。

Kotlin 是什么呢?它的前景到底如何呢?


Kotlin


Kotlin 是静态类型的开源编程语言,可以有效地运行在 Java虚拟机(JVM)上。Kotlin 由 JetBrains 开发,并得到谷歌的强力支持。

在最近的 Jexenter 调查中,Kotlin 在最热门的技术发展趋势榜单上高居第六位。App brain 最新的统计数据显示,Kotlin 语言在 2018 年的顶级应用程序中占据了25.30%的市场份额,占新应用程序安装量的40.76%。 如今Pivotal、Atlassian、Pinterest、Evernote 和 Uber 等商业巨头都在使用 Kotlin进行 Android 应用程序开发。

Kotlin 的优点

效率极高

Kotlin 语法简洁直观,编写和部署程序所需的代码量更少,时间也更短,大大提高了开发团队的开发效率。因此,开发者可以快速开发出 Android 应用。

能够调用 Java 代码

该功能不仅让开发者受益,对于拥有大量 Java 代码库的公司来说也是利好。

易于维护

Kotlin 得到多种 IDE 的有力支撑,比如 Android studio 等,这方便了开发者对代码的维护。

可靠

最新版的 Kotlin 兼容之前所有老版本,这解决了 Android 开发人员最大的痛点:需要处理多个版本。

简单易学

由于它不需要依赖太多移动应用程序开发的背景知识,开发者可以更轻松地上手学习 Kotlin。

Android Studio 支持

Android Studio 提供多种扩展工具的有力支持,开发人员可以同时使用这两种语言。

Kotlin 的缺点

编译速度缓慢

很多开发者都提到 Kotlin 代码编译速度的飘忽不定,有时候它编译得很快,有时候又很慢。

社区支持力度有限

Kotlin 开发者社区规模比较小,因此其提供的学习资源有限,开发者将面临很多疑问无法解答的局面。

开发人员稀缺

Kotlin 的开发人员数量比较少,因此用 Kotlin 开发的热门 Android 应用数量有限。


Java


Java 被认为是开发应用程序最好的编程语言之一,2018年12月的 TIOBE 指数显示 Java 在编程语言排行榜中高居第一。

Java 相比 Kotlin 的优势

可移植性

Java 几乎可以在任何系统上运行,因此Java 编写出大部分 Android 应用程序。

庞大的社区

借助 GitHub 和 Stack Overflow 等大型技术社区,开发人员差不多可以从中获得所有关于 Java 代码问题的解决方案。

跨平台

Java 不仅限于 Android 应用程序开发,也支持跨平台应用程序开发。

丰富的资源

Android 开发者可以借助 Java 丰富的库和 SDK 来提升自己的开发效率。

Java 的短板

运行速度缓慢

与其他语言相比,Java 运行需要更多的内存和速度要慢得多。

笨重

和其他语言相比,如果要实现相同的功能,Java 所需的代码量更多。这不仅耗费更多的开发时间,也更容易出现Bug。


Java 与 Kotlin 对比


Java

Kotlin

静态成员

字符串模板

非类的原始类型

单例

非私有域

空安全

通配符类型

扩展函数

检查异常

智能 Casts

毫无疑问,Java 仍然是 Android 编程的王者,但作为开发人员,你也需要了解最新的技术。

原文

https://dzone.com/articles/java-vs-kotlin-which-one-will-be-the-best-in-2019

本文为 CSDN 翻译,如需转载,请注明来源出处。

【完】


 热 文 推 荐 

 吃亏的程序员,如何拿到 9 个月的年终奖?

 CTO职场解惑指南系列(二)春节篇

 人类再次彻底败给 AI!

☞ 不要在爬虫犯罪的边缘疯狂试探!

☞ 区块链,会越来越无聊!

☞ 女程序员:我负责赚钱养家,老公负责貌美如花

☞ 任正非:人工智能就是计算机和统计学

☞ K8S的SDN容器网络解决方案【机制篇】

☞ 心疼!能为程序员男友做些什么吗?

print_r('点个赞吧!');
var_dump('点个赞吧!');
NSLog(@"点个赞吧!");
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧! ");
cout < < "点个赞吧!" < < endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!");
Response.Write("点个赞吧!");
alert("点个赞吧!")
echo "点个赞吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧!

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接