10 月 29 日消息,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 合作中已经习惯的工具和优化。但我们正在努力缩小这些差距。随着我们取得的进展和这些工具和库的成熟,我们也将努力把它们放回给社区。”