写点什么

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

2020 年 8 月 18 日

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:061639

评论

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

手写一个Vue风格组件

林浩

Java webpack 前端进阶训练营

ARTS Week8

时之虫

ARTS 打卡计划

Android | Glide细枝篇

哈利迪

android 源码

一致性哈希

Karl

区块链技术助力打造新公益样板

CECBC区块链专委会

看动画学算法之:排序-选择排序

程序那些事

数据结构 算法 动画

技术选型

Karl

架构师训练营第六周课后总结

Cloud.

架构师训练营架构第七周总结

Cloud.

隐私计算:实现数据价值释放的突破口

CECBC区块链专委会

密码学 政策扶持 隐私计算 发展现状

番外篇:新鲜上市的Unicorn - Pinterest的数据系统

顾仲贤

万字长文带你手撕Spring源码,解决循环依赖

小隐乐乐

源码解析 Spring Bean

Debug ArrayList源码

Noneplus

Java

生活困境

落曦

区块链想要拥有互联网级的用户体验,如何从应用层与公链去改进?

CECBC区块链专委会

那些好用的命令

北漂码农有话说

追光逐影:曝光相对论(1)

北风

摄影 影调 曝光 黑白

命令行一键启动Hadoop集群

大数据学徒

大数据 hadoop hdfs YARN Big Data

使用 Docker 部署 Django + MySQL 8 开发环境

AlwaysBeta

MySQL django Docker Dockerfile Docker-compose

流量控制算法

架构 流量控制 流控算法

第四周总结

Karl

redis系列之——数据持久化(RDB和AOF)

诸葛小猿

redis 持久化 aof rdb

个人博客网站搭建

北漂码农有话说

性能压测的时候,系统响应时间和吞吐量如何变化,为什么?

不在调上

《架构师训练营》第七周总结

【总结】性能优化

小胖子

kubernetes 集群安装(kubeadm)

小小文

Docker Kubernetes 群集安装 etcd

Swift十年

SwiftMic

Swift十年

学习Rust,我的一些体会

Kurtis Moxley

编程 rust 随笔杂谈

云原生技术栈的关键技术

李英俊

go 云原生

典型大型互联网系统使用的技术方案

Karl

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