Interview mit Rene Preißel auf der W-JAX 2019

Kotlin Sprachfeature: „Das Schöne an Kotlin ist, dass sich die grundlegenden Konzepte kaum von Java unterscheiden“

Katharina Degenmann

Geht es um Programmiersprachen, gibt es kaum eine Umfrage in der Kotlin nicht vertreten ist. Das könnte unter anderem den diversen Sprachfeatures geschuldet sein, die über das hinausgehen, was Java kann. Auf der W-JAX 2019 sprachen wir mit Rene Preißel (eToSquare) über den Aufstieg von Kotlin, welche Sprachfeatures in der aktuellen Version besonders interessant sind und wie der Einstieg in die Arbeit mit Kotlin am besten gelingt.

JAXenter: Hallo Rene, vielen Dank, dass du dir Zeit genommen hast. In Deiner Session auf der W-JAX 2019 sprichst Du Kotlin. Kotlin gilt als Java-Nachfolger im Enterprise-Bereich. Woher kommt das?

Rene Preißel: In der Enterprise-Entwicklung mit Java sind wir seit Jahren (Jahrzehnten) viel Boilerplate-Code gewöhnt. Angefangen bei den ersten EJB-Versionen über Spring mit XML bis zu Spring-Boot ging es darum, unnötigen Code bzw. Konfigurationen zu minimieren. Das hat Spring-Boot mit den Mitteln von Java auch perfektioniert. Doch jetzt stößt man an die Grenzen der aktuellen Java-Syntax. Zum Beispiel muss jede öffentlich Klasse in einer eigenen Datei liegen. Für kompakte APIs wäre es lesbarer, die Request- und Response-Klassen
direkt neben den Service zu legen. Auch ein etwas funktionalerer Ansatz, anstatt des Einsatzes vieler Annotations, würde bessere Nachvollziehbarkeit bringen. Das und mehr bietet Kotlin.

Dass das Spring-Framework seit einigen Versionen mit Erweiterungen für Kotlin kommt und seit neuesten die Dokumentation auch für Kotlin angepasst wurde, hilft bei der Argumentation für Kotlin. Dabei ist der Schritt zu Kotlin relativ risikoarm. Java und Kotlin laufen in einem Projekt sehr gut parallel zusammen. Es dauert auch nur wenige Tage, um mit Kotlin produktiv zu sein und mit noch mehr Spaß zu programmieren.

Ich glaube, dass die frühe Möglichkeit, moderne Sprachfeatures mit Java 1.6 und damit auch auf alten Android-Versionen zu nutzen, den rasanten Aufstieg von Kotlin ermöglicht hat.

JAXenter: Kotlin mischt gerade die Android-Entwicklung auf, die sonst Java spricht. In diesem Jahr wurde Kotlin von Google sogar zur first-class-Sprache für Mobile-Apps auf dem Android-Betriebssystem auserkoren. Worin liegen Deiner Meinung nach, die Vorteile von Kotlin in der Mobile-Entwicklung?

Rene Preißel:
Tatsächlich habe ich Kotlin im Backend im Einsatz und nur am Rande mal mit Mobile-Apps zu tun. Ich glaube, dass die frühe Möglichkeit, moderne Sprachfeatures mit Java 1.6 und damit auch auf alten Android-Versionen zu nutzen, den rasanten Aufstieg von Kotlin ermöglicht hat. Mit Kotlin ist es ausserdem sehr einfach möglich, eigene DSLs umzusetzen. Und im Umfeld von mobilen Apps gibt es jede Menge technischer Domänen, die davon profitieren.

JAXenter: Im August ist Kotlin 1.3.50 erschienen. Was ist Deiner Meinung nach das wichtigste Sprachfeature von Kotlin?

Rene Preißel: Die Auswahl fällt schwer. Die Syntax profitiert am meisten von Trailing Lambdas und Extension-Funktionen. Beim Aufruf einer Funktion mit einem „Trailing Lambda“ kann man dieses Lambda nach den Parameter-Klammern angeben. Dadurch wird es möglich, eigene Kontrollstrukturen umzusetzen. Mit Extension-Funktionen kann man vorhandene Klassen um neue Funktionen erweitern. Dadurch wird der Code lesbarer und Library- und Framework-Entwickler bekommen ganz neue Möglichkeiten der Erweiterbarkeit und Modularisierung. Trailing Lambdas und Extension-Funktionen zusammen erlauben die Umsetzung von internen DSLs und führen dazu, das der Kotlin-Code kompakter und lesbarer wird.

Gerade die Beschränkung auf ein verständliches Typsystem macht Kotlin so attraktiv für Java-Entwickler.

JAXenter: Wie gelingt der Einstieg in Kotlin am besten – hast Du Tipps?

Rene Preißel: Das Schöne an Kotlin ist, das die grundlegenden Konzepte sich kaum von Java unterscheiden. Man muss sich zwar an einigen Stellen an neue Syntax gewöhnen, doch das gesamte Ökosystem und die Art, wie man seinen Code strukturiert ist sehr ähnlich. Das macht den Einstieg sehr leicht und schnell. Nach maximal 1-2 Tagen kann man produktiv arbeiten. Ich finde die offizielle Seite von Kotlin bereits sehr gelungen, um die Sprache kennenzulernen. Wer die neuen Syntax-Möglichkeiten im Einsatz sehen will, sollte sich Beispiele von und mit Ktor – einem asynchronen Webframework – anschauen.

JAXenter: Gibt es aktuell noch Features, die Dir fehlen?

Rene Preißel: Im ersten Moment wollte ich „richtiges“ Pattern Matching, wie man es aus funktionalen Sprachen kennt, auswählen. Doch das würde vermutlich mit großen Erweiterungen des Typsystems einhergehen müssen – und gerade die Beschränkung auf ein verständliches Typsystem macht Kotlin so attraktiv für Java-Entwickler. In Kotlin kann man mit Destructuring, Sealed Classes und When-Statement bereits viele Probleme aus der Pattern-Matching-Domäne lösen und vollständiges Pattern Matching ist mir dann doch nicht so wichtig.

JAXenter: Vielen Dank für das Interview!

René Preißel arbeitet als selbstständiger Softwarearchitekt, Entwickler und Trainer. Seine Schwerpunkte liegen in den Bereichen Softwarearchitektur, Java-Technologien und Konfigurationsmanagement.
W-JAX 2019 Java-Dossier für Software-Architekten

Kostenlos: Java-Dossier für Software-Architekten 2019

Auf über 30 Seiten vermitteln Experten praktisches Know-how zu den neuen Valuetypes in Java 12, dem Einsatz von Service Meshes in Microservices-Projekten, der erfolgreichen Einführung von DevOps-Praktiken im Unternehmen und der nachhaltigen JavaScript-Entwicklung mit Angular und dem WebComponents-Standard.

 

Geschrieben von
Katharina Degenmann
Katharina Degenmann
Katharina Degenmann hat Politikwissenschaft und Philosophie studiert. Seit Februar 2018 arbeitet sie als Redakteurin bei der Software & Support Media GmbH und ist nebenbei als freie Journalistin tätig.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: