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

2020 年 8 月 19 日 InfoQ
编辑 | 田晓旭
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。

1修复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 的速度和性能将得到进一步提升。

2IDE 的新功能和新编译器

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

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

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

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

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

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

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

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

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

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

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

  • Kotlin 接口 SAM 转换

  • 库作者的显式 API 模式

  • 混合命名和位置参数

  • 尾随逗号

  • 可调用的引用改进

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

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

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



InfoQ 读者交流群上线啦!各位小伙伴可以扫描下方二维码,添加 InfoQ 小助手,回复关键字“进群”申请入群。大家可以和 InfoQ 读者一起畅所欲言,和编辑们零距离接触,超值的技术礼包等你领取,还有超值活动等你参加,快来加入我们吧!



点个在看少个 bug 👇

登录查看更多
0

相关内容

Kotlin 是一种运行于 Java 虚拟机上的静态类型编程语言。
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
101+阅读 · 2020年10月11日
专知会员服务
81+阅读 · 2020年9月28日
【2020新书】C++20快速语法参考,第4版,209页pdf
专知会员服务
71+阅读 · 2020年8月5日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
【精通OpenCV 4】Mastering OpenCV 4 - Third Edition 随书代码
专知会员服务
39+阅读 · 2019年11月13日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
一年一版本,Sublime Text 3.2 正式发布
开源中国
4+阅读 · 2019年3月14日
PyTorch 1.0 正式版发布了!
机器学习算法与Python学习
4+阅读 · 2018年12月8日
开发 | PyTorch重大更新,0.4.0版本支持Windows系统
AI科技评论
7+阅读 · 2018年4月25日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
发布TensorFlow 1.4
谷歌开发者
7+阅读 · 2017年11月23日
Golang指南:顶级Golang框架、IDE和工具列表
大数据技术
4+阅读 · 2017年11月8日
Spherical Knowledge Distillation
Arxiv
0+阅读 · 2020年10月15日
Arxiv
0+阅读 · 2020年10月14日
Arxiv
0+阅读 · 2020年10月9日
A Comprehensive Survey on Transfer Learning
Arxiv
121+阅读 · 2019年11月7日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
Arxiv
7+阅读 · 2018年1月24日
VIP会员
相关VIP内容
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
101+阅读 · 2020年10月11日
专知会员服务
81+阅读 · 2020年9月28日
【2020新书】C++20快速语法参考,第4版,209页pdf
专知会员服务
71+阅读 · 2020年8月5日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
【精通OpenCV 4】Mastering OpenCV 4 - Third Edition 随书代码
专知会员服务
39+阅读 · 2019年11月13日
相关资讯
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
一年一版本,Sublime Text 3.2 正式发布
开源中国
4+阅读 · 2019年3月14日
PyTorch 1.0 正式版发布了!
机器学习算法与Python学习
4+阅读 · 2018年12月8日
开发 | PyTorch重大更新,0.4.0版本支持Windows系统
AI科技评论
7+阅读 · 2018年4月25日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
发布TensorFlow 1.4
谷歌开发者
7+阅读 · 2017年11月23日
Golang指南:顶级Golang框架、IDE和工具列表
大数据技术
4+阅读 · 2017年11月8日
相关论文
Spherical Knowledge Distillation
Arxiv
0+阅读 · 2020年10月15日
Arxiv
0+阅读 · 2020年10月14日
Arxiv
0+阅读 · 2020年10月9日
A Comprehensive Survey on Transfer Learning
Arxiv
121+阅读 · 2019年11月7日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
Arxiv
7+阅读 · 2018年1月24日
Top
微信扫码咨询专知VIP会员