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

2022年11月01日17:15:03 科技 1768

整理 | 辛晓亮

出品 | CSDN(ID:CSDNnews)

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

放弃 Java,Meta 旗下 Android 应用转投 Kotlin,称比 Java 更好用 - 天天要闻放弃 Java,Meta 旗下 Android 应用转投 Kotlin,称比 Java 更好用 - 天天要闻

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 代码库的转换变得更容易。

放弃 Java,Meta 旗下 Android 应用转投 Kotlin,称比 Java 更好用 - 天天要闻

Meta Android 代码迁移进行时

Meta 同样对 Kotlin 感兴趣,Facebook 软件工程师 Omer Strulovich 称,他们已经在用 Kotlin 替换其几个流行的 Android 应用中的 Java 代码,包括 Facebook、InstagramMessenger、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

放弃 Java,Meta 旗下 Android 应用转投 Kotlin,称比 Java 更好用 - 天天要闻

科技分类资讯推荐

谷歌在欧遭遇反垄断投诉,独立出版商指控“AI概览”会损害行业 - 天天要闻

谷歌在欧遭遇反垄断投诉,独立出版商指控“AI概览”会损害行业

IT之家 7 月 5 日消息,据路透社 4 日获得的一份文件显示,谷歌因其“AI 概览”功能遭到一批独立出版商向欧盟发起反垄断投诉,并被要求采取临时措施,以防对出版商造成无法弥补的损害。IT之家注:“AI 概览”是谷歌在搜索结果中提供的 AI 自动摘要,置于网页链接上方,已在全球超过 100 个国家和地区上线,并自去年 5 月起...
经历五年严峻挑战,华为智能手机销量重回中国第一 - 天天要闻

经历五年严峻挑战,华为智能手机销量重回中国第一

在经历了近五年的严峻挑战后,华为已在中国智能手机市场完成了一次非凡的回归。根据市场研究机构Counterpoint Research于7月5日发布的最新数据,2025年第二季度,华为凭借其强劲的增长势头,已超越所有竞争对手,有望重返中国市场
4399元!小米激光投影仪3发布:4K分辨率、1000流明CVIA亮度 - 天天要闻

4399元!小米激光投影仪3发布:4K分辨率、1000流明CVIA亮度

快科技7月5日消息,小米激光投影仪3悄悄登场,目前已经在电商平台上架预约,7月10日20:00开售,售价4399元,国补到手价3519.2元。新品具备4K分辨率,搭配0.47"DMD芯片,能呈现出清晰、细腻的画面,即使在120英寸巨幕上也能保证细节丰富。采用纯三色激光光源,能有效避免散斑和色边问题,在画面色彩和亮度均匀性上表现出色。...
黄力哲:分布式光伏建设带来“一增、一减、一拉动” - 天天要闻

黄力哲:分布式光伏建设带来“一增、一减、一拉动”

文/王梦瑶4日,中新社国是直通车主办“能源中国——全面加速绿色能源转型 推动协同发展”活动。华能新能源股份有限公司分布式光伏管理部负责人黄力哲结合实践在会上表示,分布式的光伏建设发展带来了“一增、一减、一拉动”。 分布式光伏发电是指在用户所在场地或附近建设运行,以用户侧自发自用为主、多余电量上网且在配电...