Serdar Yegulalp
Senior Writer

JetBrains’ Kotlin JVM language appeals to the Java faithful

news analysis
Feb 16, 20162 mins

The JVM-based 'pragmatic language' aims for deep interoperability with Java in its 1.0 release

Kotlin, a high-performance, statically typed “pragmatic language” that leverages the environment of Java Virtual Machine, has reached its official 1.0 release milestone.

Created by IDE makers JetBrains, Kotlin — like many other non-Java languages that run on the JVM — is meant to run where Java runs and make use of the existing culture of Java libraries and tooling. Java, in turn, can use items built in Kotlin.

“The primary goal is being useful,” states JetBrains in its overview of the 1.0 release. In the making since 2011, the run-up to Kotlin 1.0 focused on interoperating with Java and formally deprecating the parts of Kotlin that didn’t make it into the release candidate.

While Kotlin provides some features that are entirely new —  for instance, a type system designed to prevent bugs such as the dreaded null pointer references — it was paramount that it operates with existing Java code and infrastructure. To that end, Kotlin doesn’t provide its own package manager and build system, since Java already provides those.

JetBrain’s philosophy of pragmatism started with its reason for creating the language; Kotlin was developed in part to power the IntelliJ Idea Java IDE. Rather than use Scala — another JVM-based language — JetBrains elected to build from scratch while making the new language attractive to existing Java developers and easier to learn than Scala.

Android development is one of the bigger niches that JetBrains is aiming for with Kotlin. The language offers backward compatibility with Java 6 and 7, the versions of Java most closely compatible with Android. JetBrains is also hoping Kotlin will be used in other realms that benefit from its statically typed approach to software development — for example, large, complex, performance-critical applications.

Kotlin is one in a galaxy of languages developed for JVM, each with different aims and motivations. In addition to Scala, there’s Clojure, which is a variant of Lisp. Clojure has found a host of uses, such as replacing Ruby as the language powering Puppet Server. Other languages that have captured the attention of developers include Frege and Mirah; the former is a Haskell clone that runs on the JVM and the latter is a Ruby-esque language.

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author