Kotlin 2.3.20 has become the latest version of the JetBrains-built language, featuring an interoperability mode for C or Objective-C libraries and name-based destructuring declarations for property names. Developers also can leverage Kotlin interfaces on JavaScript and TypeScript.
The update to the Java rival language was introduced March 16. Instructions for getting started with the language can be found on the Kotlin website. With the Kotlin Native technology in Version 2.3.0, for compiling Kotlin code to native binaries, developers can try the now-experimental interoperability mode for Objective-C and C libraries. This capability is geared to developers who use C or Objective-C libraries in Kotlin Multiplatform (KMP) libraries or applications. In general, Kotlin Native enables importing C and Objective-C libraries into Kotlin. However, for KMP libraries, this functionality is currently affected by the KMP compatibility issues with older compiler versions. Thus, if a KMP library compiled with one Kotlin version is published, importing C or Objective-C libraries might make it impossible to use that Kotlin library in projects with an earlier Kotlin version. To address this and other issues, the Kotlin team has been revising the interoperability mechanism. Starting with Kotlin 2.3.20, developers can try the new mode through a compiler option.
Also Kotlin 2.3.20 introduces name-based destructuring declarations that match variables to property names instead of relying on position-based componentN() functions. Previously, destructuring declarations used position-based destructuring, JetBrains said.
The update lifts the limitation on implementing Kotlin interfaces on the JavaScript and TypeScript sides, JetBrains said. Previously, it only was possible to export Kotlin interfaces to TypeScript as TypeScript interfaces; implementing them from TypeScript was forbidden. Additionally, starting with Kotlin 2.3.20, Kotlin/JS supports the SWC Rust-based compilation platform. This helps with transpiling newer versions of JavaScript and TypeScript code into older and more compatible JavaScript code.
Kotlin 2.3.20 follows the December 2025 release of Kotlin 2.3.0 and the February release of Kotlin 2.3.10. Elsewhere in Kotlin 2.3.20:
- For Java interoperability, the compiler now recognizes the Vert.x
@Nullableannotation for nullability checks. This release also adds support for the Java@Unmodifiableand@UnmodifiableViewannotations to treat annotated collections as read-only in Kotlin. - It is easier to set up Kotlin in Maven build tool projects. Now, Kotlin supports the automatic configuration of source roots and Kotlin’s standard library.
- Kotlin 2.3.20 is fully compatible with Gradle build tool Versions 7.6.3 through 9.3.0. Developers also can use Gradle versions up to the latest Gradle release. Developers should be aware that doing so may result in deprecation warnings, and some new Gradle features might not work.
- The Lombok compiler plug-in for generation and use of Java Lombok declarations has been promoted to alpha status. Plans call for making this functionality production-ready, but it is still under development.
- The
Map.Entry.copy()extension function is introduced for creating an immutable copy of aMap.Entry. This function allows for reusing entries obtained fromMap.entriesafter modifying the map by copying them first.
Go to Source
Author: