我读了Odersky撰写的文章“用Scala.React弃用Observer模式”
github看起来被遗弃了:
https://github.com/ingoem/scala-react
此外,最近的Reactive Programming Coursera类使用了JavaRx Observable库(当然还有Scala支持)。
这背后有故事吗?我可以假设scala.react只是没有做得很远。基于Observable的JavaRx库是否可取?或者我们可以期待Typesafe中类似或更好的东西吗?
citing l IH奥义,
谁使用过Scala.React,他的观察是:
他有很多问题,但没有设法联系出版物的作者......
Li还实施了Scala.RX来解决这些问题和其他问题。代码很好,但我无法观察到将其推入标准Scala库的任何操作。此外,李是正在进行的Scala和Javascript工作背后的驱动因此,因此他主要是在该项目中。
回答你的问题:
基于Observable的JavaRx库是否可取?
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
虽然马丁在论文中指出的每一个问题都是真实有效的,但Netflix已经利用了Observables的一个主要财产:
期货和观察者共享同构,因此是可组合的。在JavaRx中,Observable返回事件流。但是,另一方面,Future可以看作是一个只返回单例的专用Observable。在这种情况下,只要有意义,Futures和Observable就可以异步组合。
这背后有故事吗?
不知道但也许Netflix做了一些赞助。您可能已经注意到RX钻石示例中出现的Netflix徽标....
或者我们可以期待Typesafe中类似或更好的东西吗?
老实说,我怀疑。为什么他们呢? Typesafe正忙着将他们的筹码推向行业并进一步推进Akka。 Scala.React是一个很好的想法,但不产生任何现金,而Akka带给他们支付客户....
相反,我会问一个问题究竟是什么Scala.React,毕竟,试图解决?
恕我直言,JavaRx已经做得很好,正在生产和Scala.React可能添加的那些改进很可能不足以进行重大改变。
RxJava:Reactive Extensions与scala.react几乎没有共同之处。 RxJava处理观察者和并发性,但对评估顺序的正确性几乎没有帮助。基本上它只是事件流,如果分成几个效果的事件再也不会连贯。基本上它是一团糟,只能用于GUI,其中计算精度不是那么重要。您永远不知道何时获得额外更新或额外刷新。
scala.react是一个单线程计算模型,它使用由计算之间的函数依赖性定义的严格评估顺序来处理计算顺序。
Akka,或演员,再次,是第三个模型,完全不同的东西。它只是带有一些花哨的语法和计划的线程,真的。
难怪每个人都感到困惑。可悲的是scala.react并没有移动到任何地方,这很糟糕,因为它是这三者中唯一的创新型号。