Scala.React发生了什么事情?

36
我阅读了Odersky编写的论文《使用Scala.React淘汰观察者模式》。
该Github项目看起来已经被放弃了: https://github.com/ingoem/scala-react 此外,最近的响应式编程Coursera课程使用了JavaRx Observable库(当然也支持Scala)。
这背后是否有什么故事?我可以推测scala.react并没有走得很远。基于Observable的JavaRx库是否可取?或我们是否可以从Typesafe期待类似或更好的东西?

5
我猜JavaRx的Observables更加实用,因此他们认为无需为了与众不同而开发另一种替代方案。但我可能完全错误。 - Esko
这与论文的整个观点背道而驰。Odersky在这一点上是否简单错误了? - user2684301
这个问题是与Scala React的状态相关的。 - Aaron Novstrup
2
欢迎来到学术界,我想它并不总是能够产生可用的东西,但整个研究推动了整个领域的发展 :) - Esko
Akka和JavaRx Observables有什么关系?基于Scala的Typesafe Coursera响应式编程课程同时使用了Akka和JavaRX+Scala扩展。 - user2684301
显示剩余3条评论
2个回答

32
引用李浩宜的话,他使用Scala.React后得出的观察结果是:
  • “非常难设置和开始。”
  • “它需要相当数量的全局配置。”
  • “需要几天时间才能让基本的数据流程图(...)工作起来。”

他有很多问题,但未能联系到出版物的作者......

李先生还实现了一个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可能带来的改进可能不足以进行重大更改。


3
很棒的回答。Typesafe 的愤世嫉俗有点过了。Typesafe 正在推动其他产品和更新的产品。Scala.React 看起来只是一个未能成功起飞的想法。 - user2684301

13

RxJava: 响应式扩展与scala.react几乎没有任何相似之处。 RxJava处理观察员和并发,但对于评估顺序的正确性帮助很少。基本上它只是一些事件流,如果将这些事件分成多个效果,那么它们将永远不会再一致。基本上它是一团糟,只能用于GUI,计算精度不太关键。您永远不知道何时会得到额外的更新或刷新。

scala.react是单线程计算模型,并使用由计算之间的函数依赖关系定义的严格计算顺序处理计算顺序。

Akka或actors又是第三种模型,完全不同。实际上,它只是一些线程,带有一些花哨的语法和调度。

难怪每个人都感到困惑。遗憾的是scala.react没有取得任何进展,这很糟糕,因为它是这三种模型中唯一创新的模型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接