Meta 旗下 Android 应用改用 Kotlin 编程语言 ,称比 Java 更好用
Facebook 的母公司 Meta 透露其开发 Android 应用使用的语言从 Java 迁移到了 Kotlin,这是一种更年轻的编程语言,也依赖于 Java 虚拟机(JVM)。
Kotlin 由软件工具制造商 JetBrains 创建,于 2011 年首次亮相,2016 年推出了 1.0 版本。次年,Kotlin 被谷歌采纳为安卓开发的第一类(支持)语言,并被置于自己的基金会管理之下,由 JetBrains 和谷歌资助。
(资料图片)
在这之前,大多数安卓应用都是用 Java 编写的。2019 年 5 月,在其开发者大会上,谷歌开始鼓励安卓开发者青睐 Kotlin 而不是 Java。当年年底,谷歌表示,在排名前 1000 位的安卓应用中,有 60% 包含 Kotlin 代码。
IT之家了解到,谷歌推荐使用 Kotlin 的理由是,它更简洁、更安全,支持结构化并发,使异步代码更容易,并且可以与 Java 互操作。不过这可能也与 Java 管理人甲骨文有关,甲骨文曾花十多年时间就 Android 中使用的 Java API 向谷歌提出侵权索赔(最终失败)。
Meta 似乎也对 Kotlin 感兴趣,Facebook 软件工程师 Omer Strulovich 称,他们已经在用 Kotlin 替换其几个流行的 Android 应用中的 Java 代码,这些应用包括 Facebook、Instagram、Messenger、Portal 和 Quest。
Strulovich 说:“Kotlin 被普遍认为是一种比 Java 更好的语言,在每年的 Stack Overflow 开发者调查中,Kotlin 的好评率高于 Java,”他指出,Kotlin 已经成为 Android 开发的流行语言,“因此,我们将 Meta 的 Android 开发转向 Kotlin 是合理的。”
但是,除了在安卓生态系统中的受欢迎程度,Strulovich 承认,在更广泛的市场中,其流行度仍然远逊于 Java,Java 是世界第二大或第三大流行的语言。
Kotlin 相对于 Java 的优势包括:内置为空性(nullability)处理,支持内联函数和 lambda 表达式,代码更短,能定义 DSL(Domain-specific language)。缺点是需要在很长时间内面对混合代码库,更难维护,而且 Kotlin 存在的时间比 Java 短,拥有一套不太成熟的工具。
Strulovich 说:“今天,我们的 Facebook、Messenger 和 Instagram 的安卓应用都有超过 100 万行的 Kotlin 代码,而且转换率还在增加。我们的安卓代码库总共有超过 1000 万行的 Kotlin 代码。”
Strulovich 没有说 Meta 是什么时候开始这种转变的,也没有说其 Android 应用代码的转换比例是多少。
Strulovich 还称:“平均而言,我们已经看到这次迁移的代码行数减少了 11%。并且没有出现性能倒退,所以至少转换后的应用程序保持了它们原有的性能。”
Strulovich 说,Meta 的迁移正在进行,并在加速,但他同时表示:“Kotlin 仍然缺乏一些我们在与 Java 合作中已经习惯的工具和优化。但我们正在努力缩小这些差距。随着我们取得的进展和这些工具和库的成熟,我们也将努力把它们放回给社区。”