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

jopen 8年前

 

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

Kotlin起源与设计理念

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

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

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

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

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

Kotlin初印象

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

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

Beta版本的意义

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

兼容性

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

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

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

关于Kotlin的一些事实

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

迁移

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

学习

学习资料链接: KoansPlayground介绍语言文档

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

社区: ForumSlackget invite )、 StackOverflowGitHub (欢迎PRs)。

新闻: 博客推ter

问题追踪