近日 Meta 正式宣發加入了 Kotlin 基金會,如果你對 Meta 不熟悉,那么對于開源了 React Native 的 Facebook 應該不陌生了吧?現在它也正式加入了 Kotlin 領導者的陣營:

Kotlin 基金會 是由 Jetbrains 和 Google 共同成立的基金會,而本次 Meta 的加入則是成為了 Gold (金牌)會員,而在此之前,Gradle 也只是 Silver(銀牌)會員而已。
當然你要說 Gold 和 Silver 這兩者的最大區別,首先肯定就是會員費:
- Gold 需要繳納 15 萬美金一年
- Silver 需要繳納 3 萬美金一年
而 Gold 的好處就是在 Silver 所有權益下,還有資格擔任秘書職務,并且會固定擁有基金會董事的一個席位,而基金會董事的席位一般會有:
- 有權參與制定 Kotlin Foundation 的長期戰略方向,例如 Kotlin 語言的開發重點、生態系統擴展(如 Kotlin Multiplatform)
- 監督或參與 Operating、Ecosystem 和 Trademark 等相關工作
而 Meta 加入 Kotlin 基金會,也標志著它對 Kotlin 和更廣泛的 Android 開發生態系統的持續承諾的一個重要里程碑,當然,目前還沒看到 Meta 關于 KMP 和 CMP 的相關承諾,從歷史過往和公告上看,Meta 對于 Kotlin 主要還是集中在 Android 領域。
例如在過去幾年,Meta 工程師一直在積極地將他們龐大的 Android 代碼庫 (包含數千萬行代碼)從 Java 遷移到 Kotlin,甚至為了推進這一大規模遷移,他們還開發了一款名為 Kotlinator 的內部工具,用于自動完成大部分轉換過程,同時確保生成的 Kotlin 代碼符合語言習慣并與 Meta 的內部框架兼容。
Kotlinator 主要是基于 IntelliJ 的 J2K(Java-to-Kotlin)轉換工具,并通過一系列定制,主要核心有:
- Kotlinator 將 IntelliJ 的 J2K 轉換工具改造成一個 headless 工具,從而支持在遠程服務器上運行,而無需依賴圖形化界面
- 通過擴展 IntelliJ 的 ApplicationStarter 類,Kotlinator 直接調用 JavaToKotlinConverter,實現 Java 到 Kotlin 的自動轉換
而在運行 J2K 之前,Kotlinator 會對 Java 代碼進行分析和調整,例如處理空安全問題、應用已知的 J2K 轉換修復(如 JUnit 框架的特殊處理),確保代碼適合轉換等。
而在轉換后的 Kotlin 代碼也會經過進一步優化,主要是調整為更符合 Kotlin 的慣用寫法(idiomatic Kotlin),包括處理空安全、替換不規范的代碼結構(如 isEmpty 的替換)以及修復 J2K 的潛在 bug 等,例如:
- Kotlinator 會使用靜態分析工具(如 Nullsafe 或 NullAway)檢測潛在的空指針問題
- 利用 JetBrains 的 PSI(Program Structure Interface)庫進行代碼分析和轉換
- 通過解析編譯器的錯誤信息,自動識別和修復轉換過程中的問題
另外 Meta 還是企業 Java-to-Kotlin 工作組的成員,這個工作組是 Google、JetBrains 和 Uber 合作,目的在于支持企業將大型 Java 代碼庫遷移到 Kotlin。
此外,Meta 還支持了 Kotlin 生態系統中的重要基礎設施工作,包括在 Buck 中開發 Kotlin 和 Android 構建工具鏈 ,重點是提高構建速度和可擴展性,以及對 Kotlin 格式化程序等庫的貢獻,幫助團隊更輕松地維護一致且慣用的 Kotlin 代碼庫。
所以雖然 Meta 之前在 Kotlin 領域貌似沒什么“熱度”,但是其實在該領域的貢獻和投入并不少。
而后續,作為 Kotlin 基金會的 Gold 會員,Meta 將為 Kotlin Grants 等重要舉措以及 Kotlin 多平臺學生競賽等教育活動繼續做出貢獻。
不知道在未來 Meta 是否會在 KMP/CMP 有全新的投入支持,畢竟在已經有 React Native 持續投入的情況下,KMP 是否能成為 Meta 的新選擇還未可知,不過,這對 Kotlin 來說,肯定是一件好事。
參考鏈接
-
https://engineering.fb.com/2025/06/30/android/meta-joins-kotlin-foundation/
-
https://engineering.fb.com/2024/12/18/android/translating-java-to-kotlin-at-scale/