Weekly Coding Question - Neue Techniken ausprobieren - ReactiveX
Eine neue Weekly Coding Question ist da und dieses mal soll es um neue Techniken gehen, die einfach so gut erscheinen, dass man sich direkt einen Einsatzzweck suchen will. Mir ist in diesem Kontext ReactiveX über den Weg gelaufen. Falls euch ReactiveX nichts sagt, im Prinzip ist es eine Möglichkeit, um mit diversen Sprachen asynchrone Programmierung auf eine optimierte und nachvollziehbare Art durchzuführen. Dabei wird das bekannte Observer Pattern open_in_new angepasst und mit Ansätzen des Iterator Pattern open_in_new und einigen Dingen aus der Funktionalen-Programmierung open_in_new kombiniert. Heraus kommen sogenannte Streams, welche Überwacht werden können und je nach Event reagiert das Programm. Dabei wir nicht das eigentliche Programm nicht geblockt und auch während der weiteren Event-Verarbeitung, in eigenen Threads, kann auf weitere Ereignisse reagiert werden. Die Rückmeldung erfolgt erst nach Bearbeitung des eigentlichen Ereignisses. Klingt grundsätzlich gar nicht so “neu”, doch wenn man sich das ganze ansieht und die Technik + Umsetzung versteht, bekommt man finde ich Lust es direkt zu nutzen. Vor allem wenn man die Möglichkeit der Manipulation der Streams selbst konkreter betrachtet. Ich werde es auf jeden Fall für mein kleines Bildbearbeitungs-Tool Resizy nutzen, denn es arbeitet auf vielen Bildern und durch eine quasi Parallelisierung dieser Aufgabe, kann alles massiv beschleunigt werden. Außerdem bietet sich dies bei einem solchen Programm an, da die Bearbeitung eines einzelnen Bildes unabhängig von allen anderen Bildern ist und es somit nicht zu Problemen kommen kann. Doch auch weitere Einsatzzwecke sind denkbar, vor allem weil ReactiveX unter anderem mit Java, Scala, C#, C++, Clojure, JavaScript, Python, Groovy und JRuby genutzt werden kann. Was sagt ihr zu diesem Ansatz und kanntet ihr ihn schon oder habt ihn sogar schon eingesetzt?