Tipps & Tutorials

Kotlin vs. Java – was eignet sich wofür?


Veröffentlicht am 17.12.2019 von DomainFactory

Wenn es um Android-Entwicklung geht, ist Kotlin bereits Standard. Diese Tatsache und eine gute Kompatibilität macht Kotlin auch auf weiteren Plattformen immer beliebter. Kotlin verlässt den Androidraum und etabliert sich langsam auch in iOS und Windows. Aber ist Kotlin besser als Java? Es wird Zeit, sich die beiden Sprachen einmal genauer anzusehen und herauszustellen, wo die Unterschiede liegen.

Das Wichtigste auf einen Blick

  • Kotlin spart an Codezeilen, nicht aber an Lesbarkeit.
  • Getter und Setter werden dank Kotlin in den Compiler verschoben.
  • NullPointerExceptions werden zudem fast eliminiert.
  • Der kompilierte Kotlin-Code ist dabei hochkompatibel.

Was ist Kotlin eigentlich genau?

Kotlin wird von der Firma JetBrains entwickelt, von der ebenfalls die intelligente Java-IDE IntelliJ IDEA und die JavaScript IDE Webstorm stammt. Damit ist Kotlin eine plattformübergreifende, statisch typisierte Programmiersprache, die in Java, JavaScript und Maschinencode umgewandelt werden kann. Sie ist daher sehr vielseitig und kann in viele Projekte einfach eingebunden werden. Die Integration erfolgt ganz ohne Kompatibilitätsprobleme und benötigt außerdem keine Schnittstellenprogrammierung.

Kompatibilität mit Java

Ein großer Vorteil besteht darin, dass der Code mit Java kompatibel ist. Als Beispiel: Ein Code, der mit Kotlin erstellt wird, kann aus Java-Klassen heraus angesprochen werden. Andersherum können Java-Klassen auch in Kotlin genutzt werden. Viele bereits vorhandene Java-Projekte können nach und nach ohne Verluste in Kotlin umgeschrieben werden. Somit können Sie vorhandene Projekte mit einem aktuell sicheren Code ergänzen, ohne den Rest abändern zu müssen.

Kotlin bietet die gleiche Leistung bei weniger Code

Eine weitere Überlegenheit von Kotlin ist darüber hinaus, dass viel Boilerplate-Code vermieden wird. Oft gehört er zwar zum guten Programmierstil, er bläht den Code jedoch unnötig auf. Mit Kotlin können einfache Aufgaben, die in Java knapp 100 Zeilen Code benötigen, auf weniger als zehn Prozent reduziert werden. Dabei wird weder die Lesbarkeit noch die Funktionsweise beeinträchtigt. Dies ist zwar ein extremes Beispiel, in der Regel lässt sich der Java-Code aber um 20 bis 30 Prozent kürzen.

💡 Gut zu wissen: Weniger Code bedeutet auch immer weniger mögliche Bugs, weniger Bugfixing und schnellere Fertigstellung von Projekten. Das spart nicht nur Nerven, sondern auch Zeit und Geld.

NullException-Prüfung wird überflüssig

Um Programmabstürze zu vermeiden, muss in Java vor dem Zugriff auf jede Variable geprüft werden, ob der Wert Null beträgt. Dies sieht dann folgendermaßen aus:

 

if(mitglied != null && mitglied.getLastname() != null){
length = mitglied.getLastname().length()
}

 

Diese Rechenschritte können theoretisch vermieden werden. In Kotlin ist es möglich, direkt mitzuteilen, ob ein Attribut nullable ist. Wenn ein Standardwert gesetzt wird, fällt diese Prüfung weg:

 

val firstname: String = ""

 

Natürlich kann auch ein Nullwert erlaubt werden, die entsprechende Prüfung sieht dann wie folgt aus:

 

val length?: Int = mitglied?.lastname?.length

 

Sollte nun ein Nullwert auftauchen, ist das Ergebnis der Variablen length auch der Wert null. Mit dem Elvis-Operator und der Zuweisung eines Standardwertes kann das umgangen werden:

 

val length: Int = mitglied?.lastname?.length ?: 0

 

Anschließend muss nicht mehr auf Null geprüft werden und der Code wird kürzer. Diese Funktion ist zwar ähnlich wie bei Optionals in Java, gibt aber die Möglichkeit wie folgt abzukürzen:

 

println(lastname?.length)

 

anstatt

 

lastname.ifPresent(value -> println(value.length()));

 

Unterstützung für die Programmierung von Kotlin

Kotlin läuft Java in vielen Fällen den Rang als Standard-Programmiersprache für Android ab. Daher ist Kotlinin die Entwicklungsplattform Android Studio integriert, sodass Sie Apps direkt dort erstellen und testen können.

Seit Version 5 unterstützt das Spring-Framework Kotlin ohne zusätzliche Plugins. Außerdem ist in den Entwicklungsplattformen IntelliJ (Community und Enterprise) und Eclipse bereits eine Unterstützung für Kotlin vorhanden. So lassen sich Java und Kotlin einfach miteinander verbinden.

Einsatz als native Programmiersprache findet immer mehr Anwendung

Kotlin ist nicht nur in der Android-Programmierung zu Hause. Mittlerweile ist das Tool auch als native Programmiersprache für einige weit verbreitete Systeme verfügbar. Derzeit kann Kotlin/Native auf diesen Betriebssystemen angewendet werden:

  • iOS (arm32, arm64, simulator x86_64)
  • MacOS (x86_64)
  • Android (arm32, arm64)
  • Windows (mingw x86_64, x86)
  • Linux (x86_64, arm32, MIPS, MIPS little endian, Raspberry Pi)
  • WebAssembly (wasm32)

In welchen Fällen eignet sich Java besser als Kotlin?

Trotz der guten Unterstützung und dem Push von Google gibt es dennoch Fälle, in denen Java als Programmiersprache einen besseren Dienst leistet. Die Vorteile von Java haben wir in dieser Übersicht zusammengestellt.

Java

Kotlin

Die Anzahl der Java-Programmierer ist wesentlich höher als bei Kotlin. 1992 kam die erste Version auf den Markt.
Es existiert viel Hilfestellung in Form von Blogs, Videos und Foren.

Kotlin existiert seit 2011 und wurde erst 2017 von Google für Android vorgestellt.
Die Community ist daher noch relativ klein und Hilfe wird von wesentlich weniger Personen geleistet.

Java-Code ist komplex, dafür anfangs übersichtlicher gestaltet.

Kotlin spart Codezeilen. Wenn Sie Umsteiger sind, müssen Sie sich allerdings erstmal mit den Kürzungen vertraut machen.

Komplexe Apps und Programme sind in Java kleiner und übersichtlicher als in Kotlin.

Kleine, weniger komplexe Apps sind in Kotlin besser aufgehoben.

Apps sind in Java zwar langsamer, dafür benötigen die APKs weniger Speicher. Da der Trend derzeit eher Richtung lightweight microservice applications geht, ist Java hier der bessere Weg.

Kotlin-Apps sind zwar grundsätzlich mit weniger Code zufrieden. Der Runtime-Code und die Standardbibliotheken, die in Kotlin-Apps integriert werden, lassen die APK-Größe allerdings schnell wachsen.

Ist Kotlin nun wirklich das bessere Java?

Bei der Betrachtung aller Fakten könnte das angenommen werden. Java war lange Zeit der Platzhirsch, wenn es um Apps geht. Java-Programme laufen auf sämtlichen Plattformen, die über eine Laufzeitumgebung verfügen. Diese Tatsache machte Java zu dem, was es heute ist – eine der beliebtesten Programmiersprachen. Fakt ist allerdings auch, dass Java wegen seiner vielen Codezeilen bei kleineren Apps oft unübersichtlich wirkt und von vielen Programmierern deswegen gemieden wird.

Auch die immer wieder auftretenden Sicherheitsprobleme sorgen langsam für einen Rückgang. Selbst Oracle empfiehlt mittlerweile die Deinstallation von Java, wenn es nicht unbedingt benötigt wird. So etwas aus eigenem Hause zu hören, kann potentielle Programmierer abschrecken. Kotlin wird daher wohl zumindest für kleinere Projekte Java über kurz oder lang ersetzen. Bei größeren Projekten bleibt Java allerdings immer noch die bessere Wahl.

 

Der Autor:


Als Qualitätsanbieter überzeugen wir mit HighEnd-Technologie und umfassenden Serviceleistungen. Mit mehr als 1,3 Millionen verwalteten Domainnamen gehören wir zu den größten Webhosting-Unternehmen im deutschsprachigen Raum.