近日,JetBrains 官方正式发布了 Kotlin Toolchain 0.11 版本。这个版本号看似平缓递增,但更新日志中一项核心改动却引发社区广泛关注:实验性项目配置工具 Amper 被彻底移除。用开发者们戏谑的话说——“Amper 被干没了”。这一决策背后,是 JetBrains 对工具链生态的重新审视,也意味着曾经被视为“Gradle 替代者”的实验项目正式画上句号。

Amper 是什么?为何被“拿下”?

Amper 是 JetBrains 于 2023 年推出的实验性项目配置工具,旨在用声明式 YAML 文件替代传统的 Gradle Groovy/Kotlin DSL,让 Kotlin 项目(尤其是多平台项目)的构建脚本更简洁、更易上手。它一度被寄予厚望——在 KotlinConf 2023 上,官方甚至展示了“一行配置搞定 iOS+Android 构建”的演示。

然而,实际落地并不顺利。社区反馈集中在几个痛点:

  • 生态兼容性差:Amper 对现有 Gradle 插件及 Maven 仓库的整合能力有限,大型项目很难无缝迁移。
  • 维护成本高:JetBrains 同时维护 Kotlin 编译器、KMP、Compose 以及 Amper,资源分散导致后续迭代缓慢。
  • 定位尴尬:Gradle 本身也在快速演进(例如 8.x 版本大幅简化了 KMP 配置),Amper 的差异化优势逐渐消失。

在 2024 年初的内部评估中,JetBrains 最终决定放弃 Amper,将团队人力集中到 Kotlin Multiplatform 核心能力与 Compose 的跨平台支持上。Toolchain 0.11 正是这一决策的执行节点——移除 Amper 相关代码与依赖。

0.11 还带来了什么?不止“移除”

尽管“干掉 Amper”是最大新闻,但 Toolchain 0.11 在其他方面同样有实质性更新:

  1. 编译器前端性能优化:重构了类型推断与语法解析的某些瓶颈,中型项目的增量编译耗时平均减少 12%。
  2. Kotlin Multiplatform 兼容性修复:修复了在 Apple Silicon 上生成通用二进制时的符号冲突 bug,并优化了 Windows 平台的跨 LLVM 链接。
  3. 实验性新功能:模块预热缓存:允许开发者预编译常用的间接依赖(如 kotlinx.serialization、coroutines),首次构建速度提升明显。
  4. 废弃 API 清理:移除了 0.9 版本中标记为“@Deprecated”的若干 Gradle 扩展函数,并给出详细的迁移指南。

对开发者意味着什么?

  • 如果你在项目中使用了 Amper:JetBrains 官方已提供迁移脚本,可将 YAML 配置自动转换为标准的 Gradle Kotlin DSL。建议在 0.11 发布后的 3 个月内完成迁移,届时旧版本 Amper 将不再获得任何安全及兼容性更新。
  • 如果你从未接触过 Amper:此次更新对你几乎没有影响——Toolchain 0.11 向下兼容所有标准 Gradle 构建脚本,甚至修复了一些之前因 Amper 残留代码导致的稀有问题。
  • 如果你关注 KMP 未来:这个动作侧面表明 JetBrains 正将全部赌注押在 Gradle 生态上。随着 KMP 在 2.0 版本中的稳定性承诺,官方希望构建工具链“一元化”,减少开发者选择困惑。

专家观点:短痛换长稳

一位参与 KMP 社区反馈的资深开发者表示:“Amper 的初衷很好,但时机不对。Gradle 的问题不在于复杂度,而在于文档和模板。现在 JetBrains 砍掉 Amper、联合 Gradle 团队优化 KMP 配置模板,是更务实的路。”

也有声音认为,移除 Amper 可能令部分早期尝鲜者感到失望,但从项目健康度来看,“及时止损”强于“拖着不活”。毕竟 Kotlin 生态的核心竞争力是语言本身与多平台能力,而非又一个构建系统。

结语

Kotlin Toolchain 0.11 是一次“减法”更新——砍掉一个实验性工具,却换来更清晰的路线图与更扎实的性能提升。对于开发者而言,少一份选择,或许意味着少一份折腾。官方已在 Roadmap 中预告:下一个版本将聚焦 KMP 的 IDE 体验提升与编译器增量模型重构。Amper 的倒下,未必不是 Kotlin 生态向前迈出的一大步。