Kotlin语言1.0Beta发布,JetBrain介绍其设计理念

Kotlin是JetBrains开发的现代编程语言,可运行于JVM环境同时也能用来开发Android应用。它的1.0Beta版本已经发布,这里是新版本的特性列表;

Kotlin起源与设计理念

2010年,长达是十年之久的Java开发让JetBrains的工程师认为老旧的Java语言已经严重阻碍了生产力。他们认为是时候开发一款现代化的JVM语言了,这也是因为他们有足够的资源和专家。本身做各种IDEs起家的JetBrains就开始着手新工具的开发——一个编程语言。

开发新语言有诸多因素需要考虑:首先之前的代码几乎全部用Java编写,所以要考虑平滑迁移的需求;新语言在生产力方面要有巨大提升;同时它要易于学习和理解。这样的工程牵扯到许多方面,不可能从一开始就满足所有需求。这就是为什么他们对核心设计选择进行了一段时间实验和验证,方式是持续收集JetBrains内部和外部的早期使用者的反馈报告,并根据反馈作出进一步的调整。

JetBrains已经在Intelli IDEA、YouTrack和其它产品中使用Kotlin有一段时间了。也有一些产品完全使用Kotlin(account.jetbrains.com)编写.Kotlin语言已经达到可与Java自由透明交互的地步,Kotlin可以通过versa调用Java方法,源码可在同一项目中混合使用,甚至生成的.class文件完全兼容Java工具。JetBrains内部现在已经有一个超过20个开发人员的团队使用Kotlin开发。

目前已经有大量的开发人员使用Kotlin开发web服务后端和Android应用。下面是GitHub中的公开仓库中Kotlin代码行数的变化:

Kotlin语言1.0Beta发布,JetBrain介绍其设计理念_第1张图片

Kotlin初印象

根据JetBrains开发人员自己的经验和外部用户总结的对Kotlin的印象有:

  • 更少代码量
  • 高可读性
  • 跟高的类型安全性
  • 更高的表现力
  • 同工具的交互操作流畅

Beta版本的意义

  • 正在准备发布官方正式版本相关工作
  • 二进制格式已经完成
  • 主要的语言变化已经完成

兼容性

Kotlin会很快发布正式版。在开发之初JetBrains就承诺了流畅的用户体验,这当然也包括Kotlin语言版本的兼容性。1.0版本之后语言的所有变化都将是后向兼容的:

  • 新版本的编译器将兼容旧版本二进制文件,但旧版编译器或许不能兼容新的二进制文件,就像javac 1.6不能读取javac 1.8 编译的classes文件。
  • 旧版本二进制文件将能够和新版本二进制文件一起在runtime一起运行,但新版本代码可能需要新的依赖。

以上的所有特性仅保证支持JVM/Android平台。

关于Kotlin的一些事实

  • 它是开源的(在Apache 2.0 许可证下):编译器、运行时库和所有的工具,包括IDE。
  • 它提倡函数式编程风格(同时也是一个多范式语言)
  • 它是静态编译的,相较于Java它没有运行时开销
  • 它通过Quasar支持高效安全的并发。
  • 它和IntelliJ IDEA是绑定的(最终版和OSS社区版也是),同时也是开箱即用的。
  • 它有Android Studio、Eclipse、Maven、Gradle和Ant插件(更不用说IntelliJ IDEA和TeamCity)。
  • 它有REPL
  • 它有一个活跃和有帮助的社区,提供有用的库。
  • 目前已经有两本关于它的书出版了:Kotlin in Action和Kotlin for Android Developers。

迁移

目前为止基本所有的Java或Android框架或库都能平滑地和Kotlin一起工作。当然还有像Spring MVC、Vaadin和Jackson等等其它框架和库。Kotlin也有由JetBrains和社区开发的自己的框架和库。比如:Anko、RxKotlin、funKtionale、kohesive、kovenant和Kobalt构建工具等等。

学习

学习资料链接:Koans、Playground、介绍、语言文档。

安装方法: * IntelliJ IDEA 15(高级版或者社区版):直接在创建一个Kotlin项目或在Java项目中创建Kotlin文件。 * **Android Studio:通过插件管理器安装插件。 * Eclipse:通过MarketPlace安装插件。 * 命令行:下载编译器。

社区:Forum、Slack(get invite)、StackOverflow、GitHub(欢迎PRs)。

新闻:博客、Twitter。

问题追踪

感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

你可能感兴趣的:(Kotlin语言1.0Beta发布,JetBrain介绍其设计理念)