Kotlin se dirige principalmente a la JVM, pero también compila a JavaScript (por ejemplo, para aplicaciones web front-end que utilizan React) o código nativo a través de LLVM (por ejemplo, para aplicaciones nativas de iOS que comparten lógica de negocio con aplicaciones Android).
Kotlin/Native (por ejemplo, para compatibilidad de Apple Silicon) está en beta desde la versión 1.3.
[8][9] En julio de 2011 JetBrains reveló el Proyecto Kotlin, un nuevo lenguaje para la JVM, el cual había estado bajo desarrollo por un año.
[cita requerida] En febrero de 2012, JetBrains liberó el código fuente del proyecto bajo la Licencia Apache 2.
Kotlin hace una distinción entre tipos nullables y no-nullables (aquellos que pueden o no tener un valor nulo).