近日 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 来说,肯定是一件好事。