4

放弃 Java,Meta 旗下 Android 应用转投 Kotlin,称比 Java 更好用!

 1 year ago
source link: http://www.androidchina.net/13135.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

放弃 Java,Meta 旗下 Android 应用转投 Kotlin,称比 Java 更好用! – Android开发中文站

最新消息:欢迎访问Android开发中文站!商务联系微信:loading_in
你的位置:Android开发中文站 > 热点资讯 > 放弃 Java,Meta 旗下 Android 应用转投 Kotlin,称比 Java 更好用!

整理 | 辛晓亮

出品 | CSDN(ID:CSDNnews)

根据 Meta 官网博客消息,Meta 正在将其 Android 应用的 Java 代码迁移至 Kotlin,Meta 表示,相比 Java,Kotlin 有一些关键优势。截至目前,其 Android 代码库已有超过 1000 万行 Kotlin 代码。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F1101%2F4389bfddj00rknpx800fid200u000skg00id00hh.jpg&thumbnail=750x2147483647&quality=75&type=webp

Android 开发首选语言:Kotlin

2011 年 7 月,JetBrains 正式推出 Kotlin 编程语言,这是一款用于现代多平台应用的静态编程语言,Kotlin可以编译成 Java 字节码,也可以编译成JavaScript,方便在没有 JVM 的设备上运行。与 Java 相比,Kotlin 的语法更简洁,同时也提供更多的特性支持,比如高阶函数、字符串模板等等。Kotlin 自发布起就一直被拿来与 Java 比较,谷歌的两次举动才彻底让 Kotlin 站稳脚跟。

在 2017 年 Google I/O 大会上,谷歌宣布在 Android Studio IDE 中支持 Kotlin,两年后的 2019 年 Google I/O 大会上,谷歌正式宣布 Kotlin 是 Android 应用程序的开发人员的首选语言。

谷歌之所以支持 Kotlin,除了 Kotlin 基础特性的优势外,其与 Oracle 的 Java 侵权案也是主要因素。

2010 年,Oracle 认为谷歌在 Android 系统上无偿使用了 37个 Java APIs,侵犯了他们的专利;在 Android 中还有 9 行代码抄袭了 Java,侵犯了他们的版权。虽然最终 Oracle 败诉,但在谷歌与 Oracle 这长达八九年的对决中,谷歌也并不是胜利者。

2017 年之后,谷歌便将希望寄托在 Kotlin 之上,先是将 Kotlin 集成到 Android Studio,而后陆续推出 Android KTX(帮助 Kotlin 代码更简洁)、Android Jetpack(全面兼容 Kotlin),最后在 2019 年宣布 Kotlin 成为 Android 开发首选语言,并鼓励安卓开发者从 Java 迁移至 Kotlin。

2019 年 I/O 大会,谷歌也宣布其 Android 团队采用了“Kotlin-first”的方法。谷歌拥有 70 多个至少部分使用 Kotlin 构建的 Android 应用,包括地图、家庭、Play 商店、云端硬盘等。谷歌表示,与 Java 相比,Kotlin 更高效,可以生成更安全的代码和更小的代码库,并且与 Java 语言 100% 可互操作,通过允许它们共存,使从 Java 代码库的转换变得更容易。

Meta Android 代码迁移进行时

Meta 同样对 Kotlin 感兴趣,Facebook 软件工程师 Omer Strulovich 称,他们已经在用 Kotlin 替换其几个流行的 Android 应用中的 Java 代码,包括 Facebook、Instagram、Messenger、Portal 和 Quest 等。截至目前,Facebook、Messenger 和 Instagram 的 Android 应用程序都有超过 100 万行的 Kotlin 代码。Meta 的 Android 代码库总共已包含有超过 1000 万行的 Kotlin 代码。

Strulovich 说到:“Kotlin 被普遍认为是比 Java 更好的语言,在每年的 Stack Overflow 开发者调查报告中,Kotlin 的好评率也高于 Java”,他表示,Kotlin 已经成为 Android 开发的流行语言,“因此,我们将 Meta 的 Android 开发转向 Kotlin 是合理的。”

尽管 Kotlin 有许多好处促使 Meta 进行迁移,但 Strulovich 也提到了一些 Kotlin 明显的缺点,这些缺点使迁移具有一定的风险,至少对于大型应用程序而言是这样。

首先,Java 和 Kotlin 在流行度上的巨大差距导致后者使用的工具较少,而且这些工具必须考虑到 Kotlin 与 Java 的互操作性,因此非常复杂。尽管这两个语言具有 100% 的互操作性,但 Meta 发现它无法删除所有 Java 代码。

“Kotlin 是一种流行的语言,但与 Java 相比,流行程度的差距很明显。Java 是世界上第二或第三流行的语言(取决于如何衡量这一点)。这意味着 Kotlin 可用的工具更少。更糟糕的是,所有的 Kotlin 工具需要考虑 Kotlin 和 Java 的互操作性,这使得它们的实现变得复杂”,Strulovich 指出。

但 Meta 最大的担忧还是在另一方面,相对于 Java,Kotlin 的构建时间较慢

“我们从一开始就知道 Kotlin 的构建时间会比 Java 长,Java 在优化其编译器方面领先了 20 年。由于我们拥有多个大型应用程序,更长的构建时间可能会对我们开发人员的体验产生负面影响。”

Strulovich 举了 HTTP 客户端项目 OkHttp 在 2019 年从 Java 切换到 Kotlin 之后的编译时间对比的例子。OkHttp 很小,只有 24000 行 Kotlin。它在 Java 中的编译时间为 2.4 秒,而在 Kotlin 中为 10.2 秒,5 倍左右的差距。

权衡利弊后,Meta 还是认为将其众多 Android 应用程序的代码库从 Java 转换为 Kotlin 并将其迁移过程及经验分享出来。

谷歌的 Kotlin 产品经理 James Ward 对 Meta 的举动表示欢迎:“三年来,Android 一直以 Kotlin 为先,因为它为我们提供了最好的开发者体验,同时在 Java 及其生态系统的基础上进行构建并与之互操作,”他说到:“因此,我们很高兴看到 Meta 向 Kotlin 迁移,并且很高兴他们取得了成功。许多 Google 团队也经历了从 Java 到 Kotlin 的类似旅程,截至 2022 年 10 月,最终达到超过 1100 万行的 Kotlin 代码。其他大型项目进行类似的旅程再次确认了我们选择的道路。”

https://engineering.fb.com/2022/10/24/android/android-java-kotlin-migration


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK