Why Kotlin?

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.

Most Loved Programming Languages Most Loved Programming Languages
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 Multiplatform Kotlin Multiplatform
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.