Beiträge

Kotlin vs. Java, Wachablösung der Programmiersprachen

Kotlin, die moderne Java-Alternative in der Softwareentwicklung

Sicherlich hat nahezu jeder Java-Entwickler einmal das Buch “Java ist eine Insel” in den Händen gehabt. Der Name der Programmiersprache Kotlin ist eine Anspielung darauf, da es sich auch dabei um eine Insel handelt. Hier, in der Nähe von St. Petersburg, sitzt ein Teil des Entwicklerteams, das für die Firma JetBrains an Kotlin arbeitet.

Es ist eine sehr junge Programmiersprache, die in Bytecode für die Java Virtual Machine (JVM) übersetzt wird und auch in JavaScript-Quellcode transformiert werden kann. Laut der Entwicklerwebseite setzen diverse kleine und große Projekte die Sprache intensiv ein, darunter namhafte Webdienste, wie z. B. Pinterest, Gradle, Evernote, Uber und Atlassian (für das Tool Trello).

Ist Kotlin das bessere Java?

Um Kotlin kommt man inzwischen kaum herum, wenn man sich mit JVM-Sprachen beschäftigt. Als Quasi-Standard hat es sich bereits in der Android-Entwicklung etabliert und erobert nach und nach weitere Bereiche der Softwareentwicklung. Ein Hauptgrund ist sicher die fast nahtlose Interoperabilität mit Java. Auch die modernen Features lassen die Fangemeinde immer weiter anwachsen.

Durch was zeichnet sich Kotlin aus? Natürlich gibt es Anknüpfungspunkte und starke Ähnlichkeiten, die an andere Sprachen wie Scala, Groovy und Java erinnern. Die Sprache, die Java-Interoperabilität als ein wesentliches Merkmal für sich beansprucht, ist noch recht jung. Viele Jahre der Softwareentwicklung in Java werden durch den neuen Ansatz nicht von heute auf morgen verworfen. Kotlin ist mehr eine Evolution als eine Revolution.

Es ist eine pragmatische Programmiersprache, die aus den praktischen und alltäglichen Bedürfnissen des Entwicklers JetBrains entstanden ist. Empfohlen wird, neue Module in Kotlin zu entwickeln und “alten Code” Schritt für Schritt zu ersetzen.

Was zeichnet Kotlin als Programmiersprache aus?

Dieser Beitrag soll kein Tutorial werden und nur einige Aspekte der Programmiersprache anreißen.

Ein wesentliches Feature der Sprache ist die Zusicherung, dass eine Variable keinen „null“-Wert enthält. Damit erspart sich der Entwickler „if not null“-Abfragen. Zwar bietet Java 8 mit „Optional“ scheinbar ein vergleichbares Feature, allerdings mit dem Unterschied, dass „Optional“ rein auf Konvention basiert. Daher müssen Java-Entwickler „Optional“ nicht verwenden, aber sie müssen in Kotlin explizit einen „nullbaren“ Typ benutzen, wenn NULL ein gültiger Wert sein soll.

Diese Eigenschaft wird durch ein Fragezeichen am Ende des Typs ausgedrückt. Damit wird einem API-Benutzer deutlich, dass er mit einem möglichen NULL-Wert umgehen muss. Diese Sicherheit gilt allerdings nur für Code, der in Kotlin geschriebenen ist. Wenn dagegen eine in Java geschriebene Bibliothek verwendet wird, muss damit gerechnet werden, dass „null“-Werte vorkommen.

Kotlin ist prägnanter als Java. Das lässt sich an verschiedenen Beispielen zeigen. Semikolons am Ende von Statements sind optional. Das entspricht dem Anspruch moderner Programmiersprachen.

Die Reihenfolge von Datentyp und Bezeichner wurde im Gegensatz zu Java getauscht und folgt nun dem Konzept, das von anderen modernen Sprachen, wie Scala und Go, verwendet wird. An vielen Stellen kann beispielsweise darauf verzichtet werden, den Typ einer Variablen anzugeben. Für veränderliche Werte gibt es das Schlüsselwort „var“, für unveränderliche Werte „val“.

Mit Extension Functions können bestehende Klassen um weitere Funktionalitäten erweitert werden. Dies ist besonders nützlich, wenn man einer Klasse, die man selbst nicht kontrolliert, eine Funktion hinzufügen möchte. In Java wird üblicherweise mit Utility-Klassen gearbeitet, die statische Methoden enthalten. In Kotlin ist es möglich, eine Funktion zu schreiben, die auf dem Objekt der Klasse String aufgerufen werden kann.

 

Kotlin ist unter Entwicklern sehr beliebt

Die Sprache kommt in der Industrie sehr gut an. Das wird z. B. an der Unterstützung durch das Spring-Framework deutlich. Hier kann Kotlin neben Java und Groovy als Sprache ausgewählt werden. Ein wichtiger Beliebtheitshinweis ist die offizielle Unterstützung durch Google als Programmiersprache für Android. Diese wurde auf der Entwicklerkonferenz Google I/O im Mai 2017 angekündigt.

Domänenspezifische Sprachen sind ein weiteres Anwendungsgebiet. Gradle bietet eine Build-Beschreibungssprache, die auf Groovy basiert. Seit Version 3.0 ist alternativ auch eine Kotlin-basierte Sprache verfügbar. Diese liefert die Aussicht auf bessere Unterstützung in der Entwicklungsumgebung, ist aber momentan noch im Entstehungsprozess. Informationen zum aktuellen Projektfortschritt sind auf der Projektseite von Kotlin verfügbar.

Kotlin lernen

Um sich die Programmiersprache anzuschauen und zu testen, gibt es verschiedene Möglichkeiten.

  • Browserbasierter Editor mit Beispielen und Übungen: https://try.kotlinlang.org
  • Mit IntelliJ IDEA kann ein Projekt angelegt werden. Die IDE konvertiert auch Java-Code, wenn er in eine Kotlin-Quellcode-Datei kopiert wird. Trotz einigem Optimierungsbedarf funktioniert die Konvertierung recht gut.

 

Ein angenehmes Wesensmerkmal der Softwareentwicklung ist, dass es keinen Stillstand gibt. Die Spezialisten der kreITiv haben die Trends ständig im Blick und verfolgen Entwicklungen, die im Interesse des Kunden liegen, sehr aufmerksam. Haben Sie Fragen oder Wünsche im Bereich Softwareentwicklung? Wenden Sie sich gerne jederzeit an uns.