How-To

From Zero to Hero: Kotlin ist mehr als eine Alternative zu Java

(Abbildung: Shutterstock / REDPIXEL.PL)

Moderne Features und weniger Code: Das sind die Versprechen der noch jungen ­Programmiersprache Kotlin. Als Alternative zu Java entwickelt, mausert sie sich schnell zur universellen Sprache. Auch Android- und Web-Entwickler sollten aufhorchen.

From Zero to Hero: Das ergab die diesjährige ­Entwicklerumfrage von Stackoverflow zu Kotlin. Zum ersten Mal wurde nach der Programmiersprache gefragt. Das Ergebnis: Die Sprache landete in der Rubrik der beliebtesten Programmiersprachen direkt hinter Rust auf Platz zwei. Explizit wurden über 100.000 Entwickler gefragt, welche Sprachen sie regelmäßig nutzen und damit auch weiterhin arbeiten wollen. Nur rund die Hälfte der Java-­Entwickler stimmten dem zu, bei Kotlin waren es über 75 Prozent. Doch wo kommt Kotlin so plötzlich her und warum erfreut es sich einer dermaßen hohen Beliebtheit?

Die tschechische Softwareschmiede Jetbrains, die vor allem für die Java-Entwicklungsumgebung Intellij Idea bekannt ist, rief das Kotlin-­Projekt 2011 ins Leben. Das Ziel: eine bessere Programmiersprache als Java zu entwickeln. Das Team hatte zu dieser Zeit diverse Projekte mit einer großen Java-Code-Basis und war damit alles andere als zufrieden. Doch alle anderen verfügbaren Sprachen konnten den Ansprüchen des Unternehmens auch nicht genügen – obwohl diese eher moderat gewesen seien, erklärte der leitende Sprachdesigner von Kotlin, Andrey Breslav, in einem Interview mit dem Blog ­Rebellabs 2013. Im Wesentlichen sei es ihnen um eine reibungslose Integration in die vorhandene Infrastruktur, effiziente Tools und eine gute ­Compiler- und Laufzeit-Performance gegangen. Mangels Alternativen nahm Jetbrains also die Sache selbst in die Hand und veröffentlichte schließlich 2016 die erste stabile Version von Kotlin.

Die noch junge Programmiersprache, deren Name auf eine Insel vor Sankt Petersburg zurückgeht, wo Jetbrains eine ­Dependance unterhält, sorgt vor allem für viele moderne ­Features. Das heißt aber nicht, dass die Sprache nicht ausgereift wäre. Schließlich wurde sie fünf Jahre lang entwickelt, bevor die erste stabile Version den Weg in die Öffentlichkeit fand.

Wer sich mit Java und ihrem Herausforderer Kotlin befasst, stellt schnell fest: Es macht einen großen Unterschied, ob eine Sprache aus dem letzten Jahrhundert stammt und moderne Funktionen erst nach und nach integriert wurden oder ob das Sprachdesign von Anfang an mit all den Features geplant wurde, die beim Einsatz in modernen Projekten zum Tragen kommen. Das scheint sich übrigens nicht nur bei Kotlin zu bestätigen, denn die bestplatzierten Programmiersprachen im Stackoverflow-­Ranking wurden in ihrer Erstversion allesamt innerhalb der letzten zehn Jahre veröffentlicht. Das gilt für Rust und Go, Typescript und Swift. Alle erfreuen sich größerer Beliebtheit als die klassischen Programmiersprachen. Python bildet mit dem dritten Platz die einzige Ausnahme.

Java und Kotlin: Kein Entweder-Oder

Wer eine große Java-Code-Base hat und sein bestehendes Projekt nicht auf einen Schlag komplett neu schreiben will, dem bietet Kotlin einen charmanten Übergang. Denn die Jetbrains-Programmiersprache ist kompatibel zu Java. So kann im Kotlin-Code ohne Probleme eine Java-Klasse aufgerufen werden und umgekehrt. Dabei wird der Source-Code von Kotlin übrigens, genauso wie der von Java, in Byte­code übersetzt, welcher dann von der Java ­Virtual Machine (kurz: JVM) gelesen wird.

Doch wenn Kotlin sowieso für die JVM übersetzt werden muss, könnte man sein Projekt nicht auch wie bisher einfach direkt in Java schreiben? Das ist wohl nicht ganz falsch, jedoch hat Kotlin dem Urgestein Java – und auch vielen anderen Sprachen – einiges voraus. Das liegt nicht zuletzt daran, dass die Sprache durch ein Unternehmen wie Jetbrains entwickelt wird, das mit sieben IDE auf dem Markt eine ausgewiesene Expertise in Programmiersprachen hat und durch die langjährige Erfahrung mit Java-Projekten weiß, wo in der Praxis der Schuh drückt.

Ein Beispiel für eine ­mögliche Java-Klasse, bei der teilweise sogar noch Methoden gekürzt oder ganz weggelassen ­wurden. Der Unterschied zu Kotlin (rechts) ist enorm: Da hier alle wichtigen Funktionen für ­Datenklassen auto­matisch generiert werden, benötigt dasselbe Beispiel in Kotlin nur eine einzige Zeile Code. (Screenshot: t3n / Gitlab)

Der wohl elementarste Vorteil von Kotlin gegenüber Java ist die Reduzierung von redundantem Code. Ein Blick auf ein klassisches Beispiel der projektorientierten Programmierung kann das verdeutlichen: das Schreiben einer bestimmten Klasse für ein Objekt. In Java müssen dafür typischerweise neben den ­Attributen auch jede Menge Setter- und Getter-Methoden sowie eine Equals-, Tostring- und Hash­code-Methode geschrieben werden. Hat eine Klasse mal ein paar mehr Attribute, kommen da einige Code-Zeilen zusammen. Auch beim späteren Ergänzen weiterer Attribute müssen nicht nur erneut Setter- und ­Getter-Methoden hinzugefügt, sondern auch die anderen ­Funktionen angepasst werden.

Doch ein Projekt hat natürlich weit mehr als eine einzige derartige Klasse. Dort muss dann das Ganze auf ähnliche Art und Weise erneut geschrieben, oder noch besser: zusammenkopiert werden. Eins der am meisten verbreiteten Programmierparadigmen besagt: „Don’t Repeat Yourself.“ Doch wie sollen sich Entwickler daran halten, wenn bereits das Sprachdesign daran scheitert?

Ein Blick in Kotlin zeigt, dass es anders geht, und offenbart ­nebenbei eines der beliebtesten Features der Sprache: Datenklassen. Dort muss weder für Setter- und Gettermethoden noch für die ­weiteren oben erwähnten Funktionen Extra-Code geschrieben werden. Ein zum obigen Java-Beispiel äquivalenter in ­Kotlin geschriebener Ausschnitt benötigt lediglich eine einzige Zeile Code. Dieser Kontrast setzt sich auch in einigen weiteren Komponenten des Sprachdesigns fort. So geht Jetbrains ein weiteres Problem vieler Sprachen an: Null-Pointer-Exceptions. Programm­abstürze, die während der Laufzeit auftreten, weil auf eine ­Variable zugegriffen wird, die ins Leere verweist. Sie sind besonders in selten verwendeten Code-Ausschnitten tückisch, da der Fehler gerne erst dann auftritt, wenn die Anwendung bereits veröffentlicht wurde. In Kotlin können während der Laufzeit solche Fehler schlicht nur auftreten, wenn sie auch explizit zugelassen werden – was guter Kotlin-Code nur selten tun sollte.

Denn: Normale Variablen dürfen in Kotlin standardmäßig nicht auf Null gesetzt werden. Wenn das manchmal doch nötig wird, liefert Kotlin entsprechende Syntax mit. Ein Fragezeichen, welches hinter den Variablentyp gehängt wird, lässt den Nullverweis zu. Nun meldet der Compiler beim direkten Zugriff auf den Wert einer solchen ­Variable einen Fehler: Die ­Variable könnte ins Leere zeigen. Weitere intelligente Syntax ermöglicht dann den Zugriff auf eine solche ­Variable, ohne dass die klassische ­If-not-Null-Abfrage zum Einsatz kommen muss.
­
Was ­umständlich klingt, ist in der Praxis ein mehr als nützliches Hilfsmittel, da einfach weniger unvorhergesehene Dinge passieren können. Programmierer erhalten größere Kontrolle über den Programmcode und was mit ihm während der Laufzeit passiert.

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

Schreib den ersten Kommentar!

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

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

Hey du! Schön, dass du hier bist. 😊

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

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

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung