Kotlin – das Swift für Android?
Warum nicht Java?
Die digitale Welt verändert sich rasant – und genauso schnell entwickeln sich die Programmier-Sprachen. Zwischen ihnen herrscht ein ständiger Kampf, nicht zu veraltern und wettbewerbsfähig zu bleiben. Java versucht derzeit hartnäckig, die modernen Aspekte der Version 8 ins Scheinwerferlicht zu rücken. Doch leider scheinen die Android-Entwickler-Software sowie die -Endgeräte diese auch in nächster Zukunft nicht zu unterstützen.
Gibt’s Alternativen?
Ja, in der Tat gibt es Sprachen, die einen sicheren und lesbareren Code haben, indem sie überflüssigen und wiederholten Code drastisch reduzieren und dabei im Unterschied zu Java auch noch echte Wunder schaffen können. Falls Sie aktuelle Trends in der Android-Entwicklung verfolgen, haben Sie wahrscheinlich schon von den Sprachen Kotlin, Scala oder Groovy gehört. In der Community sind Gerüchte im Umlauf, dass sich Google für Swift interessiert (nur Gerüchte!). Nachdem Apple Swift als offizielle Sprache seiner Plattform vorgestellt hat, ist es eh nur eine Frage der Zeit, bis Google etwas Ähnliches tut.
Wahrscheinlicher Nachfolger
Noch vor einem Jahr sah es so aus, als gäbe es bisher keine Programmier-Sprache, die den Anforderungen genügt, die offizielle Android-Sprache zu werden. Manche Sprachen waren zu primitiv, andere zu komplex. Mit manchen lief Java Runtime oder das Exportieren aus Java nicht, andere hatten generell eine unzulängliche Interoperabilität. Auch die Sprache Kotlin, über die ich hier en detail sprechen will, war zu primitiv und fehlerhaft. Im letzten Jahr hat Kotlin jedoch ordentlich aufgeholt. Falls Google in nächster Zeit wirklich eine weitere offizielle Sprache für die Android-Plattform wählt, dann ist Kotlin (würde ich sagen) der wahrscheinlichste Kandidat dafür.
Die Vorteile von Kotlin
- Kotlin wird vom JetBrains Team entwickelt (die machen auch IntelliJ!). Das hat an sich bereits eine ganze Reihe von Vorteilen. Erstens ist der Support von Kotlin durch das Android Studio (basiert auf IntelliJ) ausgezeichnet und wird ständig überarbeitet und verbessert. Zweitens stellt Kotlin eine Industriesprache eher als akademische Sprache dar und befriedigt so die Bedürfnisse der Entwickler perfekt. Und drittens ist Kotlin eine Opensource und wird durch eine große und sich ständig erweiternde Community an Entwicklern unterstützt.
- Kotlin ist komplett interoperabel mit Java. Das heißt zum einen, dass in Kotlin geschriebene Klassen mit denen in Java funktionieren und Java-Bibliotheken genutzt werden können (ein Entwickler kann einfach das Kotlin-Projekt ins existierende Java-Projekt integrieren). Zum anderen bedeutet das auch, dass es sogar ein PlugIn zur Konversion von Java in Kotlin gibt. Diese Konversion ist nicht immer ganz exakt, aber üblicherweise sind die Ergebnisse doch sehr hochwertig.
- Kotlin können Java-Entwickler im Vergleich zu bspw. Scala viel einfacher lesen und lernen. So war ich zum Beispiel in der Lage, eine Code-Review zu machen, ohne über vertiefte Kenntnisse der Sprache zu verfügen.
- Im Vergleich mit anderen Java-Bibliotheken ist Kotlin nicht so voluminös (es hat “lediglich” 7000 Methoden).
- Und dann gibt’s auch noch ganz neue Aspekte bei Kotlin: Lambda-Ausdrücke, Null-Behandlung, Extensions, Datenklassen, optionale Argumente usw. Antonio Leiva hat eine Reihe von Artikeln über Kotlin und sogar ein Buch veröffentlicht, in dem diese Merkmale detailliert beschrieben sind. Kotlin ist eine produktive Sprache: Es hat keine überflüssigen Merkmale, die sein Erlernen unnötig verkomplizieren w ürden.
Hier gibt es einen schönen Vergleich von Kotlin mit den JVM-Alternativen. In der Gegenüberstellung kann man sehen, wie Kotlin relativ sparsam, schnell und bündig arbeitet.
Warum ist Kotlin noch ein Geheimtipp?
Also erstens ist Kotlin noch keine vollkommen entwickelte Sprache. Die erste Version (1.0) kam erst im Februar dieses Jahres raus; sie wird noch ständig weiterentwickelt. Zweitens ist Swift populärer, weil es von Apple als offizielle Sprache vorgestellt wurde. Kotlin ist fürs Erste nur ein Werkzeug für Dritte. Gerüchten zufolge schließt Google es bisher als offizielle Sprache wegen Nachteilen wie der langen Build-Dauer aus. Die Community nimmt Kotlin allerdings als sehr positiv wahr. Das bestätigen eine Menge positive Blogposts und Artikel über Kotlin, die von bekannten Entwicklern geschrieben wurden. Negative gibt es kaum. Hier ist einer vom März. Schon im Mai (nach Veröffentlichung der neuen Kotlin-Version v1.0.2) gibt der Autor eine aktualisierte Version seines Textes heraus, in der er seine Meinung über Kotlin zum Positiven geändert hat. Ich persönlich glaube, dass Kotlin nur noch ein bisschen mehr Zeit braucht, um erwachsen zu werden. Falls das Entwickler-Team von seinem guten Kurs nicht abkommt, hat Kotlin gute Chancen eine der beliebtesten Programmier-Sprachen zu werden.
Das “Swift” für Android?
Ob Kotlin tatsächlich das “Swift” für Android wird? Da können wir uns nicht sicher sein … Doch Kotlin hat viele ähnliche Eigenschaften. Es ist modern, einsetzbar in der Industrie, objekt- und funktionsorientiert. Es ist kompatibel mit der vorherigen Plattform-Sprache Java (genauso wie Swift mit Objective-C kompatibel ist) und funktioniert sehr gut mit den populärsten IDE und Build-Systemen. Kotlin erfährt ständige Unterstützung durch die Community und seine Schöpfer. Kotlin und Swift haben sogar eine ziemlich ähnliche Syntax – was auch von großem Vorteil ist, denn die iOS-Entwickler können den Android-Code einfach lesen (und umgekehrt). Und das ist umso besser für Lead-Entwickler bei der Steuerung von Multiplattform-Projekten. Doch Kotlin wird nicht den Ruhm von Swift erlangen, solange Google es nicht anerkennt. Wäre die Anerkennung denn überhaupt ein wahrscheinliches Szenario in nächster Zukunft? Ich glaube ja. Der Fortschritt, den Kotlin im letzten Jahr gemacht hat, ist imposant. Unser Team beginnt gerade, zwei neue Projekte vollständig in Kotlin zu schreiben. Wir sind begeistert, obwohl wir die Mängel der Sprache nicht außer Auge lassen. Jetzt heißt es abwarten. Die Zeit wird es zeigen, wie weit Kotlin is bringen wird.
EDIT Mai 2017: Google erkannte Kotlin als offizielle Sprache für die Entwicklung an der Android-Plattform an!