RxJS Observables – Everything is a stream

Apache Storm war vor einigen Jahre das Framework, in dem ich mich erstmals mit Streams befasst habe. Damals galt das unter Java mit Storm als innovativ, obwohl es die funktionale Programmierung eigentlich schon seit den 1930er Jahren gibt. Es handelt sich hierbei eben um eine Denkweise, die objektorientierten Entwicklern eher fremd vorkommt. Später war die Implementierung mit Google Guava dann doch etwas handlicher, von der die API ja auch größten Teils in Java 8 übernommen wurde. Dennoch merkt man stark, dass Java ursprünglich nicht als funktionale Programmiersprache gedacht war.

RxJS Observables, auf das ich dank Angular 2 gestoßen bin, ist anders – einmal damit angefangen, tendiert man dazu nichts mehr auf konventionelle, rein objektorientierte Art und Weise umzusetzen. Die Herausforderung liegt nun darin, gerade bei funktionaler Implementierung lesbaren CleanCode zu schreiben. Gerade hier ist das besonders wichtig, da es mit Lambda-Ausdrücken sehr verlockend ist, den Code so weit zu kürzen, dass er absolut unverständlich wird. Im besten Fall verbringt man dann selbst Stunden damit zu verstehen, was man da mal getan hat – im schlimmsten Fall muss sich ein Kollege durchkämpfen, der dringend einen Fehler beheben soll und bis dato noch wenig bis keine Kontakte mit funktionaler Programmierung hatte.

Als Schnellstart kann ich in so einem Fall nur „The introduction to Reactive Programming you’ve been missing“ von andrestalz empfehlen, befürchte aber, dass die Umstellung der Denkweise ohne echtes Training eine Mammutaufgabe sein könnte.