自从今年5月,Google Android团队官宣,Kotlin成为继C++和Java之后的第三个官方编程语言,Kotlin就呈现了爆发式的增长,不仅在编程语言的各种榜单中都大幅逆袭,而且在程序员之间的采用率也直线上升,有人预测Kotlin将在未来几年内超越Java。
Kotlin是由JetBrains为JVM,Android,JS浏览器和本机应用程序开发的静态类型编程语言。根据Realm Report,从2015年8月起,Kotlin构建的应用数量已经增长了125%,目前Kotlin应用程序中约有20%的应用以前是用Java构建的。
1. 赶时髦 最近 Kotlin 的讨论,在我的知乎时间线上成爆发趋势,大多数情况下我并不是一个赶时髦的人,然而 Kotlin 的火热超出想象,甚至微信指数一度超越 Java,好奇心驱使我一定要尝试了一下。 在之前多年的职业生涯中,我编写了大量的 Java 代码,对 Java 语法的啰嗦是有深刻体会的,可以说要不是因为大量的项目维持在 Java 平台,肯定早就切换到其他语言了(比如 Python 现在是我的首选语言)。 对于其他的一些 JVM 语言其实也都拿来在工程上时间过,比如 Scala(鉴于其巨难用的 SBT 果断放弃,不知道近况如何了),也有一些其他的小众 JVM 语言,我在工程上用了之后根本没有他们说的那种酷炫的效果,根本就是假的,都是特效。 对于 Kotlin,我抱着试一试的态度试学了两个疗程,经过一周左右的熟悉和改造(特意找了一个较为复杂的旧全文检索项目进行了改造,代码量缩减为 1/3),和大部分人的谨慎态度不一样,我认为 Kotlin 有巨大的潜力全面替代 Java。 2. 体验
代码的大幅度精简
100% 兼容 Java 代码
函数式编程
各种语法糖
3. 感想 如我在开头所说,我认为 Kotlin 有望成为替代 Java 成为新的工业语言(当然对于新人来说入门门槛是提高了一些),目前 Google 宣布 Kotlin 成为Android 一级语言,我相信并非由于部分人说的和 Oracle 的专利之争,而是实实在在期望全面提升 Android 的开发效率和语言层面的特性支持(Java 8 才支持 stream 操作,而且语法依然很难看,可见当权派多么固执)。 Google 和 Jetbrains 的深度合作也让人浮想联翩,下一步收购 Jetbrains,大力推广 Kotlin 语言也不是不可能(毕竟据说 Swift 在国外已经是主流了,咱码农灯塔也不能老守着古董级的 Java 不放),而 Jetbrains 推出的各种开发神器之成功也是有目共睹的。 100% 兼容 Java 也并非噱头,而是实打实的支持,甚至 IDE 可以支持直接将 Java 代码转换成 Kotlin 代码(目前我自动转换了很多代码,仅遇到一例位操作转换失败)。 总结起来,切换成本几乎没有(绝大多数情况可以依赖 Jetbrains 的神器自动转换 Java 代码),同时有巨头亲爹,未来的光明前途不可限量。 4. 学习和迁移 官方网站的文档和例子非常详实,一个成熟的 Java 开发者应该很容易快速按照官网的例子学会。 如果您是编程初学者并且英文不是很好,不建议在现在这个阶段将这门语言作为第一语言(中文社区资源还不是特别丰富)。 对了,Spring 5 专门为支持 Kotlin 做了大量的工作,就问你怕不怕:
您是否决定抛弃Java转投Kotlin了吗?
您对于Kotlin的感受如何呢?
未来您更看好什么语言呢?