坐标: Airwallex
现状: 公司级别使用 Kotlin ,Kotlin 和 Java legacy 比例差不多 95 : 5
我了解的同情况的公司:Afterpay (公司级别已普及), Lego (公司级别在转型), Google (部分组)
Kotlin 写后端到底好不好用:
Springboot 2.3.9, 语言层面只遇到过一个坑:Kotlin 自己的 Collection 是有 Immutable 和 Mutable 两种的,而 Java 都是 Mutable 的,至少这个版本对 Kotlin Immutable Collection 支持有问题。所以在 wire bean 的时候要注意下。
别的没遇到过任何语言层面的问题,支持得相当完美。
我理解的阻力:
1. 面向简历编程。在这个公司不干了,去下一家未必能用 Kotlin 。
我觉得这个问题无解,尤其在国内。
2. MVC vs Webflux, JDBC vs R2DBC 。
这其实跟 Kotlin 够不够好没啥关系。我们组自己的服务已经彻底 reactive 化了,没有这方面烦恼。别的组也不是都用这些,但照样可以用 Kotlin 。
3. 觉得语法糖用不上,怕编程风格不统一。
前者的话,我个人觉得都不用说 null safety (毕竟这个东西和 Java 的互兼容性是好是坏是值得讨论的,不是所有 lib 都会给你好好加 @
Nullable ),constructor 的优化和 apply 这两个东西已经足够让我忘记 Java 了。
后者的话,如果你们组 /公司的 CR 流程和风气够好,我觉得互相理解、统一、寻找 better practice 是必经之路,也跟语言没什么关系。