该Github项目看起来已经被放弃了: https://github.com/ingoem/scala-react 此外,最近的响应式编程Coursera课程使用了JavaRx Observable库(当然也支持Scala)。
这背后是否有什么故事?我可以推测scala.react并没有走得很远。基于Observable的JavaRx库是否可取?或我们是否可以从Typesafe期待类似或更好的东西?
他有很多问题,但未能联系到出版物的作者......
李先生还实现了一个Scala.RX以解决这些和其他问题。 代码质量很好,但我无法观察到将其推入标准的Scala库中的任何行动。 此外,李先生是正在进行的Scala&Javascript工作的驱动力,因此他大部分时间都在忙于那个项目。
回答您的问题:
JavaRx库是否基于Observable建议使用?
JavaRx基于Martin Odersky试图弃用的观察者模式...
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
尽管Martin在论文中指出的每个问题都是真实而有效的,但Netflix利用了观察者的一个重要属性:
Futures和Observables共享同构性,因此是可组合的。 在JavaRx中,Observable返回一系列事件。然而,另一方面,Future可以被看作是仅返回单例的专门Observable。在这种情况下,只要有意义,Futures和Observables可以异步组合。
背后是否有故事?
不清楚,但也许Netflix进行了一些赞助。 您可能已经注意到Netflix标志出现在RX钻石示例中....
或者我们能从Typesafe期待类似或更好的东西吗?
我真的不太相信。为什么他们要这么做呢?Typesafe正忙于将其技术栈推向行业,并进一步改进Akka。Scala.React是一个不错的想法,但并没有产生任何现金,而Akka则带给他们付费客户...
相反,我会问Scala.React究竟试图解决什么问题?在我看来,JavaRx已经很好地完成了任务,已经在生产中使用,而Scala.React可能带来的改进可能不足以进行重大更改。
RxJava: 响应式扩展与scala.react几乎没有任何相似之处。 RxJava处理观察员和并发,但对于评估顺序的正确性帮助很少。基本上它只是一些事件流,如果将这些事件分成多个效果,那么它们将永远不会再一致。基本上它是一团糟,只能用于GUI,计算精度不太关键。您永远不知道何时会得到额外的更新或刷新。
scala.react是单线程计算模型,并使用由计算之间的函数依赖关系定义的严格计算顺序处理计算顺序。
Akka或actors又是第三种模型,完全不同。实际上,它只是一些线程,带有一些花哨的语法和调度。
难怪每个人都感到困惑。遗憾的是scala.react没有取得任何进展,这很糟糕,因为它是这三种模型中唯一创新的模型。