JetBrains plans to drop some scripting-related technologies from the Kotlin language, including REPL functionality, an obsolete API for Java scripting, the KotlinScriptMojo Maven plugin, and the kotlin-scripting-ide-services library for implementing code completion functionality.
In a November 19 blog post, JetBrains said it would drop these scripting technologies from Kotlin because its research showed that user needs were covered by other technologies already being supported. The scripting-related components and libraries to be removed from the Kotlin compiler and IntelliJ IDEA IDE include:
- Default REPL implementations in the Kotlin compiler and IntelliJ IDEA plugin will be sunsetted. The functionality is limited and improving it has not been a priority, JetBrains said. The company will continue to promote the Kotlin Notebook plugin and IDE Scratch files as solutions for interactive Kotlin development. Plans call for keeping some REPL-related functionality in the compiler and the Custom Scripting API. But with a final switch to the K2 compiler, a significant portion of this functionality will be dropped or changed.
- Java Specification Request 223, offering scripting for the Java platform. With the original specification having been withdrawn, JetBrains does not believe supporting a de facto obsolete API makes sense. The existing implementation will continue to function until the release of Kotlin 2.3 in the language version 1.9 compatibility mode.
- KotlinScriptMojo, a Maven plugin that supports script execution during a Maven build. JetBrains did not find evidence of enough usage to continue maintaining it, so plans call for dropping it in upcoming Kotlin releases.
- kotlin-scripting-ide-services, a library for implementing code completion functionality, mainly for REPL implementations. It is currently used in projects like Kotlin Interactive. Because it is heavily based on the infrastructure of the pre-K2 compiler it cannot easily be ported to the K2 version. Therefore, it will most likely stop working around the release of Kotlin 2.3 and will be removed from the code base. JetBrains may consider reimplementing similar functionality on top of K2 in the future.
Kotlin scripting remains an essential part of the Kotlin infrastructure, JetBrains said. The company will continue to support it in an experimental state.
Kotlin scripting enables executing Kotlin code as scripts without prior compilation or packaging into executables. While JetBrains will continue to offer generalized support for scripting in Kotlin, which includes compilation and evaluation of basic .kts files, as well as custom scripting, JetBrains is not prepared to recommend Kotlin scripting as a generally applicable scripting solution, or as a replacement for Bash or Python.
Scripting was introduced into Kotlin long ago as an experiment to investigate ways of using the language. Since then, development has been driven by the demand of external and internal adopters and experiments of the Kotlin team, JetBrains said.