Kotlin: Programmiersprache für die App-Entwicklung und für viele weitere Aufgaben
Wenn Sie ein Computerprogramm erstellen möchten, haben Sie die Auswahl aus unzähligen verschiedenen Programmiersprachen. Manche von ihnen – wie etwa C, C++ oder Java – sind bereits seit Jahrzehnten in Gebrauch. Dennoch kommen sie auch heute noch bei vielen Anwendungen zum Einsatz. Andere Sprachen wie etwa Python verfolgen einen moderneren Ansatz und finden immer häufiger Verwendung. Eine der neuesten Erscheinungen ist die Programmiersprache Kotlin. Diese wurde erst vor wenigen Jahren entwickelt. Daher ist sie den meisten Menschen, die sich bislang noch nicht allzu intensiv mit der Informatik befasst haben, noch unbekannt. Dennoch spielt sie bereits jetzt eine bedeutende Rolle – insbesondere für die Entwicklung von Android-Apps.
Wenn Sie bislang noch keine Erfahrung mit Kotlin gesammelt haben und sich fragen, was hinter dieser Technik steckt, gibt dieser Artikel eine Antwort darauf. Er stellt die Entstehungsgeschichte, die wesentlichen Eigenschaften und die Anwendungsmöglichkeiten von Kotlin vor. Zum Abschluss erhalten Sie noch einige einfache Programmbeispiele, sodass Sie einen Eindruck von der Syntax der Sprache erhalten.
Die Entstehungsgeschichte der Programmiersprache
Die Entwicklung von Kotlin begann um das Jahr 2010. Verantwortlich hierfür war das Unternehmen JetBrains, dessen Hauptsitz sich im russischen St. Petersburg befindet. Dieser Ursprung wird auch am Namen der Programmiersprache ersichtlich: Kotlin ist eine kleine Insel in der Ostsee, die der Millionenstadt vorgelagert ist. Nach einer Entwicklungszeit von rund einem Jahr stellte JetBrains das entsprechende Projekt der Öffentlichkeit vor. Bei dieser ersten Erscheinung handelte es sich jedoch noch nicht um eine stabile Version.
Als Grund für die Gestaltung der neuen Sprache gab der leitende Entwickler Dmitry Jemerow an, dass es bislang nur eine einzige Sprache gebe, die den Anforderungen im Unternehmen gerecht werde: Scala. Diese zeichnet sich jedoch durch eine sehr langsame Kompilierung aus. Daraus geht hervor, welche Ziele die neue Programmiersprache haben sollte. Ihr Funktionen und Eigenschaften sollen sich an Scala orientieren. Darüber hinaus wollten die Entwickler eine schnelle Kompilierung erreichen – wie dies beispielsweise bei der Verwendung von Java möglich ist.
Die erste stabile Version erschien 2016. Obwohl die Veröffentlichung erst wenige Jahre zurückliegt, kann Kotlin bereits beeindruckende Nutzungszahlen aufweisen. Das zeigt, welches Potenzial in dieser Sprache steckt. Daher kann es für Programmieranfänger, die eine zukunftsorientierte Sprache lernen möchten, eine gute Wahl darstellen, mit Kotlin zu beginnen.
Für welche Aufgaben lässt sich Kotlin einsetzen?
Wenn Sie sich fragen, für welche Aufgaben sich die Verwendung von Kotlin anbietet, dann ist es sinnvoll, bei einem technischen Detail zu beginnen: Kotlin wird bei der Kompilierung in Java-Bytecode übersetzt. Dieser lässt sich dann auf der Java Virtual Machine ausführen. Das hat zur Folge, dass sich Kotlin genau für die gleichen Anwendungen anbietet wie Java. Daher wäre es möglich, jedes beliebige Java-Programm durch ein Kotlin-Programm zu ersetzen.
Deshalb sind auch die Anwendungsmöglichkeiten genau die gleichen wie bei Java. Die Programmiersprache Java verdankt ihren großen Erfolg in erster Linie kleinen Internetanwendungen, die sich in eine Webseite einbinden lassen – sogenannten Java-Applets. Diese Technik gilt mittlerweile jedoch als überholt, sodass sie nicht mehr zum Einsatz kommt. Stattdessen hat sich Java zu einer der beliebtesten Programmiersprachen für Desktop-Anwendungen entwickelt. Außerdem kommt diese Sprache bei der Entwicklung von Android-Apps häufig zum Einsatz. Kotlin bietet sich ebenfalls zum Erstellen von Desktop-Anwendungen an. Von besonderer Bedeutung ist Kotlin jedoch für die App-Entwicklung. In diesem Bereich steigt die Nutzung immer stärker an, sodass Kotlin im Begriff ist, Java in diesem Bereich den Rang abzulaufen.
Kotlin und Java im Vergleich
Aufgrund der identischen Anwendungsmöglichkeiten von Java und Kotlin ist es sinnvoll, diese beiden Sprachen miteinander zu vergleichen. Zunächst sei gesagt, dass Java-Code und Kotlin-Code nicht kompatibel zueinander sind. Das heißt, dass Sie die beiden Sprachen innerhalb der gleichen Datei nicht mischen dürfen. Allerdings besteht eine Interoperabilität. Das bedeutet, dass Sie die beiden Sprachen für das gleiche Projekt verwenden können – beispielsweise indem Sie eine Klasse in Java erstellen und eine andere in Kotlin. Das bietet insbesondere interessante Möglichkeiten für die Erweiterung bestehender Java-Projekte. Hierbei stellt es kein Problem dar, die Erweiterungen in Kotlin zu schreiben. Das Ergebnis nach dem Kompilieren ist dabei genau das gleiche. Das bedeutet, dass bei der Anwendung später keinerlei Unterschiede zwischen den Teilen, die in Kotlin und Java geschrieben sind, bemerkbar sein werden.
Wenn Sie sich mit den Unterschieden zwischen Java und Kotlin befassen, dann fällt in erster Linie ins Auge, dass der Code in Kotlin deutlich einfacher und kompakter ist. Viele Dinge, die in Java verpflichtend sind, können Sie in Kotlin einfach weglassen. Ein Beispiel hierfür sind die kontrollierten Ausnahmen. Für viele Aufgaben ist es in Java zwingend erforderlich, Ausnahmen für eventuelle Laufzeitfehler zu erstellen. Das führt nicht nur zu einem sehr langen Code. Darüber hinaus macht dies den Einstieg insbesondere für Anfänger sehr schwer. Es kommt hinzu, dass die Behandlung der Ausnahmen nicht immer notwendig ist. In Kotlin überprüft der Compiler hingegen nicht, ob alle theoretisch möglichen Ausnahmen im Programm behandelt werden. Das erlaubt auf der einen Seite eine deutlich schnellere und einfachere Programmerstellung. Auf der anderen Seite führt das dazu, dass die Programme weniger robust sind. Das macht deutlich, das dieser Unterschied sowohl Vor- als auch Nachteile mit sich bringt.
Die Sprache Kotlin ist – ähnlich wie beispielsweise Python – so gestaltet, dass die Syntaxregeln so einfach wie möglich sind, um Fehler zu vermeiden. Um einen Befehl zu beenden, ist hierbei beispielsweise im Gegensatz zu vielen anderen Programmiersprachen kein Semikolon notwendig. Ein Zeilenumbruch ist hierfür ausreichend. Außerdem sind die Befehle einfach und intuitiv. Das führt dazu, dass es mit Kotlin recht leicht ist, das Programmieren zu erlernen. Auch wenn Sie bereits Erfahrungen in einer anderen Programmiersprache – wie etwa in Java – gesammelt haben, ist es ohne große Probleme möglich, nachzuvollziehen, welche Aufgaben ein Kotlin-Programm ausführt. Das führt gewöhnlich zu einer steilen Lernkurve, sodass Sie mit Kotlin recht schnell große Fortschritte erzielen.
Kotlin ist genau wie Java stark am Paradigma der objektorientierten Programmierung orientiert. Das bedeutet beispielsweise, dass Sie Klassen für verschiedene Objekt-Typen erzeugen und Vorgaben für deren Eigenschaften und Anwendungsmöglichkeiten machen können. Das gesamte Projekt wird dann anhand dieser Klassen strukturiert. Hierbei handelt es sich um eine beliebte Vorgehensweise, die mittlerweile zum Standard in der modernen Informatik zählt. Allerdings gewinnen inzwischen auch einige andere Ansätze an Bedeutung – beispielsweise die funktionale und die prozedurale Programmierung. Obwohl neuere Java-Versionen in dieser Hinsicht eine größere Flexibilität aufweisen und einige Aspekte dieser Ansätze unterstützen, geht Kotlin hierbei einen erheblichen Schritt weiter. Zwar können Sie auch in Kotlin nicht alle Elemente der funktionalen Programmierung nutzen. Doch sind die Möglichkeiten hierfür deutlich umfassender als in Java. Wenn Sie ein funktionales Programm für die Java-Laufzeitumgebung schreiben möchten, stellt daher Kotlin die deutlich bessere Wahl dar als Java.
Kotlin: bevorzugte Sprache für die Entwicklung von Android-Apps
Von besonderer Bedeutung ist die Programmiersprache Kotlin für die Entwicklung von Smartphone-Apps für das Betriebssystem Android. Daher soll dieser Aspekt noch etwas ausführlicher besprochen werden.
Als Google das Betriebssystem Android entwickelte, beschloss das Unternehmen, hierbei auf die Java-Technologie zurückzugreifen. Es entwickelte die Laufzeitumgebung Android Runtime, die im Wesentlichen auf der Java-Laufzeitumgebung aufbaut. Das führt dazu, dass viele Programmierer Java für die Entwicklung von Apps für dieses Betriebssystem nutzten. Zwar bestehen auch noch einige weitere Möglichkeiten – beispielsweise die App-Entwicklung in C++ – doch kommen diese nur vergleichsweise selten zum Einsatz. Außerdem förderte Google die Verwendung von Java, indem das Unternehmen diese Technik zur bevorzugten Programmiersprache für Android-Apps erklärte.
Es wurde bereits erklärt, dass sich Kotlin genau für die gleichen Anwendungen wie Java eignet, da diese Sprache ebenfalls Java-Bytecode erzeugt. Daher liegt es auf der Hand, dass es auch möglich ist, Kotlin für die Entwicklung von Android-Apps einzusetzen. Google erkannte das Potenzial der neuen Programmiersprache schnell und beschloss, ihre Verwendung für die Entwicklung von Android-Apps zu fördern. 2017 – nur rund ein Jahr nach der Veröffentlichung der ersten stabilen Version – erklärte Google offiziell, dass die Verwendung von Kotlin unterstützt wird. Das zeigt sich unter anderem an den Anpassungen an der Android-Entwicklungsumgebung Android Studio. Diese Software ermöglicht es seither, Apps in Kotlin zu erstellen. 2019 ging Google noch einen Schritt weiter. In diesem Jahr erklärte der Konzern Kotlin zur bevorzugten Programmiersprache und gab ihr damit einen höheren Stellenwert als Java. Zwar verwenden die meisten Android-Entwickler nach wie vor Java. Die steigenden Nutzungszahlen und die immer intensivere Unterstützung durch Google zeigen jedoch, dass der Trend eindeutig zu Kotlin geht. Wenn Sie vorhaben, Smartphone-Apps zu gestalten, bietet es sich daher an, von Anfang an Kotlin zu lernen.
Einfache Programmbeispiele in Kotlin
Zum Abschluss sollen noch einige Programmbeispiele in Kotlin vorgestellt werden. Dabei handelt es sich zwar um sehr einfache Funktionen, doch sollen sie einen ersten Eindruck davon geben, wie Kotlin-Programme aufgebaut sind und welche Syntax sie verwenden. Wenn Sie die Programmbeispiele selbst ausprobieren möchten, müssen Sie einen Kotlin-Compiler auf Ihrem Computer installieren. Die Installationsanleitung und Hinweise zur Verwendung finden Sie unter dem folgenden Link: https://kotlinlang.org/docs/tutorials/command-line.html.
Hallo-Welt-Programm
Fast jeder Programmierkurs beginnt mit einem Hallo-Welt-Beispiel – einem einfachen Programm, dessen einzige Aufgabe darin besteht, die Begrüßungs-Floskel „Hallo Welt!“ auszugeben. Dieses sieht in Kotlin wie folgt aus:
Die Funktion main() stellt immer den Einstiegspunkt in ein Kotlin-Programm dar. Dieses Beispiel zeigt, dass diese nicht innerhalb einer Klasse steht. Das stellt einen erheblichen Unterschied zu Java dar. Außerdem wird die Funktion automatisch als statisch erkannt. Eine explizite Auszeichnung wie in Java ist daher nicht notwendig. Bereits an diesem einfachen Hallo-Welt-Programm wird deutlich, dass es mit Kotlin möglich ist, wesentlich kompakteren Code als in Java zu erzeugen und damit die gleiche Aufgabe zu erfüllen. Wie dieses Programm über die Konsole ausgegeben wird, sehen Sie in der folgenden Abbildung.
Ein Programm mit Variablen und einfachen if-Abfragen
Im nächsten Schritt erzeugen wir ein kleines Programm, das eine Variable verwendet und mit dieser eine if-Abfrage zur Steuerung des Programms erstellt:
Dieses Beispiel zeigt, dass der Variablentyp in Kotlin erst nach dem Variablennamen angegeben wird. Außerdem kommt hierbei ein Doppelpunkt zum Einsatz. Die entsprechende Variablendeklaration wird mit dem Begriff var eingeleitet. Dieser Aufbau stellt einen wesentlichen Unterschied zu den meisten übrigen gängigen Programmiersprachen dar. Darüber hinaus ist eine genaue Festlegung des Typs nicht immer notwendig. Wenn sich dieser aus dem Kontext erschließen lässt, können Sie auf die entsprechende Angabe verzichten.
Die if-Abfrage ist in Kotlin hingegen gleich aufgebaut wie in Java und in den meisten anderen gängigen Programmiersprachen. Es ist möglich, mehre Auswahlmöglichkeiten mit else if und else zu erstellen. Die Bedingung steht dabei stets in einer Klammer. Wenn sie nur mit einem einzigen Kommando verknüpft ist, können Sie auf die geschweifte Klammer verzichten. Bei mehrzeiligen Befehlen müssen Sie diese jedoch zwingend verwenden. Tun Sie dies nicht, werden die Befehle ab der zweiten Zeile nicht mehr in Beziehung zu der Bedingung gesetzt.
Programm mit Funktionen
Zum Schluss soll noch die Verwendung von Funktionen in Kotlin kurz vorgestellt werden. Dazu erstellen wir das folgende Beispielprogramm:
Die Funktion addieren() zeigt, dass der Aufbau und der Aufruf von Funktionen in Kotlin in der Regel sehr ähnlich abläuft wie in Java und vielen anderen Programmiersprachen. Um eine Funktion zu erstellen, müssen Sie in der ersten Zeile die Typen von Rückgabe- und Übergabewerten angeben. Beachten Sie auch hierbei die Besonderheit von Kotlin, dass die Datentypen erst nach dem Variablennamen angegeben werden. Das Gleiche gilt auch für Funktionen: Hier steht der Typ des Rückgabewerts ebenfalls erst ganz am Ende nach einem Doppelpunkt.
Daraufhin folgt eine geschweifte Klammer, in der Sie Berechnungen ausführen können. Wenn Sie einen Rückgabewert vorgegeben haben, müssen Sie das return-Statement zwingend anbringen.
Es gibt aber noch eine kompaktere Möglichkeit, um Funktionen zu definieren – vorausgesetzt, dass diese nur aus einem Befehl bestehen. Die Funktion multiplizieren() zeigt dies. Selbstverständlich wäre es möglich, diese genau nach dem gleichen Muster aufzubauen wie die Funktion addieren(). Bei einzeiligen Funktionen können Sie aber auf die Angabe des Typs des Rückgabewerts, auf die geschweifte Klammer und auf das return-Statement verzichten. Stattdessen weisen Sie den Rückgabewert direkt der Funktion zu. Das führt zu einer sehr kompakten Schreibweise.
Fazit: Kotlin als praktische Alternative zu Java
Die Beschreibung der Programmiersprache Kotlin hat gezeigt, dass sich diese für vielfältige Aufgaben anbietet – von der Erstellung von Desktop-Programmen bis hin zur Entwicklung von Android-Apps. Beim Kompilieren wird sie in Java-Bytecode übersetzt. Das bedeutet nicht nur, dass eine Interoperabilität zu Java gegeben ist, sodass Sie Programmbestandteile in den verschiedenen Sprachen kombinieren können. Darüber hinaus lässt sich jedes Java-Programm durch ein Programm, das in Kotlin verfasst ist, ersetzen. Daher stellt Kotlin in erster Linie eine konkurrierende Technologie zu Java dar.
In den Programmbeispielen wurde deutlich, dass Kotlin einen wesentlich einfacheren und kompakteren Code erfordert als Java. Das gestaltet die Programmerstellung erheblich effizienter. Außerdem fällt Anfängern der Einstieg dadurch leichter. Das führt dazu, dass Kotlin immer häufiger zum Einsatz kommt. Auch Google hat dies erkannt und bevorzugt mittlerweile Kotlin vor Java für die Entwicklung von Android-Apps. Wenn Sie eine Programmiersprache mit hohem Potenzial für die Zukunft erlernen möchten, stellt Kotlin daher eine ausgezeichnete Wahl dar.