Kotlin is a modern language designed by JetBrains. Originally designed as a drop-in replacement for Java, Kotlin has grown in popularity to become the default language for Android development, and a popular back-end language.
Programming language selection is difficult, since languages tend to focus on front-end or back-end. It’s common to mix different programming languages depending on how they’re being used. For instance, Kotlin, Java and Go are all used for back-end systems, but typically paired with a JS/HTML client on the front-end.
|2022 Stack Overflow Developer Survey of “Most Loved Languages”|
The Kotlin Foundation, which manages the language, is invested in Kotlin as a modern cross-platform language. We’ll discuss Kotlin Multiplatform later in the course - the idea that we use a mix of Kotlin and native code to support code reuse across mobile and desktop platforms.
|Kotlin allows you to build share components for networking, data storage and models, while building native user-interfaces. This supports cross-platform development on mobile and desktop platforms.|
Finally, Kotlin also has a number of language features that make it an outstanding language for full-stack development:
- With some popular toolkits, it can be used to build compelling front-end client applications as well as back-end services.
- Critically, it supports compilation to a number of deployment targets: JVM for Windows/macOS/Linux on the desktop, Android native, or Web. With Compose Multiplatform, it can also be used to build iOS and Web apps.
- It’s a hybrid language: it can be used for declarative programming or class-based object-oriented programming. It also supports a number of functional features, especially with the use of collection classes.
- It has a very clean syntax, and supports quality-of-life features like default arguments, variable argument lists and rich collection types. It’s syntax closely resembles modern languages like Swift or Scala.
- Kotlin is statically compiled, so it catches many potential errors during compilation (not just at runtime).
- It has outstanding tools support with IntelliJ IDEA.
- It has massive community support (libraries, toolkits).
Sources: StackOverflow Developer Survey 2022 and JetBrains The State of Developer Ecosystem 2022.