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

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 1.0正式发布:JVM和Android上更好用的语言相关的知识,希望对你有一定的参考价值。

Kotlin是一门实用的编程语言,可用于JVM和android程序开发。日前,Kotlin 1.0正式发布。以下为《Kotlin 1.0 Released: Pragmatic Language for JVM and Android》的翻译内容:



我们欣然宣布: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上阅读相关的讨论。



CSDN软件商城提供JetBrains全系列产品的最新相关信息,欢迎查询。

以上是关于Kotlin 1.0正式发布:JVM和Android上更好用的语言的主要内容,如果未能解决你的问题,请参考以下文章

取代传统 Java UI 框架,JetBrains Kotlin 声明式 UI 框架 Compose Multiplatform 1.0 正式上线

Android 和 Web App 共享 Kotlin 代码

Kotlin学习之变量和函数的讲解

Kotlin 1.2 新特性

谷歌:选用Kotlin的五大理由

从Java替代品到打造完整生态,Kotlin 10岁了!