放棄 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日,中新社國是直通車主辦「能源中國——全面加速綠色能源轉型 推動協同發展」活動。華能新能源股份有限公司分佈式光伏管理部負責人黃力哲結合實踐在會上表示,分佈式的光伏建設發展帶來了「一增、一減、一拉動」。 分佈式光伏發電是指在用戶所在場地或附近建設運行,以用戶側自發自用為主、多餘電量上網且在配電...