Paradigm | Multi-paradigm: object-oriented, functional, imperative, block structured, declarative, generic, reflective, concurrent |
---|---|
Designed by | JetBrains |
Developer | JetBrains |
First appeared | July 22, 2011 |
Stable release | 2.0.20[1]
/ 22 August 2024 |
Typing discipline | Inferred, static, strong |
Platform |
|
OS | Cross-platform |
License | Apache License 2.0 |
Filename extensions | .kt, .kts, .kexe, .klib |
Website | kotlinlang |
Influenced by | |
Influenced | |
V (Vlang) |
Kotlin (/ˈkɒtlɪn/)[2] is a cross-platform, statically typed, general-purpose high-level programming language with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of Kotlin's standard library depends on the Java Class Library, but type inference allows its syntax to be more concise. Kotlin mainly targets the JVM, but also compiles to JavaScript (e.g., for frontend web applications using React)[3] or native code via LLVM (e.g., for native iOS apps sharing business logic with Android apps).[4] Language development costs are borne by JetBrains, while the Kotlin Foundation protects the Kotlin trademark.[5]
On 7 May 2019, Google announced that the Kotlin programming language was now its preferred language for Android app developers.[6] Since the release of Android Studio 3.0 in October 2017, Kotlin has been included as an alternative to the standard Java compiler. The Android Kotlin compiler produces Java 8 bytecode by default (which runs in any later JVM), but lets the programmer choose to target Java 9 up to 20, for optimization,[7] or allows for more features; has bidirectional record class interoperability support for JVM, introduced in Java 16, considered stable as of Kotlin 1.5.
Kotlin has support for the web with Kotlin/JS, through an intermediate representation-based backend which has been declared stable since version 1.8, released December 2022. Kotlin/Native (for e.g. Apple silicon support) has been declared stable since version 1.9.20, released November 2023.[8][9]
Kotlin lets you choose the version of JVM for execution. By default, the Kotlin/JVM compiler produces Java 8 compatible bytecode. If you want to make use of optimizations available in newer versions of Java, you can explicitly specify the target Java version from 9 to 21. Note that in this case the resulting bytecode might not run on lower versions.