Kotlin is an open-source statically typed programming language that targets the JVM, Android, JavaScript, Wasm, and Native. It's developed by JetBrains. The project started in 2010 and was open source from very early on. The first official 1.0 release was in February 2016.
The currently released version is %kotlinVersion%, published on %kotlinReleaseDate%.
You can find more information on GitHub.
Yes. Kotlin is free, has been free and will remain free. It is developed under the Apache 2.0 license, and the source code is available on GitHub.
Kotlin has both object-oriented and functional constructs. You can use it in both OO and FP styles, or mix elements of the two. With first-class support for features such as higher-order functions, function types, and lambdas, Kotlin is a great choice if you're doing or exploring functional programming.
Kotlin is more concise. Rough estimates indicate approximately a 40% cut in the number of lines of code. It's also more type-safe – for example, support for non-nullable types makes applications less prone to NPE's. Other features including smart casting, higher-order functions, extension functions, and lambdas with receivers provide the ability to write expressive code as well as facilitating creation of DSL.
Yes. Kotlin is 100% interoperable with the Java programming language, and major emphasis has been placed on making sure that your existing codebase can interact properly with Kotlin. You can easily call Kotlin code from Java and Java code from Kotlin. This makes adoption much easier and lower-risk. There's also an automated Java-to-Kotlin converter built into the IDE that simplifies migration of existing code.
Kotlin can be used for any kind of development, be it server-side, client-side web, Android, or multiplatform library. With Kotlin/Native currently in the works, support for other platforms such as embedded systems, macOS, and iOS. People are using Kotlin for mobile and server-side applications, client-side with JavaScript or JavaFX, and data science, just to name a few possibilities.
Yes. Kotlin is supported as a first-class language on Android. There are hundreds of applications already using Kotlin for Android, such as Basecamp, Pinterest and more. For more information, check out the resource on Android development.
Yes. Kotlin is 100% compatible with the JVM, and as such you can use any existing frameworks such as Spring Boot, vert.x or JSF. In addition, there are specific frameworks written in Kotlin, such as Ktor. For more information, check out the resource on server-side development.
Yes. In addition to using for backend web, you can also use Kotlin/Wasm for client-side web. Learn how to get started with Kotlin/Wasm.
Yes. You can use any Java UI framework such as JavaFx, Swing or other. In addition, there are Kotlin-specific frameworks such as TornadoFX.
Yes. Kotlin/Native is available as a part of Kotlin. It compiles Kotlin to native code that can run without a VM. You can try it on popular desktop and mobile platforms and even some IoT devices. For more information, check out the Kotlin/Native documentation.
Kotlin has full out-of-the-box support in IntelliJ IDEA, Android Studio, and JetBrains Fleet with an official Kotlin plugin developed by JetBrains.
Other IDEs and code editors only have Kotlin community-supported plugins.
You can also try Kotlin Playground for writing, running, and sharing Kotlin code in your browser.
In addition, a command line compiler is available, which provides straightforward support for compiling and running applications.
On the JVM side, the main build tools include Gradle, Maven, Ant, and Kobalt. There are also some build tools available that target client-side JavaScript.
When targeting the JVM, Kotlin produces Java-compatible bytecode.
When targeting JavaScript, Kotlin transpiles to ES5.1 and generates code which is compatible with module systems including AMD and CommonJS.
When targeting native, Kotlin will produce platform-specific code (via LLVM).
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. Starting with Kotlin 1.5, the compiler does not support producing bytecode compatible with Java versions below 8.
Kotlin is inspired by existing languages such as Java, C#, JavaScript, Scala and Groovy. We've tried to ensure that
Kotlin is easy to learn, so that people can easily jump on board, reading and writing Kotlin in a matter of days.
Learning idiomatic Kotlin and using some more of its advanced features can take a little longer, but overall it is not
a complicated language.
For more information, check out our learning materials.
There are too many companies using Kotlin to list, but some more visible companies that have publicly declared usage of Kotlin, be this via blog posts, GitHub repositories or talks include Square, Pinterest, Basecamp, and Corda.
Kotlin is developed by a team of engineers at JetBrains (current team size is 100+). The lead language designer is Michail Zarečenskij. In addition to the core team, there are also over 250 external contributors on GitHub.
The best place to start is our website. To start with Kotlin, you can install one of the official IDEs or try it online.
There are a number of books available for Kotlin. Some of them we have reviewed and can recommend to start with. They are listed on the Books page. For more books, see the community-maintained list at kotlin.link.
You can learn all the Kotlin essentials while creating working applications with the Kotlin Core track by JetBrains Academy.
A few other courses you can take:
- Pluralsight Course: Getting Started with Kotlin by Kevin Jones
- O'Reilly Course: Introduction to Kotlin Programming by Hadi Hariri
- Udemy Course: 10 Kotlin Tutorials for Beginneres by Peter Sommerhoff
You can also check out the other tutorials and content on our YouTube channel.
Yes! Kotlin has a very vibrant community. Kotlin developers hang out on the Kotlin forums, StackOverflow and more actively on the Kotlin Slack (with close to 30000 members as of April 2020).
Yes! There are many User Groups and Meetups now focused exclusively around Kotlin. You can find a list on the website. In addition, there are community-organized Kotlin Nights events around the world.
Yes! KotlinConf is an annual conference hosted by JetBrains, which brings together developers, enthusiasts, and experts from around the world to share their knowledge and experience with Kotlin.
In addition to technical talks and workshops, KotlinConf also offers networking opportunities, community interactions, and social events where attendees can connect with fellow Kotliners and exchange ideas. It serves as a platform for fostering collaboration and community building within the Kotlin ecosystem.
Kotlin is also being covered in different conferences worldwide. You can find a list of upcoming talks on the website.
Yes. Subscribe to the Kotlin YouTube channel and follow Kotlin on Twitter.
The website has a bunch of online resources, including Kotlin Digests by community members, a newsletter, a podcast and more.
Logos can be downloaded here.
When using the logos, please follow simple rules in the guidelines.pdf
inside the archive and Kotlin brand usage guidelines.
For more information, check out the page about Kotlin brand assets.