全球今熱點: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 合作中已經習慣的工具和優化。但我們正在努力縮小這些差距。隨著我們取得的進展和這些工具和庫的成熟,我們也將努力把它們放回給社區。”