Oderskyが共同執筆した論文「Scala.Reactによるオブザーバーパターンの非推奨」を読みました。
Githubは放棄されたように見えます:
https://github.com/ingoem/scala-react
また、最近のReactive Programming Courseraクラスでは、JavaRx Observableライブラリを使用していました(もちろんScalaサポート付き)。
この裏話はありますか?私はscala.reactがそれほど遠くまで到達しなかったと推測できます。 Observableに基づくJavaRxライブラリをお勧めしますか?それとも、Typesafeに似たような、またはより良いものを期待できますか?
Li Haoyiを引用して、
scala.Reactを使用した人、彼の観察は次のとおりです。
彼はたくさんの質問をしましたが、出版物の著者に連絡することができませんでした...
Liは、これらの問題やその他の問題に対処するScala.RXも実装しました。コードは良い形ですが、標準Scalaライブラリにプッシュするアクションを観察できません。また、Liは進行中のScala&Javascriptの背後にあるドライバーです。したがって、彼はそのプロジェクトにほとんど専念しています。
あなたの質問に答える:
Observableに基づくJavaRxライブラリをお勧めしますか?
JavaRxは、MartinOderskyが非推奨にしようとしたオブザーバーパターンに基づいています...
https://github.com/Netflix/RxJava/blob/master/rxjava-core/src/main/Java/rx/Observer.Javahttps://github.com/ Netflix/RxJava/blob/master/rxjava-core/src/main/Java/rx/Observable.Java
マーティンが論文で指摘したすべての問題は真実で有効ですが、NetflixはObservablesの主要な特性を利用していました。
先物とオブザーバブルは同型を共有しているため、構成可能です。 JavaRxでは、Observableはイベントのストリームを返します。ただし、一方で、Futureは、シングルトンのみを返す特殊なObservableと見なすことができます。この場合、FuturesとObservablesは、意味があるときはいつでも非同期で構成できます。
この裏話はありますか?
わからないが、Netflixがスポンサーをしたのかもしれない。 RXダイヤモンドの例にNetflixのロゴが表示されていることに気づいたかもしれません。
それとも、Typesafeに似たような、またはより良いものを期待できますか?
私は正直にそれを疑っています。なぜ彼らはすべきですか? Typesafeは、スタックを業界に押し込み、Akkaをさらに前進させることに忙しい。 Scala.Reactは素晴らしいアイデアですが、現金を生み出しませんが、Akkaは彼らに有料の顧客をもたらします。
代わりに、Scala.Reactが結局何を解決しようとしているのかという質問をします。
IMHO、JavaRxはすでに良い仕事をしていて、本番環境にあり、Scala.Reactが追加できる可能性のあるこれらの改善は、大きな変更にはおそらく十分ではありません。
RxJava:ReactiveExtensionsはscala.reactとほとんど共通点がありません。 RxJavaはオブザーバーと並行性を扱いますが、評価順序の正確さに関してはほとんど役に立ちません。基本的に、それは単なるイベントのストリームであり、いくつかの効果に分割されたイベントが再び一貫性を持つことはありません。基本的にそれは混乱であり、計算の精度がそれほど重要ではないGUIにのみ使用できます。追加の更新または追加の更新をいつ取得するかはわかりません。
scala.reactはシングルスレッドの計算モデルであり、計算間の関数従属性によって定義される厳密な評価順序で計算の順序を処理します。
アッカ、または俳優もまた、3番目のモデルであり、まったく異なるものです。本当に、それはいくつかの凝った構文とスケジュールを備えた単なるスレッドです。
誰もが混乱しているのも不思議ではありません。悲しいことに、scala.reactはどこにも移動していません。これは、これら3つの革新的なモデルであるため悪いことです。