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
相关搜索关键词
- 如何用Cache在C 程序中进行系统级优化
- 微信小程序商城
- 如何用Cache在C++程序中进行系统级优化
- javaScript权威指南
- factory/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php/.env/admin/view/javascript/common.js
- Javascript
- javascript
- factory/vendor/phpunit/phpunit/src/util/php/eval-stdin.php/.env/admin/view/javascript/common.js
- Ultimate guide to JavaScript algorithm
- Ultimate+guide+to+JavaScript+algorithm
- school unblock games javascript
- proxy javascript
- school+unblock+games+javascript
- proxy+javascript
- JavaScript
Recent search keywords
- clash tun
- tun
- 国模
- 中文数据集
- 北邮人论坛十大_2024_04_18
- 北邮人论坛十大_2024_03_23
- JAC 8229B
- JCAC10003-OC2-V1.0.03B21041
- JCAC10003-OC2-V1.0.03B1
- atrust
- dallas.lu
- 知情同意的
- checking system health gpt
- checking system health
- iptv smart player
- LLM
- MLC
- mlc llm
- k4811_oh_s217101
- 8257 logo
- logo
- Oneplus 8t
- Kernel
- tab 4
- JCAC10003-OC2-V1.0.071R5-230413_0757
- SCSI
- incentivize
- Ergonomic Frozen Shirt
- Producer
- 4th generation
- parsing
- Berkshire
- Multi-tiered
- copy
- teal
- Hills
- card
- Wooden
- Northern Mariana Islands
- deliver
- syndicate
- Money Market Account
- Assurance
- Representative
- compress
- Iowa
- Cheese
- solid state
- extend
- withdrawal
- Taka
- Planner
- attitude
- impactful
- copying
- Savings Account
- Tuna
- Creative
- Indian Rupee Ngultrum
- District
- Fantastic
- Personal Loan Account
- functionalities
- Gorgeous
- enhance
- Noord-Holland
- Utrecht
- Kuwaiti Dinar
- Bedfordshire
- Baby
- Soap
- paradigms
- bypass
- USB
- Costa Rica
- Analyst
- Tactics
- 因研究計畫
- indea
- api管理系统源码
- dissertation conclusion
- 社工库源码
- version 2023.10.19.20
- mabbs.github.io
- mabbs
- 旧电脑
- old-pc
- interleaving in sap ewm
- marketplace
- gpt
- 学习强国
- tlink5 dingwei 5.3.47
- reverse
- 海角社区上车
- https://dumps.tadiphone.dev/dumps/alps/8227l_demo/-/archive/JCAC10003-OC2-V1.0.97R3-231023_1114/8227
- JCAC1000c23-OC2-V1.0.97R3-2310
- mmraz-110
- @@dpxb7/wp-content/plugins/mm-plugin/inc/vendors/vendor/phpunit/phpunit/build.xml
- how to hack blooket
- appl
1.1 以后还可以在数字类型中加入下划线提高可读性。