JetBrains is planning “another step forward for the Kotlin ecosystem,” in the next release of the programming language. While Kotlin 1.4 is not expected to arrive until the spring of next year, the company has provided some insight into what it is planning at its KotlinConf this week.
“Our vision is for Kotlin to be a reliable companion for all your endeavors, a default language choice for your tasks. To accomplish this, we’re going to make it shine on all platforms. Multiple case studies from companies well-known in the industry show that we are making good progress in this direction,” the team wrote in a blog post.
One of the big focuses of Kotlin 1.4 will be on quality and performance. The team explained the overall experience will be the main priority rather than adding big features. However, they do plan on adding a few small language changes in the release.
JetBains plans to redesign the compiler to be faster, unify Kotlin’s platform support and provide an API for compiler extensions. This will be a multi-year effort, but users can expect some new implementation in version 1.4.
“We understand that build speed is often the biggest concern for our users, and we are constantly improving our toolchain to address that. But incremental improvements cannot keep up with the natural growth of production codebases: while we make compilation faster, users write more code, and the overall build time doesn’t improve enough. It’s become clear that we need to reimplement the compiler to make it really fast,” the team wrote.
The latest release will also include new front-end implementation, unified back-ends and extensibility, and a new multiplatform library.
Also on the multiplatform front, the team plans on adding the ability to run iOS code in Android Studio, Kotlin/Native runtime improvements, core libraries, and the ability to share across mobile and web platforms.
Features that the team is currently working on include SAM conversions for Kotlin classes, mixing named and positional arguments, optimized elegated properties, trailing commands and a stable version of the typeof function.