GitHub has recognized Kotlin as one of the fastest-growing programming languages in terms of popularity. The official Android language support since 2017 has certainly contributed to this growth. We discuss the programming language’s additional popularity drivers with Mikhail Zarechenskii, Lead Language Designer at the Kotlin Foundation.
Originally conceived to support the JVM (Java Virtual Machine) ecosystem, Kotlin has evolved into a versatile, multi-platform programming language. It is now utilized not only for Android applications but also for backend development, web applications, and iOS applications.
Kotlin received official Android language status in 2017. We have previously detailed the developments leading to this milestone. The outcome is relevant here: popularity.
Active open-source approach
While official recognition from Android primarily expanded the programming language’s deployability, leading to greater adoption, enthusiasm for Kotlin existed even before 2017. “One of the core reasons for Kotlin’s success is its strong open-source approach. Developers can submit issues via YouTrack, contribute to discussions about new language features, and submit contributions via GitHub,” says Mikhail Zarechenskii.
Kotlin is developed by software company JetBrains, which handles updates, provides tooling, and encourages innovation. Community involvement plays a crucial role in language development, with JetBrains regularly incorporating user input into new versions. A notable example is the addition of nullability checking early in Kotlin, a feature originally proposed by an external developer that later became an integral part of the language.
Collaboration is essential to the programming language’s success. Zarechenskii emphasizes the importance of Kotlin providing extensive support. Among the supported software tools is Gradle, which he highly commends: “The Gradle experts have already developed a compiler plugin that minimizes how much code programmers have to write.”
Embracing evolution
Despite widespread acclaim, some critics have focused on compiler speed. Zarechenskii acknowledges that this criticism might have been avoided by spending three additional years refining the programming language before release. However, the creators deliberately chose a different path, and Zarechenskii also sees in hindsight that it was the best decision.
“Numerous companies were using Kotlin before its official release and reported significant value from its implementation. The extensible and adaptable nature of the programming language allowed us to continue refining it while it was already in use. Consequently, following version 1.0, approximately a dozen new features were added.”
Kotlin 2.0 has advanced mainly on speed. The compiler front-end was completely reconstructed to achieve a more efficient architecture. These changes not only enable faster implementation of new programming features but also enhance consistency within the language. This is made possible by a new compiler structure that “flattens” code at an early stage. This simplifies complex constructions and allows the compiler to work more efficiently.
Tip: Kotlin 2.0 shows off faster compilation time: what to expect?
Conquering the mobile landscape
Another essential aspect of Kotlin 2.0 is improved support for multiplatform development. With Kotlin Wasm and KotlinJS, it becomes easier to build applications that function in both web environments and on mobile platforms. In addition, the demand for Swift interoperability is growing, indicating increasing interest in Kotlin for iOS development.
“Beyond the mobile landscape, we’re witnessing Kotlin’s increasing presence in backend development. More than 40 percent of users develop server-side applications, which are JVM-based,” Zarechenskii says. Frameworks such as Jetpack Compose also show that Kotlin has a strong foundation for UI development, something that was not seen as a primary application in the early years of the language.
Plugins welcome
Yet this change also brought complications, particularly regarding the migration of existing compiler plugins. The second version handles plugins differently. Previously, developers had to write both a compiler plugin and a separate IDE plugin to get full support. The new K2 compiler architecture eliminates this: the IDE recognizes and supports compiler plugins automatically.
Developers observed that several plugins were absent from the initial release. “In rebuilding the compiler front-end, some plugins were temporarily removed. Most have been migrated, though some remain in transition,” Zarechenskii explained in response to these concerns.
Thank you community
Kotlin has an active user community and has managed to make it part of its identity. By embracing the needs, as well as the criticisms, of its users, the language continues to gain wider adoption. This has been positively received; acknowledgement of its growing popularity serves as a significant indicator of its success.