Interview mit MobileTech-Conference-Speaker Peter Kröner

Funktionale reaktive Programmierung: Was ReactiveX und Co. zu bieten haben
Keine Kommentare

Ob es sich bei der reaktiven Programmierung um ein neues Modell handelt oder Bekanntes neu verpackt wird, daran scheiden sich die Geister. Wir haben Peter Kröner, Webexperte und Speaker bei der MobileTech Conference 2017, gefragt, welche Vorteile das alte, neue Modell hat und wie er es für sich entdeckte.

Reaktive Programmierung ist für sich schon ein Buzzword. In deiner Session „Einführung in Functional Reactive Programming“ geht es um funktionale reaktive Programmierung. Was steckt dahinter?

Peter Kröner: Ich nenne Functional Reactive Programming (FRP) immer “praktisch verwendbare funktionale Programmierung”. Funktionale Programmierung als Paradigma hat in der Theorie viele Vorteile, aber es ist manchmal ganz schön knifflig, das Paradigma im Programmieralltag einzusetzen. Vereinfacht gesagt, besteht funktionaler Code aus reinen Berechnungen, aber die meisten Programme machen weit mehr als bloße Berechnungen. Sie haben User Interfaces, machen Netzwerk-Requests oder speichern Daten ab. Mit Functional Reactive Programming kann man den Berechnungsteil seines Programms problemlos an interaktive Elemente anschließen und hat damit das beste aus beiden Welten: funktionale Datenverarbeitung und interaktive Anbindung an UI und IO.

Wie bist du zum FRP gekommen?

Peter Kröner: Ich bin irgendwo auf Twitter über den Autor der FRP-Library BaconJS gestolpert, in Folge auch über BaconJS selbst und dachte mir, dass das recht cool aussieht. Danach saß ich erst mal zwei Wochen lang mit dummem Gesicht vor der Library und habe nicht verstanden, wie ich auch meinen Code auf so cool aussehende Art und Weise formulieren kann. Erst später ist mir dann aufgegangen, wie FRP in das Gesamtkonzept von funktionaler Programmierung passt und welche Vorteile es mir bietet.

Kannst du ein Beispiel der funktionalen reaktiven Programmierung aus deiner Praxis nennen?

Peter Kröner: Ein Werkzeug, das ich jeden Tag als Webtechnologie-Erklärbär nutze, ist mein HTML5-Präsentations-Tool, dessen Kern mit RxJS gebaut ist. Man würde vielleicht annehmen, dass so etwas inherent stateful und imperativ sein muss. Aber tatsächlich besteht das Herz jeder Präsentation aus RxJS Observables. Als Eingangssignal nehme ich meine Steuerungskommandos (Pfeiltasten) als Event Stream her und verzahne das mit meinem Array von Slides.

Daraus kann ich alles Wichtige für die Präsentation ableiten: Welche ist die aktuelle Slide? Welche ist die nächste oder welche war die vorherige? Ein Vorteil, den ich dadurch habe, ist, dass mir das Erweitern des Präsentations-Frameworks immer sehr leicht gefallen ist, da jeweils nur mein Zustandsgraph etwas erweitern musste. Neue Ansicht? Synchronisation übers Netzwerk? Alles jeweils nur ein neues Observable, das von den vorhandenen Observables gespeist wird. FRP ist nicht die richtige Lösung für jedes Problem, aber es gibt Aufgaben, die sich mit FRP besonders gut lösen lassen.

Erleben Sie Peter Kröner live auf der MobileTech Conference in seiner Session „Einführung in Functional Reactive Programming„.

Wie müssen Programmierer für die funktionale reaktive Programmierung umdenken?

Peter Kröner: FRP ist in letzter Konsequenz normales funktionales Programmieren. Inwiefern man umdenken muss, hängt davon ab, aus welcher Richtung man kommt. Allgemein muss man lernen, zwischen dem Berechnungsteil seines Programms und den Nebenwirkungen, z.B. UI und IO, zu unterscheiden. Man muss sich explizit klar machen, welche Ausgangszustände bzw. Inputs man hat und welches das Endergebnis einer Operation sein soll. Danach kann man seine Inputs mit funktionalen Mitteln in den Zielzustand übersetzen. Das klingt offensichtlich und wie etwas, das man beim Programmieren generell machen sollte – aber bei FRP ist es Pflicht, da man sonst gar nicht weiß, wie man anfangen soll. Stift und Papier sind sehr nützlich bei der Planung von Transformationsketten und Zustandsnetzwerken.

Stichwort Rx-Projekt: Kannst du kurz erklären, was dahinter steckt, was die Vorteile davon sind und warum du es nutzt?

Peter Kröner: Das ReactiveX-Projekt bietet FRP-APIs für alle möglichen Plattformen – Java, .NET, JavaScript und viele weitere. Allen Implementierungen liegt die gleiche Philosophie zugrunde, sodass man viel vom Wissen über APIs und allgemeine Fragen von z. B. RxJS auf andere Plattformen wie RxJava übertragen kann. Alles ist sehr durchdacht und die APIs lassen kaum Wünsche offen. Der Preis dafür ist eine nicht zu unterschätzende Komplexität, die den Einstieg in das für viele ungewohnte Paradigma nicht gerade einfacher macht.

kroener_peter-300x210Zur Person:
Der Webtechnologieexperte und Buchautor Peter Kröner forscht über die Webstandards von morgen. Was er über HTML5, CSS3 und neue JavaScript-Standards herausfindet, schreibt er in Bücher und Blogposts oder vermittelt es in Seminaren, Workshops und Vorträgen im ganzen Land weiter. Zuvor war er als selbstständiger Webdesigner und Frontend-Entwickler tätig.
API Conference 2021
Dr. Gobe Hobona

OGC APIs: A Suite of Standards to Spatially Enable Web APIs

Dr. Gobe Hobona (Open Geospatial Consortium (OGC))

Microservices Summit - Das große Online-Trainingsevent für Microservices, DevOps, Continuous Delivery, Docker & Cloud
Thilo Frotscher

Microservices mit Service Mesh: Hands-on mit Istio

Workshop mit Sascha Selzer und Tammo van Lessen (INNOQ)

Lars Röwekamp

Shared Data in verteilten Architekturen

Workshop mit Lars Röwekamp (Open Knowledge GmbH)

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -