Einführung in Kotlin – Viel mehr als nur Android

Warum Kotlin längst nicht mehr nur die Android-Sprache ist und weshalb es auf dem Server eine ernsthafte, oft unterschätzte Wahl ist.

This article has not been translated yet. You are viewing the original German version.

Read in German →

Kotlin

Einführung in Kotlin – Viel mehr als nur Android

Marcel Strahl3 min read

Einführung in Kotlin – Viel mehr als nur Android

Frag zehn Entwickler, was Kotlin ist, und neun sagen: „Das ist doch das für Android-Apps.“

Stimmt. Und ist gleichzeitig das größte Missverständnis über die Sprache.

Kotlin ist eine vollwertige, moderne Sprache für die JVM – und damit für alles, wofür man auch Java einsetzt: Backends, APIs, Tools, Datenverarbeitung. Google hat Kotlin nur berühmt gemacht. Gebaut wurde es für viel mehr.

Was ist Kotlin überhaupt?

Kotlin ist eine statisch typisierte Sprache von JetBrains (den Leuten hinter IntelliJ), die auf der JVM läuft und zu 100 % mit Java interoperabel ist.

Das bedeutet:

  • Kotlin-Code kann jede Java-Bibliothek benutzen – das komplette Java-Ökosystem inklusive
  • Kotlin und Java können im selben Projekt nebeneinander existieren
  • Migration geht schrittweise, Datei für Datei

Klassisches Beispiel:

fun main() {
    println("Hallo Welt!")
}

Keine Klasse, kein public static void, kein Semikolon. Einfach eine Funktion.

Das ist kein Zufall, sondern das Designziel: Kotlin will die Zeremonie von Java loswerden, ohne die JVM-Stärken aufzugeben.


Warum Kotlin entstanden ist

JetBrains schrieb Millionen Zeilen Java und war irgendwann genervt. Von Boilerplate, von NullPointerExceptions, von Gettern und Settern.

Also bauten sie eine Sprache, die genau diese Schmerzen behebt:

  • Null-Safety im Typsystem. String kann nie null sein, String? schon – und der Compiler zwingt dich, damit umzugehen. Die berühmteste Fehlerquelle der Java-Welt ist damit größtenteils wegdesignt.
  • Data Classes. Eine Zeile statt fünfzig.
  • Typinferenz. Der Compiler weiß selbst, dass val name = "Marcel" ein String ist.
  • Extension Functions, Default-Parameter, Named Arguments. Kleinigkeiten, die sich täglich auszahlen.

Beispiel:

data class User(val name: String, val email: String)
 
val user = User(name = "Marcel", email = "[email protected]")

Konstruktor, equals(), hashCode(), toString(), copy() – alles dabei. Java hat mit Records nachgezogen, aber Kotlin war Jahre früher da und geht weiter.


Kotlin auf dem Server – der unterschätzte Teil

Und jetzt der Teil, den viele nicht auf dem Schirm haben: Kotlin im Backend.

Die Optionen sind ausgereift:

  • Spring Boot unterstützt Kotlin offiziell und erstklassig – das komplette Spring-Ökosystem, nur mit angenehmerer Sprache
  • Ktor – JetBrains' eigenes, leichtgewichtiges Framework für APIs und Microservices
  • Exposed, Koin, kotlinx.serialization – ein eigenes, wachsendes Kotlin-Ökosystem

Ein Ktor-Endpoint:

fun Application.module() {
    routing {
        get("/users") {
            call.respond(userService.findAll())
        }
    }
}

Kurz. Klar. Verständlich.

Und weil unter der Haube die JVM läuft, bekommt man das jahrzehntelang optimierte Tooling, Monitoring und Deployment gleich mit.

Dazu kommen Coroutines: nebenläufiger Code, der sich liest wie sequenzieller Code. Kein Callback-Chaos, kein Thread-Mikromanagement.


Kotlin ist nicht perfekt

Natürlich nicht.

  • Die Kompilierzeiten sind spürbar länger als bei Java
  • Ohne IntelliJ macht Kotlin nur halb so viel Spaß – das Tooling-Monopol liegt bei JetBrains
  • Die Sprache bietet viele Wege zum Ziel; Teams brauchen Konventionen, sonst wird es kreativ
  • Außerhalb von Android und JVM-Backend (Kotlin Multiplatform) ist das Ökosystem noch jung

Und ganz ehrlich: Wer ein großes, stabiles Java-Team hat, muss nicht zwingend migrieren. Der Gewinn ist real, aber kein Faktor zehn.


Für wen eignet sich Kotlin heute?

Meiner Meinung nach besonders für:

  • Android-Entwicklung (dort ist es der Standard, keine Diskussion)
  • Neue Backend-Services auf der JVM
  • Java-Teams, die Boilerplate und NullPointerExceptions satt haben
  • APIs und Microservices mit Ktor oder Spring Boot
  • Alle, die das Java-Ökosystem wollen, aber eine modernere Sprache

Mein persönlicher Eindruck

Kotlin fühlt sich an wie Java nach einem sehr guten Aufräumtag.

Die Null-Safety allein verändert, wie man über Code nachdenkt: Der Compiler stellt die Fragen, die man sich sonst um 3 Uhr nachts in Produktion stellt. Und durch die Java-Interop ist das Risiko minimal – man verliert nichts, man gewinnt eine angenehmere Sprache.

Dass viele Kotlin nur als „Android-Sprache“ abspeichern, ist deshalb fast schon tragisch. Auf dem Server ist es mindestens genauso gut aufgehoben.