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.
Sign up for CIO Asia eNewsletters.