Kotlin, the JetBrains-developed, statically typed language for JVM, Android, and web development, is due for a compiler rewrite, multiplatform mobile improvements, and a Kotlin-to-WebAssembly compiler back end, according to a public roadmap for the platform.
The compiler rewrite, noted on the roadmap as a key priority, would emphasize speed, parallelism, unification, and, ultimately, pluggability. Plans also call for having the new compiler compile itself. The current compiler would continue to be maintained for bug-fixing.
The roadmap addresses primary areas the team is working on, without committing to delivering features or fixes in specific versions. It spans a six-month time frame and will be updated every three months. Another priority, Kotlin multiplatform mobile, calls for improving the user experience and feature set for sharing code on mobile platforms.
Other priorities cited in the roadmap include:
- JVM server-side development, with more support for use cases across the Kotlin ecosystem.
- Making the change-test-debug cycle really fast.
- Improving the performance and stability of the Kotlin IDE.
The roadmap also has a section focused on subsystems, citing the biggest projects being worked on:
- Prototyping a compiler for the Wasm GC proposal, providing for a Kotlin-to-WebAssembly compiler back end. Wasm support in Kotlin/Native via LLVM would be deprecated and removed.
- Prototype a new garbage collector for Kotlin/Native. Exporting of Kotlin/Native code to Objective-C would be improved.
- Language support for JVM records and JVM sealed classes.
- Releasing inline classes as stable and having secure Valhalla compatibility. Project Valhalla is intended to explore advanced Java VM and language capabilities.
- Prototype multiple receivers.
- Stabilizing the new JVM IR (intermediate representation) back end. The JVM IR is part of the new compiler.
- For Kotlin/JS, the new JS IR back end introduced in Kotlin 1.4 is to be made stable, and support is to be improved for Dukat, which allows automatic conversion of TypeScript declaration files.
- Improved dependency management for iOS.