Scala 斯卡拉怎么了,反应如何?

Scala 斯卡拉怎么了,反应如何?,scala,observer-pattern,reactive-programming,Scala,Observer Pattern,Reactive Programming,我读了奥德斯基写的一篇文章,“反对观察者模式” 用Scala.反应“ github看起来被抛弃了: 另外,最近的反应式编程Coursera类使用了JavaRx Observable库(当然还有Scala支持) 这背后有故事吗?我可以推测斯卡拉只是没走多远。JavaRx库是基于可观察的吗?或者我们能从Typesafe中得到类似或更好的东西吗?引用李浩毅的话 谁使用过Scala.React,他的观察结果是: “设置和启动非常困难。” “它需要相当数量的全局配置” “基本数据流图(..)需要几天才

我读了奥德斯基写的一篇文章,“反对观察者模式” 用Scala.反应“

github看起来被抛弃了:

另外,最近的反应式编程Coursera类使用了JavaRx Observable库(当然还有Scala支持)

这背后有故事吗?我可以推测斯卡拉只是没走多远。JavaRx库是基于可观察的吗?或者我们能从Typesafe中得到类似或更好的东西吗?

引用李浩毅的话

谁使用过Scala.React,他的观察结果是:

  • “设置和启动非常困难。”
  • “它需要相当数量的全局配置”
  • “基本数据流图(..)需要几天才能正常工作。”
他有很多问题,但没有设法联系出版物的作者

Li还实现了一个Scala.RX来解决这些和其他问题。 代码的形状很好,但我无法观察到将其推入标准Scala库的任何操作。此外,Li是正在进行的Scala和Javascript工作的幕后推动者,因此他主要忙于该项目

回答您的问题:

JavaRx库是基于可观察的吗

JavaRx基于Martin Odersky试图反对的观察者模式

虽然马丁在论文中指出的每一个问题都是真实有效的, Netflix利用了可观测的一个主要特性:

期货和可观测数据共享同构,因此是可组合的。 在JavaRx中,可观察对象返回事件流。然而,未来 另一方面,它可以被看作是一种特殊的可观察的返回 只有一个单身汉。在这种情况下,未来和可观测数据可以异步组合 只要有意义

这背后有故事吗

不知道,但也许Netflix做了一些赞助。您可能已经注意到了出现在RX钻石示例中的Netflix徽标

或者我们能从Typesafe中得到类似或更好的东西吗

我真的对此表示怀疑。他们为什么要这样做?Typesafe正忙于推送他们的 进入产业,进一步推进阿克卡。Scala.React是个不错的主意但是 不生产任何现金,而Akka为他们提供付费客户

相反,我会问这样一个问题:Scala.React到底想解决什么


IMHO,JavaRx已经做得很好,正在生产中,Scala.React可能添加的改进很可能不足以进行重大更改

RxJava:Reactive扩展与scala.react几乎没有共同之处。RxJava处理观察器和并发性,但对于计算顺序的正确性帮助甚微。基本上,这只是一连串的事件,如果事件被分解成几个效应,那么这些效应将永远不再连贯。基本上,这是一个混乱,只能用于计算精度不太重要的GUI。你永远不知道什么时候会有额外的更新或刷新

react是一个单线程计算模型,它以计算之间的函数依赖关系定义的严格计算顺序处理计算顺序

Akka,又称演员,是第三种模式,完全不同。它只是带有一些奇特语法和调度的线程,真的


难怪大家都很困惑。不幸的是,scala.react没有移动到任何地方,这很糟糕,因为它是这三种模式中唯一的创新模式

人们猜测JavaRx观测值的使用更有意义,他们认为仅仅为了与众不同而开发另一种替代方案既没有必要也没有好处。不过,我可能大错特错了。这与论文的全部观点背道而驰。奥德斯基在这一点上错了吗?是相关的。欢迎来到学术界,我想-它并不总是产生有用的东西,但作为一个整体的研究推动了整个领域的发展:)我实际上会假设,随着Akka在Scala中变得标准化,有不同的方法实现FRP,而无需引入另一个库。令人惊讶的答案。typesafe的玩世不恭有点过分。Typesafe正在推出其他产品和更新的产品。Scala.React看起来只是一个失败的想法。