微信号:androidtrending

介绍:Android开发最佳实践、一线经验分享、技术前沿,最好用的Android开发工具、服务、开源项目.

Kotlin 1.0 正式发布: JVM 和 Android 上更好用的语言

2016-02-16 09:10 JetBrains中国

原文:http://blog.jetbrains.com/kotlin/2016/02/kotlin-1-0-released-pragmatic-language-for-jvm-and-android/

译文:http://weibo.com/ttarticle/p/show?id=2309403942933815527259

作者:Andrey Breslav,译者:JetBrains中国


最近提起Android开发领域的新技术,总会有人提到Kotlin,有人称它是Android世界的Swift,就在昨天,Kotlin 1.0版本终于正式发布了,确实是喜大普奔的消息。


Java这门语言历来争议颇多,而Kotlin的诞生,使得我们有机会换一种方式开发Android应用,建议广大开发者都可以尝试一下,我们后续也会推出一些关于Kotlin开发相关的主题文章,敬请各位保持关注。


原文由 Andrey Breslav 发布于 2016年2月15日


我们欣然宣布:Kotlin 1.0 发布了!


这是条令人激动的漫长之路,如今我们总算达成首个大版本发布。为了庆祝正式版本的发布,我们为Kotlin准备了焕然一新的logo:

什么是 Kotlin ?

Kotlin 是一门实用的编程语言,可用于 JVM 和 Android 程序开发,Kotlin 结合了面向对象和函数式特性,致力于互操作性,安全,简洁和工具支持


Kotlin 是一门通用的语言,只要能用 Java 的地方就能用 Kotlin,包含:服务器程序开发,移动应用开发(Android),桌面客户端程序开发。 Kotlin 支持所有主要的开发工具以及服务,比如:

  • IntelliJ IDEA,Android Studio 和 Eclipse

  • Maven, Gradle 和Ant

  • Spring Boot(Kotlin 支持今天正式发布!)

  • GitHub,Slack,甚至 Minecraft


Kotlin 的主要特点之一是Java+Kotlin 混合工程的互操作性以及无缝兼容,使引入Kotlin的过程简单容易,并达成更少的重复性代码(boilerplate code)和更佳的类型安全(type-safety)。

Kotlin 还有一个扩展标准库(extensive standard library)能让日常工作变得简单顺畅,它能帮助保持低内存占用 (bytecode footprint)。当然,Kotlin 中自然可以使用 Java 库,反之亦然

何谓实用?

解核心价值是长期项目最至关重要的一环。如果要选择一个词来形容 Kotlin 设计,那必是”实用”。这也是为什么在一开始我们便声明 Kotlin 的重心不在发明或研究。虽然最后我们仍然做了一些新发明,但从未是项目的重点。当然,我们是在建立一个防止错误的类型系统,以及有利于代码重用的抽象机制,换作其他人在我们相同位置上,也都会这么做的。但我们用以独特的(并且是务实的)方法来落实-我们专注于使用案例,来促使语言成为一个好工具


这也立即的点出了最根本的概念,即与现有代码和基础设施的互操作性是极致重要的。谁不希望能用正确方法重新创造世界,让一切从零开始?如果不是考量着与 Java 的互操作,Maven的整合,以及 Android 的兼容发展, Kotlin 的设计会是更容易的!并且肯定在许多方面更优雅。优雅虽是可喜的,但并不是我们的主要目标。Kotlin 的首要目标是在实用。而只要我们的用户能避免重新学习,重新发明,从头开始重做,并且越能重复使用,就是对用户好的。


  • 为什么 Kotlin 没有自己的包管理器,或自己的构建系统?

  • 因为已经有 Maven 和 Gradle,并且重复使用他们庞大的插件对许多项目是非常重要的。


  • 为什么在重新设计集合会更加容易的情况下,我们还是投入了大量的时间和精力制作JDK兼容的集合接口?

  • 因为大量的 Java 代码通过 JDK 集合运行,而转换数据是非常痛苦的。


  • 为什么 Kotlin 支持Java 6的字节码?

  • 因为很多人还在运行的 Java 6(尤其是 Android)。


我们来说实用是在创造用户体验,而不是只一种语言或单独的库。许多语言设计的决策是在重重限制下不得不为,比如: “这个设计是否会阻碍增量编译?”,“万一这个设计增加了APK方法计数?”,“IDE将如何标示这个as-you-type?”...等等。因此我们特别为我们的工具以及语言感到自豪。

Kotlin 是否足够成熟,能适用于正式产品中?

Kotlin 是足够成熟的,并且已经应用于产品开发有一段时间了。在过去的两年中,JetBrains不止实现了编译器和工具化,同时还在项目中大规模地对 Kotlin 进行过实战检测。除了JetBrains内部,许多外部公司都已经使用 Kotlin 开发正式产品一段时间了。


正因为我们花费了相当大的精力通过实践来验证我们的设计决断,我们花了相当长的时间才正式发布1.0版本。这是必须的步骤,因为往后的这个编译器将确保它的向后兼容性,并且未来Kotlin 的后续版本也必须兼容现有的代码。于此,我们花了点时间来确保我们的选择是正确的。


我们之所以能够达成这个里程碑,必须感谢来自 Kotlin 早期使用者的帮助。感谢他们的勇敢,感谢他们付出的精力,感谢他们的热情!

Kotlin 的背后是谁?

首先必须知道的是,Kotlin 是一个开源语言。

  • Kotlin 是在 GitHub 基于Apache 2.0 Open-Source license开发

  • 如今已经有超过100位贡献者


目前而言,JetBrains 是 Kotlin 的主要支持者,我们为了开发 Kotlin 付出了巨大的努力并且承诺会长期的坚持下去。最初我们创造 Kotlin 是为了满足自身开发产品的需求,如今我们已经有十多个 JetBrains 产品使用 Kotlin 开发,包含IntelliJ IDEA, JetBrains Rider ,JetBrains Account 和 E-Shop,YouTrack 以及部分 IDE。因此 Kotlin 将会长存。


从2012年开始,我们对 Kotlin 的开发就保持着非常开放的态度:无时无刻在社区中交流着,收集并且处理了大量反馈意见与建议。我们正计划着设立一个集中地以供汇总讨论和设计建议,如此一来整个流程就会变得更加透明,有条理。Kotlin 规范化相关的工作目前尚未开始,但这只是迟早的事情。


语言设计与项目的统筹管理已经由 JetBrains 雇用的团队完成了,目前我们有超过20位全职员工致力于 Kotlin,这也说明了 JetBrains 是认真的对待这个项目。

Kotlin 相关的数字

我们从一些数字来了解 Kotlin。

  • 上个月总计有超过11k的使用者,光是上周就有5k的使用者

  • 上百个 StackOverflow 回答

  • 两本书 Kotlin in Action  Kotlin for Android Developers

  • 大约1400人活跃于 Slack

  • 超过50万行的 Kotlin 代码的在大型项目中使用,比如 IntelliJ IDEA 和 Project Rider


谈到代码行数,在 GitHub 上的开放知识库内 Kotlin 的代码行数正随着时间指数增长,这还不包含 JetBrains 自己的项目。


今天,将 Kotlin 用于正式产品开发的企业数目不断的增加,其中包括大家熟知的 Prezi 和 Expedi。如果你也正在使用 Kotlin,请提交一个 Pull Request 让我们将你的项目也加进这个名单上


Kotlin 将如何演进?


随着1.0的发布,我们承诺了 Kotlin 语言的向下兼容性以及其标准库,kotlin-stdlib,的长期发展:

  • 新版编译器能够兼容旧版二进制文件(但是旧版本的编译器无法理解新的编译,就像 javac 1.6 无法解析 javac 1.8 编译的类一样)

  • 在运行时环境,旧版二进制文件能与新版二进制文件兼容(但是新的代码还是需要新的依赖)


这仅适用于JVM/Android。JavaScript的支持仍处于实验阶段,之后会单独发布。


至于计划,除了修复bug之外我们近期的目标包含:

  • 对 Kotlin 工具链持续性能优化(例如,Gradle 增量更新)

  • JavaScript 语言支持(包括 JVM 和 JS 的交叉编译)

  • 支持将优化过的 lambdas 表达式生成 Java 8 字节码,以及其他(只要Android用户需要,我们也会积极支持Java 6)


工具更新和bug修复会在次要更新中发布,比如1.0.x。较大的变更,首先会发布一个早期试用版本(EAP版本),然后才会发布正式版,比如1.1。

如何开始使用?

简单的试用 Kotlin 的办法是使用在线的迷你 IDE: try.kotl.in ,以及 Koans ,一个有系统的入门教学,来引导你了解语言基


你也可以选择在自己的设备上使用 Kotlin(Koans 也 可以离线使用 

  • IntelliJ IDEA( Ultimate 或者 Community 版本):直接创建一个 Kotlin 工程或者在 Java 工程中新建一个 Kotlin 文件

  • Android Studio:通过 Plugin Manager 安装 Kotlin 插件

  • Eclipse:通过 Marketplace 安装 Kotlin 插件


温馨提醒:如果你使用的是旧版本,你可能需要将 Kotlin 插件升级到1.0。


了快速了解 Kotlin 语言的概念,语言文档和教程可以在 官方网站 上取得,你也可以在 Digest of 2015 上找到社区成员分享的演讲和文章。


如果你计划在现有的 Java 项目中使用 Kotlin,你可以用 IDE 中内置的Java-to-Kotlin 转换器轻松的转换类。


最后,也请记得来我们的 论坛  Slack 上分享你的想法和问题。


我们在此再次感谢大家,Kotlin 是依靠着社区的力量达成的。


现在就让我们享受 Kotlin 吧!



P.S. 请到 Reddit  Hacker News 上阅读相关的讨论




因微信平台限制,部分链接请点击文末阅读原文查看。


如果喜欢这篇文章,记得点赞与分享给好友。

如果你还想了解更多Android开发最佳实践、经验分享、最好用的工具与服务,技术前沿,请长按下方二维码或搜索微信公众号:AndroidTrending关注我,我会继续保持精品。

 
Android程序员 更多文章 如何姿势正确地做一个充满果味的Android应用 如何全面掌握别人家的App数据? Android应用框架最佳实践 LeakCanary:跟OOM说再见 传说中的Android军火库
猜您喜欢 Windows微信DPI适配 干货 ▏程序员技术练级攻略 最受IT公司欢迎的50款开源软件 生活中那些令人感觉快乐的事情 【TechCrunch 国际创新峰会】黄东旭:划时代的 NewSQL 分布式关系型数据库