

Kotlin 1.1已正式发布!支持JavaScript、协同程序
本文转载自JetBrains
本文是翻译官方博客:Kotlin 1.1 Released with JavaScript Support, Coroutines and more
我们今天发布Kotlin 1.1。这对我们来说是一个巨大的进步,我们为此感到非常高兴!
最新消息
Kotlin 1.1进行了许多语言改进。支持JavaScript和协同程序是引人注目的亮点。再举几个例子:类型别名、绑定可调用引用、lambda中的解构赋值。可以在我们的最新消息页面找到完整的列表(试试可运行示例 runnable examples!)。
支持JavaScript
Kotlin旨在成为真正的全堆栈语言:现在,所有功能都可以用于JVM/Android和JavaScript。(在JavaScript中无法实现反射,但我们正在这方面努力。)这意味着可以用Kotlin编写整个web应用,并且我们已经有一些在JetBrains中的相关经验。我们将很快发布这方面的教程和其他资料。
Kotlin对JavaScript的支持包括动态类型,以便实现与“本地”JavaScript代码的互操作性,并且使用来自DefinitelyTyped的typed header以利于使用各种有名的库。
从我们的文档了解更多信息。
协同程序
Kotlin中的协同程序使非阻塞异步代码像普通的同步代码一样简单。
异步编程正在接管世界,唯一阻止我们的是非阻塞代码对系统增加的复杂性相当可观。Kotlin现在提供了简化这种复杂性的方法,通过单原语挂起函数:使协同程序成为语言中的一等公民:这种函数(或者说lambda)代表可以被挂起(不会阻塞任何线程)且可以在以后继续执行的运算。
从技术上而言,协同程序是一种轻量级的多任务协作方法(非常类似Fiber)。换言之,它们就是一种更好的线程:几乎可以随意启动和保留、消耗资源极少(挂起用于协同程序,阻塞用于线程)、编写和自定义都非常简单。
我们设计协同程序以提供最大的灵活性:语言中固化的内容很少,而且很多工作能以库的方式进行。kotlinx.coroutines项目提供以Rx、CompletableFuture、NIO、JavaFx和Swing为基础的库。可以为Android和JavaScript编写类似的库。即使很多可用的内置结构是以其他语言编写的,也可以采用Kotlin库来表达。包括来自C#的async/await、来自Python的generators/yield、来自Go的channels/select:
从我们的文档了解更多信息。
重要说明:因为这些功能提供了众多优势,Kotlin协同程序几乎算是全新的设计,所以需要经过广泛的实战测试,才能确保其100%的正确和完整。因此,我们发布时才加上了“实验性”的选择加入标志。我们不打算改变语言规则,但可能在Kotlin 1.2中对API进行一些调整。
工具
Kotlin 1.1不是Kotlin工具的主版本:我们希望具有这些功能的工具就绪后,不影响到语言本身,因此,您已在Kotlin 1.0.x版中看到了很多这类改进。列举几个亮点:
- 用于所有主要IDE的Kotlin插件:IntelliJ IDEA、Android Studio、Eclipse和NetBeans
- IntelliJ IDEA和Gradle中的增量式编译
- 用于Spring、JPA和Mockito(使类公开且生成无参构造函数)的编译器插件
- 处理注释的kapt
- 用于Android项目的Lint支持
- 众多IDE意向、检查、快速修复、重构和代码补全改进
我们将继续努力改善我们的工具,并在1.1.x版中交付改进。
Kotlin的第一年:采纳和社区
简言之,Kotlin正在成长。去年,用户已经超过16万人。Github上OSS项目的Kotlin代码行已从2.4M增长到10M行(大约增长了4倍)。我们的Slack社区人数从1’400人增加到5’700人以上(大约增长了4倍)。该社区在全球组织了大量聚会和用户组。Kotlin书籍和在线课程日渐丰富。
Kotlin的服务器端和Android开发人员数量均等(大约各占一半)。Spring Framework 5.0已支持Kotlin,vert.x 3.4同样如此。Gradle和TeamCity使用Kotlin建立脚本。可以在kotlin.link找到更多使用Kotlin的项目。
很多著名的公司也在使用Kotlin:Amazon Web Services、 Pinterest、Coursera、Netflix、Uber、Square、Trello、Basecamp。其中包括由著名银行(如:Goldman Sachs、Wells Fargo、J.P. Morgan、Deutsche Bank、UBS、HSBC、BNP Paribas、Société Générale)组成的联盟开发的分布式分类账Corda,其代码库中的Kotlin代码超过90%。
我们衷心感谢世界各地的用户、捐助者和倡导者。您的支持对我们十分重要!
下一步行动
为使Kotlin成为真正的全堆栈语言,我们将提供工具和语言支持,以便在多种平台上编译相同代码。这将便于在客户端和服务器端共享模块。我们将继续改进对JavaScript工具和库的支持。其中,已经开始着手实现JavaScript平台的增量式编译。敬请关注1.1.x版更新。
Java 9即将面世,我们会在发布前提供对其新功能的支持。
我们期待下个月收到大量有关协同程序的反馈,而改进语言的这一部分(性能和功能)是我们最重要的事情。
除此之外,下一版的重点主要放在维护、改进性能、基础结构和缺陷修复上。
附言:在多种平台上运行是Kotlin的战略方向。可以在服务器、桌面、Android设备和浏览器上运行1.1版,但我们打算今后将Kotlin编译到本地代码,并在更多平台(例如包括:iOS和嵌入式设备)上运行。一支实力强大的团队正在JetBrains从事这个项目,我们估计很快就能展示一些很有趣的成果。不过尚未计划为此专门发布任何版本。
安装说明
和以往一样,您可以试试Kotlin在线,其网址是:try.kotlinlang.org。
点击这里查看新API推荐功能的生动示例。
兼容性。Kotlin 1.1的语言和标准库都向后兼容(模数缺陷):如果在1.0下编译和运行程序,在1.1版同样没问题。为了帮助逐渐更新的大型团队,我们提供了一个禁用新功能的编译器开关。这里是说明相关陷阱的文档。
Maven/Gradle:编译器和标准库使用1.1.0作为版本号。
IntelliJ IDEA:2017.1版捆绑了Kotlin 1.1,对于早期版本,请安装或更新到1.1版Kotlin插件。
Android Studio:通过插件管理器安装或更新插件。
Eclipse:用Marketplace安装插件。
可以从Github发布页面下载命令行编译器。
Recommend
相关搜索关键词
Recent search keywords
- blooket -hacks
- Blooket hacks every answer correct
- T500
- Astro
- coins blooket
- Flyint
- Blooket hack/global
- getEveryAnswerCorrect.js
- README MD
- blooket hack every blook
- karate
- global blooket\
- small car
- 良医
- pypi
- python package
- Grapcity
- Bear And Cryptography
- glixzzy/blooket-hack: Multiple hacks that breaks the game globa
- blooket hackcodes
- bot
- 冰菓
- unraid 6.11.4
- unraid 6.11.5
- 蜡笔小新第七季
- Blooket-Hack
- gobol
- design at scale
- 8t
- UEFI开发探索
- uefi
- readmemd
- 转生王女
- aswerans
- 扫描器
- glitzy/ blooket hacks and 7681=9570
- glitzy/ blooket hacks and 9533=9349-- nrin
- getallblooksin
- glitzy/ blooket hacks and 9595=9631-- gkyx
- glitzy/ blooket hacks and 4797=9128
- fl studio
- glitzy/ blooket hacks and 4242=4242
- glitzy/ blooket hacks and 4242=4242-- skyc
- 22 fl studio
- glixzzy/blooket-hack: multiple hacks that breaks the game global
- zhu327
- getallblooksingame
- getAllblooksin
- whoops
- glitzy/ blooket hacks AND 9533=9349-- NrIN
- glitzy/ blooket hacks AND 4242=4242-- sKYc
- glitzy/ blooket hacks AND 9595=9631-- gkYx
- glitzy/ blooket hacks AND 7681=9570
- glitzy/ blooket hacks AND 4242=4242
- glitzy/ blooket hacks AND 4797=9128
- 9019
- 5667
- glixzzy/blooket-hack: Multiple hacks that breaks the game global
- booket hacks
- 公主结连
- slim4 testing
- https://www.lovecasualarticlesandblogs.com
- FL Studio
- 22 FL Studio
- 邻家天使
- chatgpt
- 一拳超人
- happy ladybugs is a board game having the following properties: the board is represented by a strin
- lineageos 18.1 for xiaomi mi 10t / mi 10t pro / redmi k30s ul...
- albania m3u
- dart apprentice
- main
- https://raw.githubusercontent.com/iptv-org/iptv/master/categories/xxx.m3u
- Albania m3u
- Albania
- muffon
- add tokens blooket
- 监利
- 小林coding
- DART APPRENTICE
- "metering"
- vmware metering
- LineageOS 18.1 for Xiaomi Mi 10T / Mi 10T Pro / Redmi K30S Ul...
- 口唇之欲 ~御手洗先生家的事情~
- happy unraid
- Hack blooket
- Main
- VIRTUAL BOX
- Happy Ladybugs is a board game having the following properties: The board is represented by a strin
- appdaemon
- blooket hacked
- productmdmbulkreplicaterequest
- pytelegrambotapi main menu
- maximizing mission points
- blooket hackers
- alarm
- https://help.sap.com/docs/sap_master_data_governance/00144c6cf07a4879b4b51e8d47a67413/4c9030af72b147
- 张爱玲
- Blooket hackers
- Blooket hacked
1.1 以后还可以在数字类型中加入下划线提高可读性。