Analyse

Artikel merken

Kotlin: Warum die Java-kompatible Programmiersprache so unglaublich beliebt ist

Zeitgemäße Features und weniger Code – das sind die Versprechen der immer noch jungen Programmiersprache Kotlin. Nutzen kannst du sie für Javascript, Android und mehr. Das hat die Sprache alles zu bieten.

3 Min. Lesezeit

Für Kotlin spricht unter anderem die Kompatibilität mit Java(Bild: Trismegist san/Shutterstock) 

Die immerhin viertbeliebteste Programmiersprache nach Rust, TypeScript und Python ist Kotlin. Das ist zumindest das Ergebnis der letzten Entwicklerumfrage von Stackoverflow. Wir haben die Sprache näher unter die Lupe genommen und wollen einige der vielseitigen Gründe dafür vorstellen.

Was ist Kotlin?

Jetbrains rief das Projekt Kotlin 2011 ins Leben. Die erste stabile Version wurde jedoch erst 2016 veröffentlicht – die Sprache ist also noch vergleichsweise jung. Sie verfügt über viele moderne Features und macht vieles besser als Java. Entwickelt wurde sie ursprünglich nur für die Java Virtual Machine (JVM). Bedeutet: Ein in Kotlin geschriebenes Programm wird in einen Bytecode übersetzt, der von der JVM gelesen werden kann.

Kotlin ist seit 2017 eine offizielle von Android unterstütze Programmiersprache. (Grafik: Jetbrains)

Kotlin ist seit 2017 eine offizielle, von Android unterstützte Programmiersprache. (Grafik: Jetbrains)

Inzwischen ist Kotlin nicht nur eine offizielle Android-Sprache, sondern auch fürs Web geeignet. Dafür wird der Kotlin-Code in Javascript übersetzt. Neben server-seitigen Anwendungen kann die Sprache mit Kotlin/Native (aktuell noch in der Entwicklung) auch für weitere Plattformen wie beispielsweise Windows, macOS oder sogar iOS oder Linux verwendet werden.

Eine Besonderheit der Sprache ist ihre Kompatibilität zu Java. So kann im Kotlin-Code ohne Probleme eine Java-Klasse aufgerufen werden und umgekehrt. Dadurch lassen sich Java-Projekte nach und nach in Kotlin umschreiben. Das hat den Vorteil, dass es nicht auf einen Schlag komplett neu geschrieben werden muss. Aus diesem Grund wird auch bei bestehenden Android-Apps immer mehr auf Kotlin statt Java gesetzt.

Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Was macht Kotlin anders (und besser) als Java?

Kotlin macht in vielerlei Hinsicht einiges besser als Java. Ein Beispiel sind Null-Pointer-Exceptions. Sie sind einer der am häufigsten auftretenden Fehler unter Java. Unter Java tritt die Exception meistens erst während der Laufzeit auf, weil man irgendeinen Sonderfall nicht bedacht hat. Jetbrains beseitigt das Problem bei Kotlin ganz einfach: Der Wert einer Variable darf nicht ins Leere verweisen. Tut er es doch, wird bereits beim Kompilieren ein Fehler geworfen.

Aber keine Sorge, ganz ohne Null kommt auch Kotlin nicht aus. Mit einem „?“ hinter dem Typen wird eine Referenz auf Null zugelassen. Greift ihr nun ohne Weiteres auf diese Variable zu, wird vom Compiler wieder ein Fehler geworfen, da die Variable auf Null verweisen könnte. Kotlin liefert Möglichkeiten mit, wie man trotzdem auf diese Variable zugreifen kann.

Was erstmal umständlich aussieht, ist in der Praxis ein sehr nützliches Hilfsmittel. Jegliche Null-Pointer-Exceptions können in Kotlin so verhindert werden. Wollt ihr dennoch einen derartigen Fehler auslösen, liefert die Programmiersprache übrigens auch dafür eine entsprechende Syntax mit.

Weitere Features von Kotlin sind:

  • Erweitern einer beliebigen bestehenden Klasse mit neuen Funktionen
  • Funktionen höherer Ordnung ermöglichen das Übergeben einer Funktion als Parameter oder das Zurückgeben dieser als Ergebnis
  • Eine clevere Syntax für Lambda-Ausdrücke
  • Daten-Klassen
  • Typ-Aliasse und viele weitere Features

Kotlin ist schlanker als Java

Außerdem ist Kotlin-Code in den allermeisten Fällen deutlich kürzer als äquivalenter Code in Java. Zum Beispiel verfügt die Sprache über sogenannte Daten-Klassen. Das Feature soll die Menge redundanten Codes verringern. Für solche Klassen werden neben Getter- und Setter-Funktionen auch sinnvolle Equal- und toString-Funktionen generiert, ohne dass Entwickler:innen zusätzlichen Code schreiben müssen.

Nehmen wir an, wir wollen eine Klasse für ein Auto schreiben. In Java sieht das dann beispielsweise so aus:

Um genau das gleiche in Kotlin zu realisieren, brauchen wir nur eine Zeile Code und sparen uns das Schreiben der immer wieder gleichen Funktionen:

Lohnt sich der Umstieg von Java zu Kotlin?

Vor allem Java- und Android-Entwickler sollten sich Kotlin einmal näher anschauen. Durch die Kompatibilität zu Java können auch erstmal nur einzelne Klassen in Kotlin geschrieben werden, während das restliche Projekt noch in Java geschrieben ist. Aber auch für Programmierer:innen, die mit Javascript arbeiten, ist Kotlin durchaus interessant. Mit Kotlin Native bietet Jetbrains Entwickler:innen zudem die Möglichkeit, Kotlin auch bei der Entwicklung für Plattformen wie iOS oder sogenannte embedded Devices zu nutzen.

Bildergalerie: Android Studio 3.0 unterstützt Kotlin
(Screenshot: Android Studio 3.0 / Google)

1 von 4

 

Bildergalerie: Android Studio 3.0 unterstützt Kotlin
(Screenshot: Android Studio 3.0 / Google)

1 von 4

Das könnte dich auch interessieren

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

4 Kommentare
stephan-hartmann
stephan-hartmann

Ja klar. 0,253% sind also „unfassbar beliebt“.
https://www.tiobe.com/tiobe-index/
Java: 15,32%
Wofür wird hier eigentlich (Schleich-) Werbung gemacht?
Scala war auch mal der Super-Ersatz für das so unglaublich schlechte und veraltete Java. Ist heute bei superüberragenden 0,44%. Immerhin fast doppelt so viel wie Kotlin, gell?

Antworten
unwichtig
unwichtig

Zahlen sind nicht alles mein lieber oder warum denkst du hat Google Kotlin als offizielle Zweitsprache für Android genommen?

was ist nicht ist, das kann werden…

Abgesehen davon ob Kotlin gut ist oder nicht auf die faule Haut muss man sich nicht legen,
besser ist es immer Verbesserungspotential auszureizen.

Antworten
Skeptiker
Skeptiker

„eine Klasse für ein Auto“
Das ist keine einfache Klasse. Das ist eine JavaBean.
Niemand zwingt mich zu Gettern, Settern und Konstruktor.
Eine reine Daten-Klasse sieht bei mir in JAVA auch nicht großartig aus als das Kotlin-Beispiel hier.
Wenn ich tatsächlich alles in einer Zeile stehen haben wollte, sind die Unterschiede marginal:
public class Car { private String name; private int color; private double speed; }

„sparen uns das Schreiben der immer wieder gleichen Funktionen“
Dafür gibt es bei wirklich identischen Funktionen Vererbung. Eine der besten Grundideen objektorientierter Programmierung.

Dieser Artikel hat mir erneut gezeigt, dass sich für etablierte JAVA-Entwickler der Umstieg auf Kotlin kaum lohnt. Hoher Lern- und Umstellungsaufwand für (bestenfalls) wenig Vorteile. Und wenn man Pech hat, endet das Ganze wie Silverlight…

Antworten
sasbob
sasbob

Dann bleiben Sie bei Java. Hätte ich freie Wahl (die man als Consultant leider fast nie hat) würde ich nur noch in Kotlin implementieren. Die Data Klassen sorgen schon einmal dafür, dass man sich nicht solche Sachen wie Lombok ans Bein binden muss (was recht häufig nur für die Ersparnis von gettern und settern benutzt wird). ExtensionFunctions machen die lästigen Util-Klassen mit statischen Methoden meist überflüssig. Default Werte für Methoden Parameter sorgen dafür, dass man bei der Einführung neuer Parameter die alte Methode zwecks Kompatibilität nicht mehr überladen muss. Die Unterscheidung zwischen Nullable und non-nullable Typen macht NPE schon zur Laufzeit sichtbar.

Jeder, der sich ein wenig mit Kotlin beschäftigt, wird nicht mit allen Unterschieden was anfangen können, aber wer zumindest nicht 1-2 Vorteile gegenüber Java entdeckt und für sich nutzen kann ist blind.

Habe ich schon erweiterte Collections (über Extension Functions), Smart Casts und Safe Calls erwähnt? Hier mal ein Einzeiler für die n-te Fibonacci Zahl, welche mehrere Vorteile vereint (Funktionen als Expressions schreiben, Ranges, Stream Operationen ohne Stream und „Pair“ als Standard-Hilfsklasse):

fun fibonacci(factor: Int) = (1..factor).fold(Pair(0,1), {x,y -> Pair(x.second,x.first + x.second)} ).first

Ja, das kann man auch rekursiv oder iterativ in Java schreiben, aber Kotlin ist da viel eleganter. Hohen Lern- und Umstellungsaufwand kann ich auch nicht wirklich erkennen, aber so mancher langjähriger JAVA-Entwickler ist halt nicht „etabliert“, sondern einfach nur zu faul was Neues zu lernen.

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Digitales High Five
Holger Schellkopf (Chefredakteur t3n)

Anleitung zur Deaktivierung

Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder