Wenig Code, viel Ergebnis: Die junge, objektorientierte Programmiersprache Kotlin stellt die Entwickler-Welt auf den Kopf. 3m5.-Developer Stefan Beyer hat sie schnell kennen und vor allem: lieben gelernt. Protokoll einer Passion.
Goethe liebte Capri. Farin Urlaub liebt Westerland. Ich liebe Kotlin. Das ist eine kleine Insel vor Sankt Petersburg. Laut Google Maps führt die A118 einmal quer drüber, ansonsten sieht sie recht grün und unspektakulär aus. Aber wie es sich für eine Liebe gehört, die alles bisher Dagewesene nichtig erscheinen lässt, geht es mir bei Kotlin nicht um Äußerlichkeiten. Sondern um das, wofür ihr Name steht: die beste Programmiersprache, die ich kenne (und ich kenne einige). Weil für Java einst die vulkanreiche Insel zwischen Sumatra und Bali Namenspatin stand, heißt sie in Anlehnung daran eben: Kotlin.
Die russischen Programmierer Sergey Dmitriev, Eugene Belyaev, Valentin Kipiatkov, Roman Elizarov und Andrey Breslav haben Kotlin mit ihrem Software-Unternehmen JetBrains entwickelt – ursprünglich nur, um ihre eigenen Entwicklungsumgebungen zu vereinfachen. Vorher programmierten sie mit Java und nativen Elementen. Sie erfanden Kotlin, weil sie die hohe Kompilierfähigkeit von Java liebten, es aber satt hatten, Massen an Code zu schreiben für selbstverständliche Befehle. Vorher versuchten sie noch, ob nicht Sprachen wie Scala oder Groovy gut genug sein könnten – mit dem Fazit: nein, ebenfalls noch zu umständlich.
Und in ihrer Sprache, da sollte es für „umständlich“ überhaupt keine Übersetzung geben. Sie wollten: schnell erlernbar, selbsterklärend, logisch – und open source. Also nutzten sie die besten Ansätze aller Sprachen, die sie kannten – und entwickelten daraus eine ziemlich großartige, nahezu revolutionäre, eine in die man sich eigentlich nur verlieben kann, wenn man ein Herz besitzt, das in Nullen und Einsen schlägt.
Apropos Null, das ist einer ihrer großen Trümpfe, die Nullsafety. Aber fangen wir mal generell an: Mit Kotlin kann ich direkt und knapp schreiben, statt ganz viel zu beschreiben. In Java brauche ich viel (mitunter sogar: sehr viel) Code, der dafür sorgt, dass etwas funktioniert. Kotlin ist minimalistischer: Ich schreibe nur, was ich brauche.
Nehmen wir mal an, ich möchte eine bestimmte Strecke fahren. In Kotlin schreibe ich dafür: Ich bin hier und möchte nach X. In Java dagegen: Ich bin jetzt hier, laufe zwei Meter vor, biege links ab, gehe nicht nach rechts, gehe nicht geradeaus, dann biege ich nochmal links ab ... und so weiter.
Durch die Kompatibilität zu Java kann ich auch erstmal nur einzelne Klassen, also Teile eines Projektes, in Kotlin schreiben. Denn Kotlin ist nicht eitel, nicht geltungsbedürftig, sie ist auch bei bestehenden Java-Projekten treu an der Seite des jeweiligen Entwicklers. In der Praxis sind solche Misch-Projekte, die sowohl Java-, als auch Kotlin-Code enthalten, keine Seltenheit.
Kurzer Schwenk in die Geschichte: Der britische Informatiker Tony Hoare, quasi der Erfinder des Konstruktes Null in der Programmierung, bezeichnet genau das gramvoll als „Billion Dollar Mistake“. Diese Einschätzung teile ich, denn Code mit Null ist tatsächlich fehleranfällig, und große Fehler sorgen nun einmal für große Kosten (und dadurch: graue Haare, nicht zuletzt bei Tony Hoare, schlaflose Nächte und alles, was lästige Fehler eben sonst noch tun). Immerhin erlebt der inzwischen fast 90-jährige Hoare noch, wie ein paar Kollegen im Geiste seine Nullnummer ausgebügelt haben. Denn bei Kotlin muss ich beim Deklarieren einer Variable explizit angeben, ob sie den Wert Null annehmen darf. Das ist auf mehreren Ebenen hilfreich: Für den Entwickler, der bestehenden Code ändert, und nicht darauf achten muss, noch irgendetwas abzufragen. Und für den Entwickler, der den Code schreibt, denn es zwingt ihn dazu, sich von Anfang an Gedanken über die Variablen zu machen.
JetBrains hat, als Kotlin bekannter wurde, das System Kotlin Multiplatform entwickelt, das ich liebevoll "KoMPlaP" nenne. Damit kann man beispielsweise eine App einmal in Kotlin schreiben und dann auf Windows, Linux, Mac, Android, iOS und im Web laufen lassen. Vorher musste man in der Regel dieselbe App drei- oder viermal schreiben; eine für jede Zielplattform. Mit Kotlin schreibt man nur die plattformspezifischen Aspekte separat. Die Sprache hat noch einige weitere Vorzüge, aber das sind meiner Meinung nach die wichtigsten.
Wie so oft in der Liebe: Wenn Amors Pfeil trifft, trifft er schnell. Bedeutet: Wer schon andere Sprachen beherrscht, entdeckt schnell Gemeinsamkeiten (denn für Kotlin wurden wie erwähnt gute Features anderer Sprachen kombiniert) und hat das Prinzip der Sprache schnell verstanden. Dann muss man quasi nur noch Vokabeln lernen.
Dafür bietet JetBrains sogenannte Kotlin-Koans an: Übungsaufgaben, deren Schwierigkeit sich nach und nach steigert und dem Entwickler zeigt, wie Kotlin funktioniert. Das Coole ist: Diese Aufgaben programmiert man direkt im Browser und sieht auch gleich, ob man sie richtig löst. Innerhalb eines Tages kann man die Basics lernen – man schreibt dann zwar noch im Stil seiner bisherigen Sprachen, aber wird schnell immer besser.
Es ist definitiv die eleganteste Sprache, die ich je gesehen habe. Alle Probleme, die ältere Sprachen haben, wurden aufgearbeitet und da, wo es Sinn ergibt, durch neue Konzepte ersetzt. Ich bewundere das Sprachdesign an sich, denn je länger ich Kotlin schreibe, desto lesbarer wird mein Code, ohne jede Anstrengung. Das ist besonders für Anfänger beim Coden richtig toll, denn sie werden schnell unabhängig, strukturieren ihren Code gut und können so auch besser mit erfahrenen Entwicklern zusammenarbeiten.
Die meisten glauben, Kotlin sei nur für Android, nicht zuletzt, weil Kotlin seit Anfang 2019 die von Google bevorzugte Sprache für Android-App-Entwicklung ist. Ursprünglich hat das Team von JetBrains sie aber für das Java-Ökosystem entwickelt, also für Webserver und Desktopanwendungen. Oder: genau den Bereich, den wir bei 3m5. bedienen. Wir setzen damit tolle Projekte um, weil wir das Backend mit Kotlin schreiben können, theoretisch aber auch das Frontend. Also: Kotlin ist für alle da, auch Webseiten, iOS-Apps und Co.
Ich habe inzwischen die meisten mit meiner Kotlin-Liebe angesteckt und nutze Kotlin auch privat. Bei Gamejams schreibe ich zum Beispiel meine Spiele in Kotlin und baue, um mir die Arbeit zu erleichtern, öfter kleine Tools (zum Beispiel dieses hier, das automatisch Backups von Spielständen macht). Auch bei 3m5-Projekten programmieren wir viel damit, zum Beispiel das komplette Backend unseres eigenen Intranets, unseren Slack-Bot, Teile des Codes von Professocial, einen riesigen Schließanlagenkonfigurator – denn gerade für umfangreiche Systeme ist die Sprache dank des verständlichen, einfachen Codes geeignet – und vieles mehr. Damit reihen wir uns übrigens in eine gar nicht mehr so kleine und unbekannte Anwenderschaft ein – Pinterest, Netflix, Trello, Evernote, Uber, alle lieben diese eine Insel.
Stefan Beyer ist Senior Backend-Developer. Zu Kotlin brachte ihn sein Vorsatz, zweimal im Jahr eine neue Sprache zu lernen. Ein Kollege schlug ihm vor, mit Kotlin zu beginnen. Beyer selbst dachte vorher nicht, dass die junge Sprache so relevant für die Projekte bei 3m5. sein könnte. Der Rest ist Geschichte (umhangen von rosaroten Wolken), und Beyer inzwischen ein regelrechter Kotlin-Guru, der seine Liebe auch gern öffentlich macht – zum Beispiel bei Vorträgen. Übrigens: Auch Google ist inzwischen amourös infiziert (ob von Stefan, wissen wir nicht...) und bietet seit 2019 First-Level-Support für Kotlin an.
Ab nach Sydney: Sechs Schülerinnen und Schüler eines Dresdner MINT-Gymnasiums vertreten Deutschland beim internationalen Finale des Wettbewerbs. Wir sponsern die Reisekosten.
Neos ist ein Open Source CMS, das von der Entwickler-Community lebt. Damit das CMS sich stetig weiter entwickeln kann, benötigt es viel Unterstützung. 3m5. leistet seinen Beitrag und ist nicht nur Platinum-Sponsor, sondern beteiligt sich auch in der Konzeption und Programmierung. Vom 04.10.2022 – 07.10.2022 fand in diesem Jahr der Neos-Sprint in Hamburg statt. Zwei unserer Entwickler waren mittendrin, statt nur dabei und programmierten fleißig mit am Neos Core.
Plugins sind nützliche Erweiterungen, die in der Entwicklung Zeit und Geld sparen. Die beliebstesten für das Neos CMS stellen wir Ihnen hier vor.