我读了Odersky撰写的文章"用Scala.React弃用Observer模式"
github看起来被遗弃了:
https://github.com/ingoem/scala-react
此外,最近的Reactive Programming Coursera类使用了JavaRx Observable库(当然还有Scala支持).
这背后有故事吗?我可以假设scala.react只是没有做得很远.基于Observable的JavaRx库是否可取?或者我们可以期待Typesafe中类似或更好的东西吗?
RxJava:Reactive Extensions与scala.react几乎没有共同之处.RxJava处理观察者和cuncurrency,但对评估顺序的正确性几乎没有帮助.基本上它只是事件流,如果分成几个效果的事件再也不会连贯.基本上它是一团糟,只能用于GUI,其中计算精度不是那么重要.您永远不知道何时获得额外更新或额外刷新.
scala.react是一个单线程计算模型,它使用严格的评估顺序处理计算顺序,该评估顺序由计算之间的功能依赖性定义.
Akka,或演员,再次,是第三个模型,完全不同的东西.它只是带有一些花哨的语法和计划的线程,真的.
难怪每个人都感到困惑.可悲的是scala.react并没有移动到任何地方,这很糟糕,因为它是这三者中唯一的创新型号.
引用李浩义,
谁使用过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可能添加的那些改进很可能不足以进行重大改变.