What happened to Scala.React?

user2684301 picture user2684301 · Feb 4, 2014 · Viewed 7.4k times · Source

I read the paper cowritten by Odersky, "Deprecating the Observer Pattern with Scala.React"

The github looks abandoned:

https://github.com/ingoem/scala-react

Also, the recent Reactive Programming Coursera class, used the JavaRx Observable library (with Scala support of course).

Is there a story behind this? I can presume scala.react just didn't make it very far. Is the JavaRx library based on Observable advisable? Or can we expect something similar or better from Typesafe?

Answer

Marvin.Hansen picture Marvin.Hansen · Mar 16, 2014

Citing Li Haoyi,

who has used Scala.React, his observations are:

  • "it is extremely difficult to set up and get started."
  • "It requires a fair amount of global configuration"
  • "It took several days to get a basic dataflow graph (..,) working."

He had a lot of questions but did not manage to contact the author of the publication...

Li also implemented a Scala.RX addressing these and other issues. The code is good shape but I cannot observe any action of pushing it into the Standard Scala library. Also, Li is the driver behind the ongoing Scala & Javascript effort thus he is mostly occupied with that project.

Answering your questions:

Is the JavaRx library based on Observable advisable?

JavaRx is based on the Observer pattern Martin Odersky tried to deprecate...

https://github.com/Netflix/RxJava/blob/master/rxjava-core/src/main/java/rx/Observer.java https://github.com/Netflix/RxJava/blob/master/rxjava-core/src/main/java/rx/Observable.java

While every issue Martin pointed out in the paper is true and valid, Netflix had exploited a major property of Observables:

Futures and Observables share an isomorphism, thus are composable. In JavaRx, an Observable returns a stream of events. However, a Future on the other hand, can be seen as a specialized Observable that returns only a singleton. In this case, Futures and Observables can be asynchronously composed whenever it makes sense.

Is there a story behind this?

No idea but maybe Netflix did some sponsoring. You may have noticed the Netflix logo appearing in the RX diamonds examples....

Or can we expect something similar or better from Typesafe?

I honestly doubt that. Why should they? Typesafe is busy with pushing their stack into industry and advancing Akka further. Scala.React is a neat idea but does not produce any cash whereas Akka brings them paying customers....

Instead I would ask the question what exactly Scala.React, after all, tries to solve?

IMHO,JavaRx already does a good job, is in production and those improvements Scala.React could possible add are most likely not enough for a major change.