The History of Reactive Extensions
- 1. The History of Reactive ExtensionsHow extended Rx across languages
2014/10/28 RxJava Night #rxjnight
Yoshifumi Kawai -@neuecc
- 2. SelfIntroduction
@仕事
株式会社グラニ取締役CTO
神獄のヴァルハラゲート, モンスターハンターロアオブカード
最先端C#によるハイパフォーマンスWebアプリケーション
@個人活動
Microsoft MVP for Visual C# / 野良C#エヴァンジェリスト
Web http://neue.cc/
Twitter @neuecc
- 4. LINQ to BigQuery
最近はBigQueryにはまってLINQライブラリ作りなど
LINQ to BigQuery -C#による型付きDSLと
LINQPadによるDumpと可視化
http://neue.cc/2014/09/24_479.html
https://github.com/neuecc/LINQ-to-BigQuery
- 7. 入門連載
連載は2回で止まってる。連 載逃げたとかかんとか……
2011/11/01で内容的には些か古い (基本原理とかは変わってないの で必ずしも使えない記事というほ どではないですが)
http://www.atmarkit.co.jp/fdotnet/introrx/introrx_01/introrx_01_01.html
>また、今回のお礼を個別にささやかではありますがお食事というかたちでさせていただければと思うのですが、いかがでしょうか。
- 13. Haskellとの関わり
Haskell 98策定者の一人
Programming in Haskellの動画解説とかも
http://www.cs.nott.ac.uk/~gmh/book.html
Parsec: A practical parser library
DaanLeijen, Erik Meijer
http://research.microsoft.com/en-us/um/people/emeijer/papers/parsec.pdf
- 14. @Microsoft Research
Cω(しーおめが) –C#ベースの実験言語 http://research.microsoft.com/en-us/um/cambridge/projects/comega/
2004年にコンパイラプレビュー公開
続報はない、というのもC# 3.0(LINQ) -2008に吸収された
というわけでFather of LINQ でもある
- 15. @Microsoft
Microsoft Live Labs Volta
盛大にコケた
アイコンだけ生き残った(Volta => 電気うなぎ)
Reactive Extensions
2009に実験ライブラリとして公開→かなり普及する(ただし標準 ライブラリ化はならず)→OSS化→他言語への波及
FRP自体はRx以前からあったけど、実験に留まらず粘り強く実用 レベルに落としこんでいったのは感嘆するな仕事だと思ふ
- 16. @Applied Duality
独立開業
Principles of Reactive Programming
https://www.coursera.org/course/reactive
(Martin Odersky, Erik Meijer, Roland Kuhn) –当然Scalaで。
Facebookの型付きPHPみたいな何か新言語
C#スタイルなNullableやGenericsやAsyncなどから貢献が伺える
Microsoftに囚われず自由にやっ てるようでいいことですね!
- 17. その他の人々
Jafer Husain
最初のRx紹介者(MicorsoftでSilverlightの仕事で初期プロトタイプのRxを使った)
http://themechanicalbride.blogspot.jp/2009/07/introducing-rx-linq-to-events.html
その後Netflixに転職し、RxJavaを作成
(つまり言語を超えた普及に最も貢献したのはこの人ではないのだろうか!?)
Mattew Podwysocki
MSの人。地道にずっとRxJS頑張ってる:)
Bart de Smet
Rx 2.0の大半を作成、.NETの超絶エキスパート
現在はWindows Phone 8に搭載されたCortanaをRx使って構築
http://channel9.msdn.com/events/TechDays/Techdays-2014-the-Netherlands/Event-processing-at-all- scales-with-Reactive-Extensions
2014年4月のこの動画はRx入門の決定版とでもいうべき内容
- 19. LINQ #とは
.NETにおいて、RxはまずLINQがあった
LINQ(to Objects)とは……Streamを処理する何か
Where= fIlter, Select = map、文法的にはSQLだけど中身的には
今や当たり前にどこかで聞いたことあるアレソレ
(当時は革新的だった!実用的な意味では今も現役に便利!)
varquery = source
.Where(x => x % 2 == 0)
.Select(x => x * x);
- 23. Rx is not only C#
むしろ他言語のほうが流行ってるのでは感
RxJava, ReactiveCocoa, RxJS/Bacon.js, etc...
要因は幾つかある(Rxの威力のうち非同期の側面は言語統合の非同期構文 (C# 5.0 async/await)が引き受けたから、たとえば非同期の待ち合わせはawait Task.WhenAll()など、うちの会社のサーバーサイド実装でも多用してる)
とはいえ別に決して流行ってないわけではない、よ!#多分
not only LINQ?
切り離してもいいけれど、理解の難易度的にはLINQ(Pull/Interactive)との関 連性から結びだしたほうが捗るのではないかな?
別にLINQじゃなくても、自分のメイン言語のコレクション処理の構文と結び つけてみると馴染める、はずきっと