Die beiden Cloud-nativen Sprachen Go und Kotlin bringen ein ganzes Spektrum innovativer Features speziell für Microservices mit. Sie locken gegenüber althergebrachten Alternativen mit dem Versprechen, verteilte Anwendungsausführung auf ein neues Niveau leichtgewichtiger Elastizität zu heben. Entwickler von Cloud-Anwendungen haben jetzt wieder die Qual der Wahl.
Wer macht im Cloud-nativen Umfeld das Rennen: Go oder Kotlin?
Das Aufkommen Cloud-nativer Microservices läutet eine neue Ära der Softwareentwicklung ein. Für monolithische Anwendungen, die weder skalieren können noch selbstheilende Eigenschaften aufweisen, hat scheinbar das letzte Stündlein geschlagen.
Im Tiobe Programming Community Index ist die Stagnation der C- und Java-Sprachfamilie nicht zu übersehen. Google lanciert gleich zwei würdige Nachfolger: Go und Kotlin.
(Bild: TIOBE)
Um von der Skalierbarkeit und Kosteneffizienz von Cloud-Technologien zu profitieren, müssen Unternehmen ihre bestehenden monolithischen Anwendungen „disaggregieren“ und auch neue Entwicklungsprojekte als leichtgewichtige Microservice-Architekturen umsetzen. Das ist oft ein langer und schwieriger Prozess.
Auf in die Cloud: selbstheilende Microservices
Der Erfolg steht und fällt mit ganz grundlegenden Entscheidungen wie nicht zuletzt die Wahl der Cloud-Sprache(n). Cloud-native Anwendungen auf der Basis selbstheilender Microservice-Architekturen sind klar auf dem Vormarsch. An die verwendete Entwicklungssprache werden nun ganz andere Anforderungen gestellt.
Die Eigenschaften, die eine Programmiersprache aufweisen muss, um Microservices effizient zu implementieren, lassen sich nicht nachträglich nachrüsten; sie müssen vielmehr von Grund auf in die Sprache „hineinkonzipiert“ sein. Dazu zählen unter anderem Fähigkeiten zu massiver Automatisierung, kontinuierlicher Integration, zur Wahrung opaker Implementierungsdetails.
Leichte Beobachtbarkeit („observability“) und Dezentralisierbarkeit sowie die Fähigkeit zur eigenständigen Bereitstellung (also anders als VM-basierte Sprachen wie Clojure, Erlang oder Elixir unabhängig vom Systemunterbau) stehen bei Entwicklern ebenfalls hoch im Kurs. Das Interesse an neuartigen innovativen Sprachen wächst. Für Kotlin und Golang (kurz: Go) ist Hochkonjunktur angesagt.
Hoffnungsträger: Im Ranking der „lernwürdigsten“ Entwicklungssprachen kommen Go und Kotlin beide unter den top drei durch die Ziellinie.
(Bild: 2020 HackerRank Developers Skills Report)
Der Paradigmenwechsel hin zu Cloud-nativen Microservices reflektiert sich auch bereits in der Popularität führender Sprachen und in einer Verschiebung von Interessensschwerpunkten der betroffenen Entwickler. Im Ranking der „lernwürdigsten“ Entwicklungssprachen kommen Go und Kotlin beide unter den Top drei durch die Ziellinie.
Zu diesem Ergebnis kam HackerRank nach einer Umfrage unter 116.648 Entwicklern im März 2020. Googles bemerkenswerter Hattrick: Go hat zum dritten Mal in Folge den ersten Platz inne. Das anhaltende Interesse reflektiert weitaus mehr als bloßes Wunschdenken, denn die Popularität der beiden Sprachen wächst von Jahr zu Jahr.
Die verlockende Simplizität von Go (und ihre Schattenseite)
Go bietet eine einfache und logische Syntax zur Entwicklung von modularen Anwendungen, die in Microservice-Architekturen zur Höchstform auflaufen können. Die Sprache verbindet ihre hohe Arbeitsgeschwindigkeit mit leistungsstarker Unterstützung für Parallelität. Darüber hinaus bietet Go eine performante Standardbibliothek zum Erstellen von Webdiensten.
Durch die Verwendung eines Paketsystems kommen Entwickler schneller durch die Ziellinie. Diese Einfachheit senkt die Gesamtkosten und ermöglicht vielen Unternehmen die Entwicklung von Microservices. Alles in einem: paradiesische Zustände also? Leider gibt es bei Go einige Fallstricke. Die Sprache ist noch relativ neu und entwickelt sich (anders als Kotlin) rasant weiter.
Viele Entwickler bemängeln daran die noch unzureichende Laufzeitsicherheit. Die Laufzeitsicherheit wird hauptsächlich zum Zeitpunkt der Kompilierung überprüft und nur am Rande zur Laufzeit. Go bringt Entwicklern also vor allem einen Zeitvorsprung im Hinblick auf die verkürzte Time-to-Market resultierender Anwendungen, jedoch nicht im Hinblick auf die Sicherheit. Auch das Fehlen einer manuellen Speicherverwaltung kann zu Problemen führen.
Mit Kotlin zur Java-Interoperabilität
Bei Kotlin handelt es sich um eine statisch typisierte JVM-Sprache aus dem Hause JetBrains, die mit dem Segen von Google als eine Alternative oder Ergänzung zu Oracles Java Einsatz findet. Dank der vollständigen Interoperabilität mit Java können Entwickler je nach Bedarf abwechselnd auf Java- und auf Kotlin-Frameworks zurückgreifen und beide Sprachen in ihren Projekten ineinander verweben.
Kotlin-Code lässt sich problemlos in bestehende Java-Projekte einbinden. Dank der Unterstützung des objektorientierten wie auch des funktionalen Programmierparadigmas kann Kotlin das Beste aus beiden Welten unter einen Hut bringen. Kotlin unterstützt sowohl die LLVM-Infrastruktur als auch GraalVM. Die Sprache lässt sich u.a. zu JavaScript kompilieren oder auch in Maschinencode übersetzen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Eine neue Programmiersprache einfach so aus dem Boden zu stampfen, ist keine leichte Aufgabe. Auch JetBrains hat es ja letztendlich nur mit Googles Rückendeckung geschafft. Mit IntelliJ hat die kleine Entwicklungsschmiede eine leistungsstarke IDE-Plattform geschaffen, auf der Google sein Android Studio aufsetzt.
Java-Gewohnheiten als Kotlin-Stolperfallen
Wer in einer objektorientierten Sprache bereits bewandert ist, kann sich mit Kotlin-Code auf Anhieb auseinandersetzen und oft auch schnell damit anfreunden. Darin liegt aber auch gerade für Java-Entwickler ein kleines Problem: Wer Kotlin konzeptionell in ein klassisches Java-Korsett hineinzwängen wollte, hinterließe einen recht ungeschickten Eindruck.
Bei Kotlin gilt: zuerst gut informieren, dann etwas umdenken und erst dann coden. Kotlin erweitert das übliche Arsenal an Sprachfähigkeiten um eine Menge nützlicher Features, darunter:
vollständige Interoperabilität mit Java: Beide Sprachen lassen sich in einem gemeinsamen Projekt problemlos miteinander kombinieren; so sind Java-Frameworks in Kotlin nutzbar und umgekehrt,
null-Absicherung zum Schutz vor NullPointerExceptions (NPEs),
Funktionen höherer Ordnung und leistungsstarke Lambdas,
Koroutinen,
Typ-Aliasnamen,
Destrukturierung von Deklarationen,
Unterstützung durch JetBrains IntelliJ IDEA, Googles Android Studio, Eclipse, u.a.
Version 1.4 von Kotlin ist für das Jahr 2020 geplant; JetBrains bietet derzeit eine Vorschau mit der Bezeichnung 1.4-M1 zum Download an. Im Fokus stehen diesmal Leistungsoptimierungen für alle IDEs mit Unterstützung für Kotlin und die schrittweise Einführung des neuen Compilers. Große grundlegend neue Features für Kotlin selbst sind diesmal nicht geplant. Ein verbessertes Benutzererlebnis hat Vorrang vor weiteren Innovationen.
Die neue Compiler-Implementierung von JetBrains qualifiziert sich dennoch als ein Quantensprung.
Die Hebelwirkung des neuen Kotlin-Compilers
Der neue Kotlin-Compiler soll allem voran eine API für Compiler-Erweiterungen bereitstellen und damit ein Ökosystem rund um Kotlin schaffen. Er soll einen Performancesprung mit sich bringen und eine vereinheitlichte Basis für alle Plattformen bilden.
Andrey Breslav, Lead Language Designer von Kotlin bei JetBrains, ist für viele das Gesicht von Kotlin.
(Bild: JetBrains)
Laut Andrey Breslav, dem Lead Language Designer von Kotlin bei JetBrains, sollen einige Teile der neuen Compiler-Implementierung bereits 2020 fertig werden und in Kotlin 1.4 das Licht der Welt erblicken. Die Umstellung wird demnach in vielen kleinen Schritten vollzogen, die sich über mehrere Jahre hinausstrecken werden.
Eine gemeinsame Back-End-Infrastruktur für alle Kompilierungsziele öffnet die Tür für Multiplattform-fähige Compiler-Erweiterungen. Entwickler können in diese Pipeline künftig ihre eigenen Erweiterungen einbinden und einige benutzerdefinierte Verarbeitungen und/oder Transformationen definieren, die dann automatisch für alle Kompilierungsziele funktionieren werden.
In Kotlin 1.4 stellt JetBrains noch keine öffentliche API für solche Erweiterungen bereit (die API wird später „stabilisiert“). Das Unternehmen arbeitet jedoch eng mit Partnern wie Jetpack Compose zusammen, die bereits an ersten Compiler-Plugins tüfteln. Man darf also gespannt sein, was die Zukunft so alles bringen könnte. Eine weitere relevante Neuerung ist das Kotlin-Library-Format zur plattformagnostischen Distribution von Code.
In der aktuellen ersten öffentlichen Vorschau von Kotlin 1.4 vom Ende März 2020 können Entwickler bereits einige der neuen Features auf die Probefahrt nehmen:
der neue leistungsstarke Typinferenzalgorithmus ist standardmäßig aktiviert;
Contracts lassen sich jetzt mit nicht vererbbaren (also finalen) Mitgliedsfunktionen nutzen, zum Beispiel, um die Smartcasts-Auswertung zu verbessern oder die Variableninitialisierungsanalyse bei Vorhandensein von Funktionen höherer Ordnung zu unterstützen;
der Kotlin/JVM-Compiler erzeugt jetzt Typanmerkungen im Bytecode für Java 8+-Ziele.
für Kotlin/JS gibt es ein neues Backend mit Verbesserungen der resultierenden Artefakte
die Standardbibliothek hat zahlreiche evolutionäre Verbesserungen erfahren.
Was also grundlegend neue innovative Features darstellt, ist offenbar Ermessenssache. Die Innovationskraft und die anhaltende Beliebtheit von Kotlin machen bereits länger von sich reden. Kotlin zog kürzlich sogar an Skala und Clojure vorbei und wurde im Herbst des vergangenen Jahres zur beliebtesten JVM-Sprache, bestätigt die neueste Umfrage von Snyk von 2020.
Fazit
Mit Go und Kotlin sind zwei neue Cloud-native Sprachen entstanden, die vor lauter innovativer Features nur so strotzen. Go/golang bietet eine einfache und logische Syntax zur Entwicklung von modularen Anwendungen, die in Microservice-Architekturen zur Höchstleistung auflaufen können. Kotlin trumpft mit Java-Interoperabilität und leistungsstarken Toolchains. Die Entwickler von Microservices haben jetzt wirklich die Qual der Wahl.