写点什么

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

评论

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

云图说 | 一分钟带你扫盲云容器黑话

华为云开发者社区

容器 节点 集群

浅析LR.Net工作流引擎

Philips

敏捷开发 工作流 软件开发流程 开发工具

Docker私有化部署gitlab gitlab-runner

Leon

gitlab 持续集成 runner

有的时候,到达目的地,还不如在旅途中。

金龟换酒

心理学 哲学 活在当下

或许是史上最好的AQS源码分析了,你确定要错过?!

InfoQ_d2212957090d

握草,你竟然在代码里下毒!

小傅哥

Java 程序员 小傅哥 bug 有毒代码

不支持原子性的 Redis 事务也叫事务吗?

海星

Java redis 事务

Redis 数据同步机制--主从模式

是老郭啊

redis 主从配置 主从同步 redis主从 主从复制

用 Python 实现一个简易版的 Pong 游戏 (一)

Matrix Chan

Python Turtle Python游戏

一个银行客户经理的“变形记”

华为云开发者社区

人工智能 金融科技

【基础架构】不同场景下的数据存储技术,你用对了吗?

嘉为蓝鲸

网络 存储 系统 raid 磁盘挂载

大数据管理:构建数据自己的“独门独院”

华为云开发者社区

大数据 数据湖

深入Spring Security魔幻山谷-获取认证机制核心原理讲解

朱季谦

spring security

学习 Java,有什么书籍推荐?学习的方法和过程是怎样的?

沉默王二

Java 学习 程序员 书单

给DevOps加点料——融入安全性的DevSecOps

禅道项目管理

DevOps 运维 测试 开发 安全性

实战解读丨Linux下实现高并发socket最大连接数的配置方法

华为云开发者社区

Linux TCP socket 高并发

XSKY全新一代SDS一体机五大场景之存储+灾备

XSKY融合存储

LeetCode题解:225. 用队列实现栈,两个队列, 压入 - O(n), 弹出 - O(1),JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

又踩Maven的两个坑

xiaoboey

maven Unknown lifecycle phase settings.xml 无效 PowerShell

快来看看!AQS 和 CountDownLatch 有怎么样的关系?

程序员小航

Java AQS 源码阅读 CountDownLatch JUC

内存型数据库Redis,是如何实现持久化的?

Zhongger

redis

北京城市副中心将试点法定数字货币

Geek_987812

数字货币 货币

鼓舞人心!主席支持数字经济!央行数字货币研究所为世界制定区块链相关国际标准

Geek_987812

区块链 金融

Golang Package sync 透析

卓丁

sync Go 语言

3. 站在使用层面,Bean Validation这些标准接口你需要烂熟于胸

YourBatman

Hibernate-Validator Bean Validation 数据校验

[翻译] Go Concurrency Patterns: Pipelines and cancellation[Go并发模式]

卓丁

channel pipeline

有奖征文重磅来袭,来!一起玩把大的!

有只小耳朵

为什么企业自主开发软件时,都会使用统一的模块化框架式开发平台?

Learun

敏捷开发 程序设计 开发工具 软件设计 技术方案

oeasy教您玩转linux010206 蒸汽机车 sl

o

你问我答:容器平台改造后的安全是如何解决的?

BoCloud博云

云计算 容器 微服务 PaaS 博云

DB-Engines 9月数据库排名:ClickHouse一路猛冲,Redis坐稳第七

华章IT

MySQL 数据库 redis Clickhouse

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