写点什么

Kotlin 发布 1.4 版本,高亮速度提升 1.5-4 倍,支持接口 SAM 转换

  • 2020 年 8 月 18 日
  • 本文字数:1474 字

    阅读完需:约 5 分钟

Kotlin发布 1.4版本,高亮速度提升1.5-4倍,支持接口 SAM 转换

8 月 17 日,Kotlin 1.4.0 版本正式发布。此次的版本更新花费了很多精力来提高 Kotlin 及其工具的性能和质量,例如高亮显示的速度提高了 1.5-4 倍,支持多种新的语言功能,例如 Kotlin 接口 SAM 转换。


在过去的一年中,超过 580 万开发者都曾使用过 Kotlin 编码,这个数据比上一年增加了 1.5 倍,而且还在增长。Kotlin 社区在全球拥有超过 200 个用户小组,在 2020 StackOverflow 开发者调查中,Kotlin 是最受开发者欢迎编程语言的第 13 位。



很多公司也选择将 Kotlin 作为首选语言,目前比较出名的使用 Kotlin 开发的软件包括:


  • 服务器端:Atlassian、 Adobe、 ING Bank;

  • Android:Google Home、 Duolingo、 Zomato;

  • 多平台移动端:VMware、 PlanGrid 和 CashApp、Mirego Trikot;

  • Web:JetBrains Space、 Karhoo、 MIPT 核物理方法实验室 VisionForge。


修复 60 个问题,高亮速度提升 1.5-4 倍

Kotlin 1.4 版本主要集中在改善整体开发体验,提高 IDE 性能和稳定性。据了解,这次更新检查和修复了超过 60 个性能问题,包括导致 IDE freezes 及内存泄漏的问题。



除此之外,高亮显示和自动补全的响应速度也是这次版本更新的亮点。在 Kotlin 1.4 版本中,即使是在第一次打开一个较大的 Kotlin 文件,也能很快就看到高亮显示的内容。据了解,高亮显示的速度提高 1.5-4 倍。



之前,代码自动补全功能的响应速度比较慢,但是新版本中改善了这一问题。根据上图的数据统计,补全响应时间超过 500 毫秒的情况几乎减少了一半。需要注意的是,以上这些更新只能在 IntelliJ IDEA 2020.1+ 和 Android Studio 4.1+ 中使用。


同时,Kotlin 官方博客也透露未来会有更多增强计划来消除 freezes,使得输入更加流畅。目前已经集成了新的实验性 Kotlin 编译器前端,重新了很多插件部分,IDE 的速度和性能将得到进一步提升。


IDE 的新功能和新编译器

除了对 IDE 原有功能的改进,这次 Kotlin 1.4 版本还引入了新的功能。


  • 为了查明并发应用程序中的错误,引入了协同程序调试器;

  • 引入 Kotlin Project Wizard,给不同类型 Kotlin 项目的创建和配置提供场地,即使是多平台项目,也可以轻松上手。

  • 添加了超过 40 项新的快速修复、意图和检查,修改代码时, 按 Alt+Enter 就可以查看在特定上下文中可用的功能。


Kotlin 社区一直在开发一个新的 Kotlin 编译器,帮助 Kotlin 在性能和可扩展性方面有所提升。新编译器的主要目标是变得更快速、统一 Kotlin 支持的所有平台,并提供用于编译器扩展的 API。


在 Kotlin 1.4 版本中,这个新编辑器主要完成了以下功能更新:


  • 更强大的新类型推理算法默认启用,在更多用例中自动推理类型,即使在复杂的场景下也支持智能转换,改进了委托属性的推理等等。

  • 新的 JVM 和 JS 后端以 Alpha 模式提供。一旦稳定下来,它们就会成为新的默认设置。


另外,Kotlin 社区还在积极进行新的前端实现,在编译器管道中提供最大的性能提升。这个前端实现是编译器的一部分,可以解析代码和名称、执行类型检查等。


其它更新:语言功能与库改进

Kotlin 1.4 版本中提供了许多新功能:


  • Kotlin 接口 SAM 转换

  • 库作者的显式 API 模式

  • 混合命名和位置参数

  • 尾随逗号

  • 可调用的引用改进

  • 在循环的 when 内使用 break 和 continue


为了提高跨平台和操作之间的一致性,在 1.4 版本中,Kotlin 标准库实现了一些新的功能,例如新集合运算符、 委托属性改进以及双端队列实现 ArrayDeque 等。


开发者可以在“通用”代码中使用标准库,这里的“通用”代码指的是在不同的平台之间共享的代码。无论是单一平台还是多平台项目,Kotlin 1.4 版本在 Gradle Kotlin 项目中,都不再需要声明与 stdlib 的依赖关系,会默认添加此依赖关系。


2020 年 8 月 18 日 17:061810

评论

发布
暂无评论
发现更多内容

Android ImageView及其子类 介绍+实例

android 程序员 移动开发

Android Studio 插件

android 程序员 移动开发

Android SDK 网络模块解析(1)

android 程序员 移动开发

Android Jetpack架构开发组件化应用实战

android 程序员 移动开发

【LeetCode】丢失的数字Java题解

HQ数字卡

算法 LeetCode 11月日更

Android Material Design尝鲜

android 程序员 移动开发

Android P 适配指南

android 程序员 移动开发

Android HTTP通信基础

android 程序员 移动开发

Android O 新特性:自适应图标(Adaptive Icons)

android 程序员 移动开发

入门Node.js 处理错误

废材壶

node.js 大前端

Android TextView的属性与应用

android 程序员 移动开发

Android JNI QQ 搞怪语音实战 (含完整 Demo)

android 程序员 移动开发

关于调度器的一些思考

Rayjun

调度器 Go 语言

Android Native Crash 收集

android 程序员 移动开发

Android OpenCV(三十七):轮廓外接多边形

android 程序员 移动开发

Android Studio安装更新终极解决方式

android 程序员 移动开发

Android JNI 入门(含完整Demo)

android 程序员 移动开发

android okhttp异步请求使用详解 (2)

android 程序员 移动开发

Android SDK 网络模块解析

android 程序员 移动开发

Android Studio 4

android 程序员 移动开发

【译】TypeScript的Record类型说明

废材壶

typescript

[ CloudWeGo 微服务实践 - 06 ] 服务发现(1)

baiyutang

golang 微服务 11月日更

Android Switch控件修改样式

android 程序员 移动开发

在线文本中插入符号工具

入门小站

工具

【译】Node.js Buffers 完整指南

废材壶

node.js 大前端

Android Launcher——ui框架

android 程序员 移动开发

在Electron中简单实现拖拽功能

废材壶

node.js 大前端 Electron

Android O 新特性:自适应图标(Adaptive Icons)(1)

android 程序员 移动开发

Android C++系列:JNI基本操作

轻口味

android 11月日更

Android SpannableString详细解析

android 程序员 移动开发

Android Studio 教程:入门开发第一个程序

android 程序员 移动开发

Kotlin发布 1.4版本,高亮速度提升1.5-4倍,支持接口 SAM 转换_编程语言_田晓旭_InfoQ精选文章