在使用了 Java 15 年后,我写了第一行 Kotlin 代码,到现在已经差不多 5 年了。我们的团队用Utterlyidle替代 Spring,用Totallylazy进行函数式编程。我们是 IntelliJ 的忠实粉丝,并试着充分利用它提供的 Java 工具。
那个时候,我们不只使用 Java。有一些团队对 Scala 感兴趣,并用它开发了一些服务。但是,因为 Scala 与 Java 代码库协作的复杂性以及缓慢的构建时间,对于我们大多数人来说,它并没有太大吸引力。
2017 年,谷歌宣布 Kotlin 成为 Android 的官方开发语言,另一个与我们关系密切的团队开始评估是否可以在他们的服务器端开发中使用它。最后,我们大多数人都去尝试了一下。
我被 Kotlin 给代码库带来的影响震撼到了。它给人的感觉是更高效、更安全,虽然开发工具没有 Java 那么成熟,但也足够好了。
从一门陈旧而冗长的编程语言中解脱出来,并探索哪些编码风格更适合 Kotlin 的特性,这本身就是一件非常有趣的事情。Kotlin 与 Java 出色的互操作性意味着我们可以增量地依赖现有的生态系统和过渡系统,而不会对工作造成重大干扰。
很快,由于对 Kotlin 的兴趣,我们一起开发了http4k,一个用于开发 Kotlin HTTP 应用程序的工具包,并组织了Kotlin开发研讨会,帮助其他团队尝试使用 Kotlin。
最后,我们看到其他各种项目也在服务器端使用 Kotlin,也看到了一些团队强烈不愿意采用 Kotlin 的原因。
有意思的是,这种抗拒并不总是因为编程语言本身。那么,为什么 Java 服务器端开发社区没有更多地采用 Kotlin 呢?
以下是我和我的同事们看到的一些原因。
“我们没有时间学习一门新语言”
这也就是我们在软件开发项目当中经常看到的“忙着砍柴没时间磨斧子”现象。这通常预示着更深层次问题,比如不断增加的技术债务和开发效率问题。
健康的软件项目需要开发者花大量时间去学习。一个有能力的 Java 开发者可以在数小时内掌握 Kotlin 的基本知识,并在数天内提高开发效率。
如果采用新语言可以让他们写的代码更简单,遇到的问题更少,那么投入就是值得的。
“Java 的每一个版本都在变得更好”
这是真的ÿ