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:06 1179

评论

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

JVM源码分析之堆内存的初始化

猿灯塔

系统服务构建-BFF 助力前后端分离

图南日晟

php 微服务 BFF

G-P-M 调度模型深度解析之手撸一个高性能 goroutine 池

潘建锋

go 并发编程 协程

【写作群星榜】本周写作平台优秀作者&文章排名

InfoQ写作平台

写作平台 排行榜

k8s上运行我们的springboot服务之——上传服务到docker私服

柠檬

Docker springboot

unittest框架

蜗牛前进

Python 自动化测试 unittest

【有奖调研】大数据与人工智能从业者有奖需求用研

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

Android | Tangram动态页面之路(七)硬核的Virtualview

哈利迪

android

写给管理者的睡前故事

石云升

读书笔记 故事 管理者

一文读懂Java注解

JFound

Java

学会独立思考的前提

fahsa

自我提升

k8s上运行我们的springboot服务之——在linux安装docker并搭建docker私服

柠檬

Docker k8s

k8s上运行我们的springboot服务之——k8s 1.16.0安装

柠檬

k8s

职场提问的“唐太宗”原则

大伟

回“疫”录(23):如果岁月可回头

小天同学

疫情 个人成长 回忆录 现实纪录 纪实

北大学子手写实现《统计学习方法》书中全部算法!

GitHubDaily

人工智能 机器学习 深度学习 GitHub 程序员

Java 简介

编号94530

Java jdk java简介 jdk8

奈学教育分享:Hadoop分布式系统HDFS工作原理

奈学教育

hadoop hdfs 分布式

系统化服务构建-调用链管理

图南日晟

微服务 全链路监控 链路追踪

2020年4月北京BGP机房网络质量评测报告

BonreeAPM

运维 服务器 机房 数据中心 评测

Jenkins:批量自动将 Maven 类型 Job 迁移到自由风格类型

donghui2020

jenkins

【Howe 学 JAVA】断点续传原理精析及简单实现

Howe

Java 断点续传

真香!谷歌终与美国国防部合作,签署百万美金云服务合同

神经星星

云计算 互联网巨头 互联网 谷歌Google

投机者

Neco.W

投机 口罩 头盔 投机者

工厂模式——这一篇真够了

海星

Java 架构 面试 设计模式 工厂模式

自我革新最难的是革自己的命

史方远

职场 成长

用 R 语言打个印咋就这么费事儿呢

张利东

可视化 R

H2 的全文检索功能

Page

全文检索 lucene H2 内存数据库

乙己说:LFU实现思路整理

再见小飞侠

缓存 LeetCode

突然的自我

月白

自我思考

现代生活对我们大脑的危害

七镜花园-董一凡

生活质量

Milvus Community Conf 2020

Milvus Community Conf 2020

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