kotlin十周年:kotlin1.5稳定版发布——2021年第一个大版本更新有何亮点?

东海陈光剑 东海陈光剑     2022-12-18     716

关键词:

Kotlin十周年:Kotlin 1.5稳定版发布——2021年第一个大版本更新有何亮点?

从2011年,JetBrains在 JVM 语言峰会上官宣了Kotlin 1.0 —— 一种用于 JVM 的新静态类型编程语言,到2021年,作为十周年首个大版本更新,Kotlin 发布了1.5版本。期待接下来的十年,Kotlin发展越来越好,给开发者们带来更多的福利,生态越来越繁荣,未来能有更多的开发者加入到Kotlin阵营中来!

Kotlin 1.5.0 稳定版已发布,此版本提供了稳定的语言特性,例如 JVM records、密封接口 (sealed interface)、内联类 (inline class),并引入了新的默认 JVM IR 编译器。据介绍,新的编译器与 Kotlin/Native 和 Kotlin/JS 编译器共享统一的管道和业务逻辑,因此 Kotlin 团队可同时为所有平台实现大多数功能、优化和错误修复。新的编译器还将允许开发者添加自定义处理和转换,这些处理和转换将自动在所有平台上运行。

Kotlin 1.5 主要变化

  1. 新增稳定的语言特性 - JVM records、密封接口 (sealed interface)、内联类 (inline class)
  2. 标准和测试库改进 - 稳定的无符号整数类型、Extensions forJava.nio.file.Path,以及针对 String、Char 和 Duration API 的改进
  3. Kotlin/JVM 改进 - 新的默认 JVM IR 编译器
  4. Kotlin/Native 改进 - 针对 Linux 和 iOS 应用程序的更快的调试编译
  5. Kotlin/JS 的改进 - 将更多 JS 库迁移到新的 Kotlin/JS IR 编译器

Kotlin 1.5 主要亮点包括:

稳定的语言特性:JVM records、密封接口 ( sealed interface )、内联类 ( inline class )

标准和测试库改进:稳定的无符号整数类型、E xtensions for java.nio.file.Path ,以及针对 String、Char 和 Duration API 的改进

Kotlin/JVM 改进:新的默认 JVM IR 编译器

Kotlin/Native 改进:针对 Linux 和 iOS 应用程序的更快的调试编译

Kotlin/JS 的改进:将更多 JS 库迁移到新的 Kotlin/JS IR 编译器

其中,新的 JVM IR 编译器使 JetBrains 能够更快地为其各种实施方案构建新的语言特性,其中包括用于构建 iOS 和 Windows 应用程序的 Kotlin native(Kotlin/Native)、用于构建 Web 应用程序的 Kotlin for JavaScript(Kotlin/JS)以及用于 Java 平台的 Kotlin for JVM(Kotlin/JVM)。

来自 JetBrains 的 Ekaterina Volodko 在一篇博客文章中说:“新的编译器与 Kotlin/Native 和 Kotlin/JS IR 编译器共享了统一的管道和业务逻辑,这使得我们可以同时为所有平台实现大多数特性、优化和错误修复。”

“它还将允许你添加自定义处理和转换,并且可以在所有平台上自动工作。”

JetBrains 表示,已经有超过 25000 名开发者在 IntelliJ IDEA 中试用了新的 JVM IR 编译器。

Kotlin 1.5.0 还提供了对 JVM 记录的支持,以确保作为不可变数据的透明载体的记录类 与 Java 特性的互操作性。记录类在 JDK 16 中被确定下来,并且 JDK 16 在 3 月达到了普遍可用性。

标准库和测试库也有所改进。对于无符号整数类型以及范围、级数和函数,标准库提供了新的稳定性 API。

使用 IntelliJ IDEA 和 Android Studio 的开发者应该会看到一个通知,提醒他们将 Kotlin 将自动更新到 1.5.0。用户也可以手动更新。

Kotlin/Native 获得了对 linuxX64 和 iosArm64 目标的调试模式下的编译器缓存的支持。它还停用了内置的内存泄漏检查器,以避免可能导致应用程序崩溃的问题。

“在启用了编译器缓存后,除第一个外,大多数调试编译都会更快地完成。测量结果显示,在我们的测试项目中,速度提高了大约 200%,”JetBrains 说。

获得谷歌力推的 Kotlin

自从 2019 年对外宣布 Kotlin 编程语言是 Android 应用程序开发人员的首选语言,谷歌就一直在对 Kotlin 进行多方位的支持,不仅推出了 Kotlin 免费在线课程,而且开源了 gRPC-Kotlin/JVM,开发者可以在 Kotlin 项目中更方便地使用 gRPC,以更简单的方式构建可靠的网络连接服务。

2021 年,谷歌推出了使用 Kotlin 语言开发 Android 应用的全新课程,由浅入深、循序渐进地帮助用户学习 Android 应用开发。这套课程取代了 2018 年发布的课程,同时课程内容也结合了 Android 平台的变化,例如 Android Jetpack 库的发布等。

2020 年,谷歌开源了 gRPC-Kotlin/JVM。gRPC 是一个开源的高性能、通用 RPC 框架,支持多种编程语言。gRPC 基于 Protocol Buffers,面向移动和基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。gRPC 与 Kotlin 结合之后,从移动应用程序到云端微服务,开发者都可以构建。gRPC-Kotlin/JVM 构建在 gRPC 的 Java API 之上,提供了对 Kotlin 友好的 gRPC 类,支持 Kotlin 协程。

参考资料

https://www.tectalk.co/kotlin-programming-language-heres-whats-inside-the-first-big-release-of-this-year/

kotlin1.5新特性记录(代码片段)

...改进了推断递归泛型类型消除构建器推断限制11.5.0新特性Kotlin1.5.0的新增项:新的语言特性稳定的基于IR的JVM编译器后台性能提高提供对特性的渐进式更改,例如稳定实验性特性,和淘汰过时的特性1.1语 查看详情

kotlin1.5新特性记录(代码片段)

所有内容均来源于官网,会过滤掉非Kotlin/JVM的平台特性。文章目录11.5.0新特性1.1语言特性支持JVM记录类Sealed接口内联类1.2Kotlin/JVM稳定的基于IR的JVM编译器新的默认Jvm构建版本是1.8通过invokedynamic来调用SAM使用invokedynamic调用lmab... 查看详情

Kotlin 1.5.0 上的 Jetpack Compose

】Kotlin1.5.0上的JetpackCompose【英文标题】:JetpackComposeonKotlin1.5.0【发布时间】:2021-08-0812:36:02【问题描述】:我上周更新到Kotlin1.5,在昨天看到Google打算让JetpackCompose成为设计UI的首选选项之后,我想做一些测试。问题是我的项目... 查看详情

标致408十周年版心动上市

查看详情

押尾-《翼~hopingforthefuture~》十周年版

押尾-《翼~HopingfortheFUTURE~》十周年版六弦到一弦DADGAD,标准调弦为EADGBE。简单来讲,就是变调夹夹住二品,一、二、六弦调至标准音三四弦不用调 查看详情

kotlin1.6.0新特性预览:语法和标准库(代码片段)

Kotlin1.5.30isthelastincrementalreleasebeforeKotlin1.6.0,itincludesmanyexperimentallanguageandstandardlibraryfeaturesthatweareplanningtoreleaseinKotlin1.6.0:sealed when statementsopt-inrequirementsins 查看详情

微软visualstudio二十周年:vs2017于3月7日发布-免费社区版/专业版/企业版

二十年前的今天,微软正式发布VisualStudio97。如今二十年已经过去,微软宣布全新的VisualStudio2017即将在美国当地时间3月7日正式发布。VisualStudio2017可支持C#、C++、Python、VisualBasic、Node.js、HTML、JavaScript等各大编程语言,不仅可编... 查看详情

极客头条:字节跳动以50亿元收购pico入局vr;iphone13系列或将涨价;kotlin1.5.30发布

一分钟速览新闻点!字节跳动以50亿元收购Pico入局VR陌陌宣布改名“挚文集团”:旗下现有App名称保持不变vivo首款自研芯片对外命名为“vivoV1”饿了么头像变成网友征婚广告富士康为iPhone13生产增聘20万名工人华为被允许... 查看详情

Kotlin 1.5.0 & Junit with 5.7.1/5.8.0-M1 FAILURE: Build failed with an exception

】Kotlin1.5.0&Junitwith5.7.1/5.8.0-M1FAILURE:Buildfailedwithanexception【英文标题】:【发布时间】:2021-07-3011:34:48【问题描述】:Gradle7.0和Kotlin1.5.0运行gradle@行:59-62。全部引用\'org.junit\'。testCompilegroup:\'org.junit.jupiter\',name:\'junit 查看详情

fineui十周年纪念版即将发布(基于像素的响应式布局,独此一家)!

【新版预报】FineUI十周年纪念版(v5.0.0)即将于2018-04-23发布!官网示例已更新:http://pro.fineui.com/特别助攻:基于像素的响应式布局,FineUI独家秘笈!http://pro.fineui.com/#/block/basic.aspx   查看详情

升级到 Kotlin 1.5.20 时出现谷歌地图问题

】升级到Kotlin1.5.20时出现谷歌地图问题【英文标题】:IssuewhitgooglemapswhenupgradingtoKotlin1.5.20【发布时间】:2021-09-2004:57:50【问题描述】:我最近从1.5.0升级到gradle1.5.20,因为我使用Hilt,所以我添加了这个Solutionfor@AndroidEntryPoint,我... 查看详情

微软公布win10“发布预览”新规:一周年更新版是新基准

微软WindowsInsider预览体验计划包含三个通道,分别是快、慢和发布预览,其中前两个通道可以接收全新开发版本,区别在于快速版更新频繁,功能新颖,慢速版只推送较稳定的版本,新颖程度稍差,而“发布预览”版则是在当前... 查看详情

exo-十周年

...已是曲中人。今年是成为EXO-L的第二年,已而是你们的十周年。因为你们,我遇见了美好的事物,你们也成为生活的一部分。我想抓住这最后的尾巴,去赴银海之约!一些纪念🎥艰辛十年历程十周年回忆💙十周年回忆 ... 查看详情

微软visualstudio二十周年:vs2017于3月7日发布

 二十年前的今天,微软正式发布VisualStudio97。如今二十年已经过去,微软宣布全新的VisualStudio2017即将在美国当地时间3月7日正式发布。VS97是VisualStudio系列的第一个版本,其中包括VisualStudio5.0,VisualC++5.0等老程序员熟知的内容... 查看详情

npm下载量破3.94亿次,bootstrap发布十周年

近日,知名前端工具包Bootstrap官博宣布十周年,其创始人MarkOtto回顾了这十年里取得的一些成就与里程碑数据:文档浏览量超过25亿次,每天超过685,000次;自2015年以来,npm下载量为3.94亿,仅2020年就有... 查看详情

kotlin诞生10周年

...程2011年7月19日,在JVM语言峰会上,JetBrains宣布了Kotlin——一种用于JVM的新静态类型编程语言。Kotlin官方博客发文庆祝这个值得纪念的日子,并称自从Kotlin诞生以来,一直在改变他们在JetBrains的工作方式。Kotlin也从... 查看详情

win10一周年更新预览版14366开始推送

...预览版14364和Win10PC预览版14366。刚刚IT之家发现Windows10一周年更新14366已开始推送,该版本带来大量Bug修复和稳定性改进。Win10PC桌面版已经抢先Win10Mobile手机版进行推送,上个版本Win10 Build14361上周刚刚推送, 查看详情

从咖啡馆到世界,共赴下一个十年|emqx开源十周年

十年前,在2012年12月17日,源于个人对Erlang、MQTT和开源的热爱,EMQX诞生于一家咖啡馆并作为开源项目在GitHub上发布了初次提交。十年后的今天,EMQX已成长为Erlang生态中最具影响力的物联网开源基础软件项目,... 查看详情