Programmiersprache: Happy Birthday, Kotlin!

Vor zehn Jahren erblickte Kotlin als JVM-Sprache das Licht der Welt. Inzwischen hat sie sich zur Multiplattformsprache gewandelt und ist auf Android etabliert.

Lesezeit: 5 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 72 Beiträge

(Bild: Shutterstock)

Von
  • Rainald Menge-Sonnentag

Die Programmiersprache Kotlin feiert ihren zehnten Geburtstag. Am 19. Juli 2011 hat JetBrains sie auf dem JVM Language Summit erstmals vorgestellt. Der Toolhersteller kündigte sie als neue statisch typisierte Programmiersprache für die Java Virtual Machine (JVM) an. Inzwischen ist die Sprache in der Version 1.5.20 verfügbar und zielt längst nicht mehr nur auf die JVM.

Von der ersten Vorstellung bis zum Release der ersten stabilen Hauptversion zogen jedoch zunächst knapp fünf Jahre ins Land: Im Februar 2016 erschien Kotlin 1.0. Auf dem Weg dorthin wurde die Programmiersprache bereits ein gutes halbes Jahr nach der ersten Vorstellung zum Open-Source-Projekt. Auch wenn JetBrains ein tschechisches Unternehmen ist, zeichnet ein Team in Sankt Petersburg hauptverantwortlich für die Entwicklung der Programmiersprache. Ihm ist auch der Name geschuldet: Kotlin ist eine Insel vor St. Petersburg im Finnischen Meerbusen.

Grundsätzlich handelt es sich bei Kotlin wie bei Java um eine objektorientierte Programmiersprache. Darüber hinaus zielt sie auf prozedurale und bietet einige Ansätze der funktionalen Programmierung. Anders als die im Mai in Version 3 erschienene Sprache Scala, die ebenfalls auf der JVM läuft, ist sie aber keine funktionale Sprache.

Einige Konzepte zielen auf das Vermeiden typischer Fehler und klare Strukturen. So bietet Kotlin im Gegensatz zu Java Null Safety: Variablen dürfen standardmäßig nicht den Wert null annehmen, sondern sogenannte "nullable" Variablen müssen explizit mit einem ? gekennzeichnet sein.

Lesen Sie auch

Kotlin ermöglicht den Einsatz von Funktionen höherer Ordnung, die unter anderem die Grundlage für die Collections-Datentypen in der Standardbibliothek sind. Das aus der funktionalen Programmierung stammende Konzept der Closures setzt die Programmiersprache über anonyme Funktionen und Funktionszeiger um. Anders als in Java dürfen Closures auch schreibend auf Variablen zugreifen.

Beim Einsatz als JVM-Sprache übersetzt der Kotlin-Compiler den Sourcecode in Java Bytecode und passt dazu einige spezielle Konzepte an die generischen Vorgaben der JVM an. Dabei gibt es immer wieder Anpassungen unter der Haube, wie zuletzt für dynamische Methodenaufrufe über invokedynamic in Kotlin 1.5.20.

JetBrains sucht zum zehnten Geburtstag seit Mai Geschichten rund um Kotlin.

(Bild: JetBrains)

Nach der ersten Hauptversion standen zunächst Optimierungen für die nebenläufige Programmierungen an, und Kotlin 1.1 brachte Koroutinen mit. Anschließend begannen die Arbeiten für einen plattformübergreifenden Einsatz: Die im November 2017 veröffentlichte Version 1.2 ermöglichte erstmal Multiplattformprojekte zwischen der JVM und JavaScript. Entsprechende Projekte kombinieren allgemeine Geschäftslogik in einem rein aus Kotlin bestehenden Common-Modul mit plattformspezifischen Modulen für die JVM beziehungsweise JavaScript. Zusätzlich zum Kotlin-Sourcecode können erstere Java- und letztere JavaScript-Code enthalten.

Parallel dazu erschien die erste Version von Kotlin/Native: Der Compiler erstellt plattformspezifische Binaries, womit die Notwendigkeit einer virtuellen Maschine entfällt. Im Gegensatz zu anderen nativen Ansätzen war nicht die Performance die Motivation für Kotlin/Native, sondern ausgerechnet der plattformübergreifende Einsatz. Die JVM ist nicht auf allen Plattformen selbstverständlich vorhanden, und JetBrains hob bei der Vorstellung des Konzepts vor allem iOS als Zielplattform hervor.

Seit der ersten Version sind zahlreiche Feature-Releases mit der Versionierung 1.x erschienen, denen inkrementelle Releases mit der Versionsnummer 1.x.y0 (1.2.10, 1.2.20, ...) gefolgt sind. Bugfix-Releases erscheinen nach Bedarf mit der Versionierung 1.x.yz (1.5.11, 1.5.12, ...). Im Oktober 2020 hat JetBrains die Roadmap angepasst und wie für Java Feature-Releases im Halbjahrestakt angekündigt. Auf die Version 1.5 vom Mai soll somit im November Kotlin 1.6 folgen.

Kotlin/Native, das ehemals separate Releases hatte, erscheint mittlerweile jeweils ebenso wie Kotlin/JS zusammen mit den regulären Versionen der Programmiersprache.

Im Jahr 2017 begann zudem eine wichtige Erfolgsgeschichte: Google hat Kotlin auf der I/O-Konferenz offiziell neben Java zur Programmiersprache für Android ernannt. Zwei Jahre später erklärte der Internetriese die Programmiersprache ebenfalls auf der Google I/O zur ersten Wahl für das mobile Betriebssystem. Folgerichtig finden sich auf der Android-Developer-Site die meisten Sourcecodebeispiele standardmäßig in Kotlin.

Die Gründe dafür sind einerseits technischer Natur, was aber vermutlich nicht die einzige Motivation aufseiten Googles war. Zahlreiche große Prozesse hat der Konzern für den Einsatz von Java mit dessen Rechteinhaber Oracle ausgefochten. Kotlin ist nicht nur seit seinen frühen Zeiten eine Open-Source-Sprache, sondern JetBrains begrüßt den Einsatz unter Android.

JetBrains möchte den Geburtstag mit einigen Aktivitäten feiern und hat dazu den Twitter-Hashtag #10yearsofKotlin eingerichtet, unter dem Entwicklerinnen und Entwickler seit Mai ihre Geschichten rund um die Programmiersprache teilen.

Laut einer Mail des Toolherstellers an heise Developer plant JetBrains eine dedizierte Website zu dem Thema, die aber beim Schreiben dieser Meldung noch nicht online war. Darüber hinaus will das Unternehmen eine Dokumentation über die Geschichte der Programmiersprache als Video veröffentlichen.

Derweil sagt heise Developer: "Herzlichen Glückwunsch zum Geburtstag, Kotlin!".

(rme)