Was ist Kotlin?
Objektorientierter und funktionaler Programmierparadigmen kombiniert
In der Entwickler-Community hat sich Kotlin sehr schnell verbreitet, besonders durch die Unterstützung durch google. Viele Talente fragen sich trotzdem, was ist Kotlin? Warum bekommt die Sprache so viel Aufmerksamkeit? In diesem Text werden die Ursprünge der Programmiersprache Kotlin, ihre Funktionen und Anwendungen in verschiedenen Bereichen der Datenverarbeitung und der Unterschied zu Java erläutert.
Was ist Kotlin?
Kotlin ist eine statisch typisierte, höhere Programmiersprache, die Merkmale objektorientierter und funktionaler Programmierparadigmen kombiniert.
Die Programmiersprache Kotlin wurde von JetBrains, einem multinationales Software-Unternehmen entwickelt. Von diesem Unternehmen stammt auch die beliebte Java-Entwicklungsumgebung IDE IntelliJ IDEA. Weil die Sprache hauptsächlich von JetBrains-Programmierern in Sankt Petersburg entwickelt wurde, nannten Sie die Sprache Kotlin, nach einer vor der Stadt liegenden Insel.
Das Projekt erschien erstmals im Jahr 2011, als JetBrains eine neue Sprache einführte, die über Funktionen verfügte, die in anderen Programmiersprachen nicht vorhanden waren. Im Jahre 2012 hat JetBrains dieses Projekt unter der Apache 2-Lizenz als Open Source bereitgestellt.
Die erste stabile Version, Kotlin v1.0, wurde im Februar 2016 veröffentlicht. Die neueste Version ist zum Zeitpunkt des Verfassens dieses Artikels v1.3, die im Oktober 2018 veröffentlicht wurde.
Syntax und funktionale Programmierung
Die Syntax dieser Sprache ist sehr kurz und aussagekräftig. Der Code kombiniert die Merkmale objektorientierter und funktionaler Programmierstile, im Gegensatz zu Java, das bis JDK 7 keine Unterstützung für funktionale Programmierung bot.
Kotlin fügt einige Funktionen der funktionalen Programmierung wie Lambdas im JDK 8 hinzu. Die Sprache folgt jedoch vollständig den Mustern der funktionalen Programmierung von Anfang an. Aus diesem Grund kann es mit weniger Codezeilen eine höhere Codeeffizienz bieten als Java.
Kotlin enthält verschiedene Funktionen der funktionalen Programmierung wie zum Beispiel Lambda-Ausdrücke, Closure Tails, Funktionen höherer Ordnung, Inline-Funktionen, anonyme Funktionen, Generika und Rekursion.
Der Kotlin-Quellcode wird wie Java zunächst in Bytecode konvertiert und auf einer Java Virtual Machine (JVM) ausgeführt, unabhängig von einer externen Umgebung oder einem externen Betriebssystem. JVM ist die virtuelle Maschine, mit der das Betriebssystem Programme ausführen kann, die in Java oder einer anderen kompatiblen Programmiersprache geschrieben sind, deren Code in Java-Bytecode kompiliert ist.
Interoperabilität mit Java
Kotlin bietet vollständige Interoperabilität mit Java. Der Code kann leicht von Java aus aufgerufen werden, ebenso kann bestehender Java-Code problemlos von Kotlin aus aufgerufen werden.
Kotlin-Code kann auch in JavaScript-Quellcode kompiliert werden. Es ermöglicht einem Programmierer, seinen Quellcode in Javascript-Code umzuwandeln.
Ein Transpiler (auch Transcompiler genannt) ist ein Source-to-Source-Compiler, der den Quellcode einer Programmiersprache als Eingabe verwendet und den entsprechenden Quellcode einer anderen Programmiersprache als Ausgabe erzeugt.
Offizielle Sprache für Android
Auf der Entwickler-Konferenz 2017 hat Google Kotlin als offizielle Programmiersprache für die Android-Plattform anerkannt. Damit ist Kotlin die dritte offizielle Sprache der Android-Plattform neben Java und C ++.
Bis Anfang 2016 war Kotlin nur eine optionale Programmiersprache für Android. Dann entschied sich Google, zusammen mit JetBrains die Grundlagen dieser Sprache weiterzuentwickeln. Ab der Version 3.0 der Android-Studio-Entwicklungsumgebung haben Benutzer nun die Möglichkeit, Java oder aber auch Kotlin für die Entwicklung von Android-Apps auszuwählen.
Auf der Entwicklerkonferenz I/O 2019 hat google Kotlin sogar zur präferierten Programmiersprache für Android ernannt.
Was ist der Unterschied zwischen Kotlin und Java?
Heute wird Android Studio mit integrierter Kotlin-Unterstützung ausgeliefert. Das Erstellen eines Android-Projekts, das Kotlin-Code versteht, ist daher so einfach wie das Aktivieren eines Kontrollkästchens im Projekterstellungsassistenten von Android Studio. Doch welche Funktionen hat Kotlin, die Java nicht hat?
Hier sind die wichtigsten Unterschiede:
- Wenn Du eine Kotlin-Klasse mit einer Java-Klasse vergleichst, die die gleiche Aufgabe erfüllt, ist die Kotlin-Klasse im Allgemeinen sehr viel prägnanter. Insbesondere die Menge des in Kotlin zu schreibenden Codes lässt sich erheblich reduzieren.
- Kotlin bietet Entwicklern die Möglichkeit, eine Klasse mit neuen Funktionen zu erweitern. Diese Erweiterungsfunktionen gibt es auch in anderen Programmiersprachen, in Java sind sie jedoch nicht verfügbar.
- Die folgenden Kotlin-Funktionen sind in Java derzeit außerdem nicht vorhanden:
- Lambda-Ausdrücke
- Kontrollstrukturen
- Erweiterungsfunktionen
- Null-Sicherheit
- String-Vorlagen
- Primäre Konstruktoren
- Erstklassige Delegation
- Typinferenz für Variablen- und Eigenschaftstypen
- Abweichung der Deklarationsstelle und Typprojektionen
- Bereichsausdrücke
- Bedienerüberladung
- Begleitobjekte
- Datenklassen
- Separate Schnittstellen für schreibgeschützte und veränderbare Sammlungen
- Coroutinen
- Im Gegensatz zu Java kann eine Kotlin-Klasse einen primären Konstruktor und einen oder mehrere sekundäre Konstruktoren haben. Es ist auch nicht ungewöhnlich, dass ein Projekt mehrere Klassen hat, die nur Daten enthalten. In Java wirst Du feststellen, dass Du eine Menge Code für diese Klassen schreiben musst, obwohl die Klassen selbst sehr wenig Funktionalität besitzen.
- Im Gegensatz zu Java unterstützt Kotlin das Entwurfsmuster “Komposition über Vererbung” über erstklassige Delegation (manchmal auch als implizite Delegierung bezeichnet). Bei der Delegierung delegiert ein empfangendes Objekt Vorgänge an ein zweites Delegierungs-Objekt, das ein Hilfsobjekt mit dem ursprünglichen Kontext ist.
- Kotlin unterstützt alle vorhandenen Java-Frameworks und -Bibliotheken, einschließlich erweiterter Frameworks, die auf der Verarbeitung von Anmerkungen basieren, obwohl einige Java-Bibliotheken bereits Kotlin-Erweiterungen wie RxKotlin bereitstellen.
Wie kann ich Kotlin beim Entwickeln nutzen?
Kotlin ist ähnlich wie Java eine sehr leistungsfähige und zuverlässige Sprache. Doch Kotlin ist übersichtlicher und effizienter als Java und andere Programmiersprachen. Besonders für die Entwicklung mobiler Apps hat Google Kotlin als offizielle Sprache für Android ausgewählt.
Dies hat jedoch keine Auswirkungen auf die Beliebtheit von Java, da Google Java für Android weiterhin unterstützt und dies auch weiterhin tun wird. Das Betriebssystem Android basiert weitgehend auf Java. Java wird also weiter existieren. Kotlin und Java werden in den kommenden Jahren von Google parallel unterstützt.
Kotlin wird von Jahr zu Jahr beliebter und findet eine größere Verbreitung. Im Jahr 2021 rangiert Kotlin bereits auf Rang 15 der beliebtesten Programmiersprachen:
Find more statistics at Statista
Wenn Du über die Verwendung von Kotlin oder Java für die Android-Entwicklung nachdenkst, solltest Du Dir bewusst sein, dass es eine dritte Option gibt: Die Verwendung von Java und Kotlin.
Flexibität im Umgang mit Java und Kotlin
Trotz aller Unterschiede zwischen den beiden Sprachen sind Java und Kotlin zu 100 Prozent interoperabel. Du kannst Kotlin-Code von Java aus aufrufen und Du kannst Java-Code von Kotlin aus aufrufen. Es ist außerdem möglich, Kotlin- und Java-Klassen im selben Projekt nebeneinander zu haben, und alles wird weiterhin kompiliert.
Diese Flexibilität beim Wechseln zwischen den beiden Sprachen ist hilfreich. Wenn Du mit Kotlin beginnst, kannst Du die Sprache schrittweise in ein vorhandenes Projekt einführen. Du kannst jedoch auch beide Sprachen dauerhaft nebeneinander verwenden.
Bestimmte Funktionen möchtest Du vielleicht in Kotlin schreiben, andere Vielleicht in Java. Da Kotlin und Java beide zu Bytecode kompiliert werden, können die Endbenutzer nicht erkennen, wo der Java-Code endet, und der Kotlin-Code beginnt. Es gibt also keinen Grund, warum Sie eine App, die aus Java und Kotlin besteht, nicht freigeben werden soll.
Update 2022: Kotlin lernen
Wenn du Kotlin lernen möchtest, braucht es dafür keine teuren, kostenpflichtigen Kurse. Du solltest dir auf jeden Fall die folgenden – kostenlosen – Videos anschauen:
Fazit
Wie Du siehst, gibt es viele gute Gründe, Kotlin Java vorzuziehen. Doch es gibt auch einige Bereiche, in denen Java besser ist. Der wichtigste Grund ist vielleicht: Viele Entwickler sind einfach besser mit Java vertraut. Wahrscheinlich wird die Debatte zwischen Kotlin und Java nicht so schnell beigelegt, da beide Sprachen ihre Vor- und Nachteile haben.
Rückmeldungen