Google
ブログ(iiyu.asablo.jpの検索)
ホットコーナー内の検索
 でもASAHIネット(asahi-net.or.jp)全体の検索です。
 検索したい言葉のあとに、空白で区切ってki4s-nkmrを入れるといいかも。
 例 中村(show) ki4s-nkmr

ウェブ全体の検索

Reactive Programmingはデータフローマシンのソフトウェア版。Dataflow and Reactive Programming Systems, ReactiveX, Rx, RxJava, RxJsなど2017年09月13日 09時21分55秒

ASAHIネット(http://asahi-net.jp )のjouwa/salonから。
---
 「Reactビギナーズガイド」のお買い上げがあって、JavaScriptのReact(いろんなReactがあるので、ReactJSと書くことにする)関係、そして、Reactive Programming関係をまとめようと思ったが、ReactJS関係は、昨年から今年にかけて、洋書は、あまりに出すぎて、情動失禁状態。\(^O^)/
 なので、ReactJSは、股の機械にして、今回は、もっと原理的、根本的、本質的なところ、データフローやReactive Programmingの解説本を。
 原理的、根本的なところ、本質的なところが理解できれば、ReactJSなんてのは、小手先の話なので、すぐ理解できるはず。\(^O^)/

 なお、ReactJSの数少ない日本語書籍は、いずれも、オライリー・ジャパン。
https://www.amazon.co.jp/exec/obidos/ASIN/4873117887/showshotcorne-22/
Reactビギナーズガイド ―コンポーネントベースのフロントエンド開発入門 単行本(ソフトカバー) – 2017/3/11
Stoyan Stefanov (著), 牧野 聡 (翻訳)
 オライリー・ジャパンにある紹介。
https://www.oreilly.co.jp/books/9784873117881/
Reactビギナーズガイド
――コンポーネントベースのフロントエンド開発入門

https://www.amazon.co.jp/exec/obidos/ASIN/4873117194/showshotcorne-22/
入門 React ―コンポーネントベースのWebフロントエンド開発 大型本 – 2015/4/3
Frankie Bagnardi (著), Jonathan Beebe (著), Richard Feldman (著), Tom Hallett (著), Simon HØjberg (著), Karl Mikkelsen (著), 宮崎 空 (翻訳)
 オライリー・ジャパンにある紹介。
https://www.oreilly.co.jp/books/9784873117195/
入門 React
――コンポーネントベースのWebフロントエンド開発

 さて、原理的、根本的、本質的な話のこと。
 関数型言語のブーム(Functional Programming, FP)があり、一昨年くらいから、
リアクティブプログラミング(Reactive Programming, RP)
関数型リアクティブプログラミング(Functional Reactive Programming, FRP)
が、話題になってきて、RxJSやRxJavaもあちこちで紹介されるようになった。
 それで、当時、気になって、調べた。
 ぼくの結論は、
「Reactive Programmingは、データフローマシンのソフトウェア版」
「Reactive Programmingは、データフローマシンのソフトウェアによる再発明」
 いずれにせよ、データフローのサブセット、一部の概念。
 データフローという、Reactive Programmingより、もっと原理的、根本的、本質的で広い概念のうち、一部を取り出して、ソフトウェアで実装したものが、Reactive Programming。そして、ReactJSになると、さらにその中で、ウェブアプリのフロントエンド部分に絞って使ったもの。というのが、ぼくの理解。
 要は、原理的、根本的、本質的な部分である、データフローがわかれば、ほかは、一丁上がり。\(^O^)/

 原理的、根本的、本質的な話として、今から35年から40年くらい前、1970年代から1980年代、ぼくの学生時代、非ノイマンアーキテクチャのマシンや、Lispマシン、Prologマシンといった高水準言語マシンの研究が盛んだった。
 そういう研究の中に、データフローマシンもあった。

関連:
http://iiyu.asablo.jp/blog/2014/07/29/7400910
IBMのワトソン(Watson)も、Prologで動いている\(^O^)/
http://iiyu.asablo.jp/blog/2009/09/01/4554249
超漢字、英語、エスペラント語対応キット無償提供。映画「TRON LEGACY」

 データフローマシンは、クロックで同期するマシンではなく、非同期動作のマシン。クロックレスコンピュータとも言われていた。
 研究の背景は、クロックを上げて高速化する手法は、いずれかの将来、クロック周波数の上限によって、性能が頭打ちになる。だから、クロックがない非同期動作のマシンが必要になるというわけ。
 データフローマシンは、計算するデータが揃ったら、計算して、出力する。それが次のステップへのデータ入力になる。この連鎖で計算が進む。データが来るまで電気を食わないから、消費電力が少ないというのも利点とされた。

https://en.wikipedia.org/wiki/Dataflow_architecture
をみると、主流のコンピュータとしては流行らなかったが、
digital signal processing, network routing, graphics processing, telemetry
では実績がある。
 デジタル信号処理のDSPや、ルータのチップは、データフローアーキテクチャの専用チップという扱い。
 主流になれなかったのは、従来のCPUには、すでに膨大な数のソフトやツールがあり、それに多額の投資をし、儲けている企業がたくさんあり、いわゆるエコシステム、生態系が出来上がっていて、みな、それで飯を食っているので、それを覆すだけの経済的なメリットが出なかったわけです。

https://stackoverflow.com/questions/530180/what-happened-to-clockless-computer-chips
What happened to clockless computer chips?
の回答に、インテルが3倍速くて消費電力が半分という非同期CPUを作ったが、商売にならないと判断したというのがありますね。

https://en.wikipedia.org/wiki/Dataflow
をみると、
The most obvious example of data-flow programming is the subset known as reactive programming with spreadsheets. As a user enters new values, they are instantly transmitted to the next logical "actor" or formula for calculation.
なんてのがあるね。

関連:
http://iiyu.asablo.jp/blog/2017/09/06/8671185
VisiCalcは、世界初のスプレッドシートソフト(表計算ソフト)ではなかった!?

https://en.wikipedia.org/wiki/Asynchronous_circuit

https://en.wikipedia.org/wiki/Asynchronous_circuit#Asynchronous_CPU
をみると、1950年代、1960年代のマシンもあるね。

 プログラミング言語に、データフローを取り入れたものもあって、ここで紹介したことがあるのは、
http://iiyu.asablo.jp/blog/2008/01/02/2541305
Oz/Mozart, CTMの補足
で書いた、プログラミング言語Ozの、その名もずばり、データフロー変数。

https://en.wikipedia.org/wiki/Oz_(programming_language)

 あ、Lucidもあった。
https://en.wikipedia.org/wiki/Lucid_(programming_language)

関連:
http://iiyu.asablo.jp/blog/2008/01/02/2541270
Erlang, Oz/Mozart, Prolog, 単一化
http://iiyu.asablo.jp/blog/2008/01/02/2541305
Oz/Mozart, CTMの補足
http://iiyu.asablo.jp/blog/2006/06/12/401764
ガウディ本(CTMCP)の紹介と懐かしい話など
http://iiyu.asablo.jp/blog/2007/11/14/1908371
CTM/CTMCP/ガウディ本で気になった訳語

 データフローに関係する理論、計算モデル方面で、当時、よく名前が出ていたのが、MITのHewitt(ヒューイット)先生のActorモデル。
 Actorモデルの「全てのものはアクターである」という考えを、おれは、「大乗仏教だ」などと、昔、電脳騒乱節という雑誌連載で、ほざいたことがあり、一部に大ウケだった。\(^O^)/ 本になった、4,5冊出た電脳騒乱節のどこかにそれがあるはず。暇な人は、アマゾンで検索してみてください。
 内容を確認してないが、タイトル的に、これかも。
https://www.amazon.co.jp/exec/obidos/ASIN/4874084567/showshotcorne-22/
電脳騒乱節〈VOL.3〉スペース空海即身成仏編 (リターンブックス) 単行本 – 1991/10
中村 正三郎 (著)
単行本
¥ 978 より
¥ 978 より 4 中古品の出品

 あれれ、こっちかな。
https://www.amazon.co.jp/exec/obidos/ASIN/4874085423/showshotcorne-22/
電脳騒乱節〈オブジェクト指向臨死体験編〉 単行本 – 1993/2
中村 正三郎 (著)
単行本
¥ 202 より
¥ 202 より 6 中古品の出品
 「電脳曼陀羅」や「星降る夜のパソコン情話」では、書いてないと思うんだけど。

 Actorは、プログラミング言語Erlang, プログラミング言語ScalaのAkkaなど、いろんなところで実装されていますね。
 ほかに、クイックソートを発明したHoare(ホーア)先生のCSP(Communicating Sequential Processes)があった。

https://ja.wikipedia.org/wiki/アクターモデル
https://ja.wikipedia.org/wiki/Communicating_Sequential_Processes

 日本語の本は、ほとんど出てないみたいなので、洋書中心。
 日本のアマゾンでのリンクを示しているが、何度も書くが、電子書籍で買うなら、出版社のサイトで買うほうが、Kindle以外に、PDF, EPUBもあるので便利。

●Dataflow and Reactive Programming Systems
 Reactive Programmingって、データフローのソフトウェア版なんだけど、そういう解説をした本がないかなあと思って探していて、去年、見つけた本。
 この本は、大変いいです。
 出版社に行って、目次をみてもらうとわかるが、原理的、根本的、本質的な部分から理解したい人に、お薦め。

 出版元に行って、電子書籍を買ったが、珍しく、索引がない。その点は、だめじゃん。
 日本の出版社は、リフロー型の電子書籍は、索引をつけるだけの技術力、資本力がなく、手抜きのクソ電子書籍しか作れないが、欧米の出版社は、少なくともぼくがよく買う、Packt, Manning, O'Reilly Mediaは、ちゃんとやっていると思っていたが、それ以外は、案外、だめなのかもね。

https://www.amazon.co.jp/exec/obidos/ASIN/1497422442/showshotcorne-22/
Dataflow and Reactive Programming Systems: A Practical Guide to Developing Dataflow and Reactive Programming Systems (英語) ペーパーバック – 2014/4/30
Matt Carkci (著)
ペーパーバック
¥ 5,344

https://www.amazon.co.jp/exec/obidos/ASIN/B00KNZFVKQ/showshotcorne-22/
Dataflow and Reactive Programming Systems (English Edition) Kindle版
Matt Carkci (著)
Kindle版
¥ 3,054

 Leanpubにある紹介。
https://leanpub.com/dataflowbook
Dataflow and Reactive Programming Systems
A Practical Guide to Developing Dataflow and Reactive Programming Systems
Matt Carkci

●Reactive Messaging Patterns with the Actor Model
 次は、いかにもActorモデルの実装っぽい、分散オブジェクトのAkkaとScalaの本。
 以前、調べたときより、ハードカバーは値上がりして、Kindle版は値下がりしている。
https://www.amazon.co.jp/exec/obidos/ASIN/0133846830/showshotcorne-22/
Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka (英語) ハードカバー – 2015/8/17
Vaughn Vernon (著)
ハードカバー
ハードカバー
¥ 5,780
¥ 6,171 より 3 中古品の出品
¥ 4,737 より 19 新品
 以前は、
ハードカバー
¥ 4,260
¥ 10,298 より 2 中古品の出品
¥ 4,007 より 7 新品

https://www.amazon.co.jp/exec/obidos/ASIN/B011S8YC5G/showshotcorne-22/
Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka Kindle版
Vaughn Vernon (著)
Kindle版
¥ 2,529
 以前は、
¥ 3,264

■ReactiveX
 いろんな言語で実装されている、Reactive Programmingのフレームワークをまとめて、ReactiveXと呼んでいる。
 次の公式サイトに行くと、英語だけど、いろんな入門記事が読める。
http://reactivex.io
ReactiveX

 Rxは、Reactive Extensionの略。

■Rx for .NETの本
●Introduction to Rx
 .NETで実装されたRxが、ブームの先駆け。
https://www.amazon.co.jp/exec/obidos/ASIN/B008GM3YPM/showshotcorne-22/
Introduction to Rx: A step by step guide to the Reactive Extensions to .NET (English Edition) Kindle版
Lee Campbell (著)
Kindle版
¥ 1,174

●Programming Reactive Extensions and LINQ
https://www.amazon.co.jp/exec/obidos/ASIN/1430237473/showshotcorne-22/
Programming Reactive Extensions and LINQ (Expert's Voice in .NET) (英語) ペーパーバック – 2011/10/31
Jesse Liberty (著), Paul Betts (著)
ペーパーバック
¥ 4,716
¥ 4,329 より 3 中古品の出品
¥ 4,573 より 26 新品

●Rx.NET in Action
 次は、出版社のManningに行って、 ディスカウントコードとして、「dresherdoc」を入れると、39%のディスカウントをしてくれるらしい。
https://www.amazon.co.jp/exec/obidos/ASIN/1617293067/showshotcorne-22/
Rx.NET in Action (英語) ペーパーバック – 2017/5/8
Erik Meijer (はしがき), Tamir Dresher (著)
ペーパーバック
¥ 4,877 より
¥ 5,771 より 1 中古品の出品
¥ 4,877 より 11 新品

 Manningにある紹介。電子書籍$39.99。
https://www.manning.com/books/rx-dot-net-in-action
Rx.NET in Action
Tamir Dresher

■RxJavaの本
 RxJavaで、Reactive Programmingが、知られるようになったと思う。

●RxJavaリアクティブプログラミング
 珍しい日本語の本。
https://www.amazon.co.jp/exec/obidos/ASIN/4798149519/showshotcorne-22/
RxJavaリアクティブプログラミング (CodeZine BOOKS) 単行本(ソフトカバー) – 2017/2/17
須田 智之 (著)
単行本(ソフトカバー)
¥ 3,888
¥ 3,690 より 7 中古品の出品
¥ 3,888 より 4 新品

https://www.amazon.co.jp/exec/obidos/ASIN/B06XGYSHCN/showshotcorne-22/
RxJavaリアクティブプログラミング Kindle版
須田智之 (著)
Kindle版
¥ 3,600

●RxJava Essentials
https://www.amazon.co.jp/exec/obidos/ASIN/1784399108/showshotcorne-22/
RxJava Essentials: Learn Reactive Programming to Create Awesome Android and Java Apps (英語) ペーパーバック – 2015/5/27
Ivan Morgillo (著)
ペーパーバック
¥ 2,080 より
¥ 2,080 より 4 中古品の出品
¥ 2,533 より 6 新品

https://www.amazon.co.jp/exec/obidos/ASIN/B00YEVZ76S/showshotcorne-22/
RxJava Essentials Kindle版
Ivan Morgillo (著)
Kindle版
¥ 2,429

 Packtにある紹介。いま、$23.99が、$4.80で買える! Back to Schoolセール、新学期セールだから?
https://www.packtpub.com/application-development/rxjava-essentials
RxJava Essentials
Ivan Morgillo

●Learning Rxjava
https://www.amazon.co.jp/exec/obidos/ASIN/1787120422/showshotcorne-22/
Learning Rxjava (英語) ペーパーバック – 2017/6/20
Thomas Nield (著)
ペーパーバック
¥ 5,499
¥ 5,499 より 5 新品

https://www.amazon.co.jp/exec/obidos/ASIN/B01N1UNBME/showshotcorne-22/
Learning RxJava 1 , Kindle版
Thomas Nield (著)
Kindle版
¥ 4,503

 Packtにある紹介。いま、$35.99が、$10で買える。これも、Back to Schoolセール、新学期セール?
https://www.packtpub.com/application-development/learning-rxjava
Learning RxJava
Thomas Nield

●Learning Reactive Programming With Java 8
https://www.amazon.co.jp/exec/obidos/ASIN/1785288725/showshotcorne-22/
Learning Reactive Programming With Java 8: Learn How to Use Rxjava and Its Reactive Obervables to Build Fast, Concurrent, and Powerful Applications Through Detailed Examples (英語) ペーパーバック – 2015/6/24
Nickolay Tsvetinov (著)
ペーパーバック
¥ 4,742
¥ 8,369 より 2 中古品の出品
¥ 4,484 より 7 新品

https://www.amazon.co.jp/exec/obidos/ASIN/B00YSILAUO/showshotcorne-22/
Learning Reactive Programming with Java 8 Kindle版
Nickolay Tsvetinov (著)
Kindle版
¥ 4,391

 Packtにある紹介。いま、$35.99が、$7.20で買える。これも、Back to Schoolセール、新学期セール?
https://www.packtpub.com/application-development/learning-reactive-programming-java-8
Learning Reactive Programming with Java 8
Nickolay Tsvetinov

●Reactive Java Programming
 ¥11,325なんて、デタラメな値段をつけている奴がいるね。
https://www.amazon.co.jp/exec/obidos/ASIN/1484214293/showshotcorne-22/
Reactive Java Programming (英語) ペーパーバック – 2016/11/4
Andrea Maglie (著)
ペーパーバック
¥ 2,927
¥ 11,325 より 1 中古品の出品
¥ 1,824 より 12 新品

https://www.amazon.co.jp/exec/obidos/ASIN/B01M6DOV0M/showshotcorne-22/
Reactive Java Programming 1st ed. , Kindle版
Andrea Maglie (著)
Kindle版
¥ 2,710

 APressにある紹介。
http://www.apress.com/us/book/9781484214299
Reactive Java Programming
Authors: Maglie, Andrea

●Reactive Programming with RxJava
https://www.amazon.co.jp/exec/obidos/ASIN/1491931655/showshotcorne-22/
Reactive Programming with RxJava: Creating Asynchronous, Event-Based Applications (英語) ペーパーバック – 2016/10/27
Tomasz Nurkiewicz (著), Ben Christensen (著)
ペーパーバック
¥ 5,308
¥ 4,355 より 5 中古品の出品
¥ 4,131 より 26 新品

https://www.amazon.co.jp/exec/obidos/ASIN/B01LZQGIIC/showshotcorne-22/
Reactive Programming with RxJava: Creating Asynchronous, Event-Based Applications 1 , Kindle版
Tomasz Nurkiewicz (著), Ben Christensen (著)
Kindle版
¥ 3,402

 オライリー本家、 O'Reilly Mediaにある紹介。
 オライリー本家は、もう、自分では、電子書籍は売らず、Safariというクラウドで読んでくれという商売することになったもんね。
http://shop.oreilly.com/product/0636920042228.do
Reactive Programming with RxJava
Creating Asynchronous, Event-Based Applications
By Ben Christensen, Tomasz Nurkiewicz
Publisher: O'Reilly Media
Release Date: October 2016
Pages: 372

●Reactive Programming on Android with RxJava
https://www.amazon.co.jp/exec/obidos/ASIN/B073L5JB27/showshotcorne-22/
Reactive Programming on Android with RxJava (English Edition) Kindle版
Christopher Arriola (著), Angus Huang (著)
Kindle版
¥ 2,806 Kindle 価格

 Leanpubにある紹介。
https://leanpub.com/reactiveandroid
Reactive Programming on Android with RxJava

●Grokking FRP
 まだ、完成版出版前のMEAP状態だが。
https://www.amazon.co.jp/exec/obidos/ASIN/1617293369/showshotcorne-22/
Grokking FRP: With Reactivex and FRP (英語) ペーパーバック – 2017/10/31
Timo Tuominen (著)
ペーパーバック
¥ 5,330
¥ 5,330 より 1 新品

 Manningにある紹介。
https://www.manning.com/books/grokking-frp
Grokking FRP
Timo Tuominen
MEAP began June 2016 Publication in October 2017 (estimated)
ISBN 9781617293368 325 pages (estimated) printed in black & white

■RxJSの本
●Reactive Programming With Rxjs
https://www.amazon.co.jp/exec/obidos/ASIN/1680501291/showshotcorne-22/
Reactive Programming With Rxjs: Untangle Your Asynchronous Javascript Code (英語) ペーパーバック – 2015/12/19
Sergi Mansilla (著), Rebecca Gulick (編集)
ペーパーバック
¥ 1,827
¥ 2,035 より 4 中古品の出品
¥ 1,342 より 11 新品

https://www.amazon.co.jp/exec/obidos/ASIN/B01ATYZTI4/showshotcorne-22/
Reactive Programming with RxJS: Untangle Your Asynchronous JavaScript Code 1 , Kindle版
Sergi Mansilla (著)
Kindle版
¥ 1,887

●Reactive Programming With Rxjs 5
新版がある。
https://www.amazon.co.jp/exec/obidos/ASIN/1680502476/showshotcorne-22/
Reactive Programming With Rxjs 5: Untangle Your Asynchronous Javascript Code (英語) ペーパーバック – 2017/11/25
Sergi Mansilla (著)
ペーパーバック
¥ 3,921
¥ 3,921 より 1 新品

 Pragmatic Bookshelfにある紹介。
https://pragprog.com/book/smreactjs5/reactive-programming-with-rxjs-5
Reactive Programming with RxJS 5
Untangle Your Asynchronous JavaScript Code
by Sergi Mansilla

●RxJS in Action
https://www.amazon.co.jp/exec/obidos/ASIN/1617293415/showshotcorne-22/
RxJS in Action: Covers Rxjs 5 (英語) ペーパーバック – 2017/8/4
Ben Lesh (はしがき), Paul P. Daniels (著), Luis Atencio (著)
ペーパーバック
¥ 5,855
¥ 4,947 より 10 新品

 Manningにある紹介。
https://www.manning.com/books/rxjs-in-action
RxJS in Action
Paul P. Daniels and Luis Atencio
Foreword by Ben Lesh
July 2017 ISBN 9781617293412 352 pages printed in black & white