冬至のLINQ、Rx談義

LINQ星人たちがLINQとRx(Reactive Extensions)について語る
3
尾上 雅則 @ugaya40

今日から2週間で俺も正LINQ星人になる という決意。出来るかどうかは別として。

2010-12-22 09:19:22
尾上 雅則 @ugaya40

@mfakane 昨日IEnumerableとIObservableをPullとPushという観点から説明されて目から鱗だったので、そこら辺詳しく聞く予定ー。MVVMとは絡めていない感じで。

2010-12-22 09:30:53
かずき(Kazuki Ota) | Cloud Solution Architect at MS @okazuki

LINQ星人ってなにができたらなれるんだろう?なんでもLINQでかいてしまう感じかな?

2010-12-22 09:51:16
尾上 雅則 @ugaya40

@okazuki LINQ星人たちはLINQの実はやばい未来とそれを支える思想を語る前に、やたらとインターフェースの名前を口にする傾向があるから興味を引きにくいのです。彼らは職人なんです。僕が学べたら抽象化します。

2010-12-22 10:01:56
尾上 雅則 @ugaya40

とりあえず昨日はLINQとRx舐めてたのにやたら興味惹かれる結果になった。インターフェースの名前連呼するより、プログラミングに新たにどの軸が加わるのかを昨日みたいに説明してくれたら、もっと早く興味を持てたのに(ボソッ

2010-12-22 10:05:47
尾上 雅則 @ugaya40

Livet保守しなきゃいけないのに、LINQ星人の逆襲を受けてプライオリティが混乱中。

2010-12-22 10:11:13
かずき(Kazuki Ota) | Cloud Solution Architect at MS @okazuki

@ugaya40 なにかLINQ星人すげーーーー!!!!!ってなるコードとかありますか??

2010-12-22 10:22:07
白い高野さん @masaru_b_cl

LINQは「集合」を扱うのが楽になるパラダイムってことでいいよね?

2010-12-22 10:24:40
白い高野さん @masaru_b_cl

そして、Rxは非同期処理が楽になるパラダイム?

2010-12-22 10:24:56
尾上 雅則 @ugaya40

@okazuki 昨日見たのは、PUSH型のLINQ to WMI Events。まだベータ?CTP?かわからないけど、今まで受け身で受け取るしかなかったデータソースをPUSHな感じで受け取れる?みたいなのに衝撃を受けました。

2010-12-22 10:24:56
尾上 雅則 @ugaya40

@okazuki 集合にクエリをかけるのと、集合から通知を受け取る仕組みの相互変換を可能にするのがLINQ(Rx)含みの未来みたいな印象。まだ理解が薄いので怪しいもんですが。

2010-12-22 10:26:02
尾上 雅則 @ugaya40

@okazuki 集合に自分からクエリをかけにいく(今のLINQ)のと、集合からPUSH配信を受け取る(イベント監視みたいなRXみたいな感じ)で、それを相互変換可能な形で可能にするのがLINQの未来っぽいというあやふやな理解。

2010-12-22 10:28:52
白い高野さん @masaru_b_cl

. @nouecc さんのhttp://bit.ly/f5ZlK8のえんとり(JavaScript Advent Calendarのだけど)で、LINQとRxのすごさがわかった。

2010-12-22 10:28:58
尾上 雅則 @ugaya40

@okazuki ポーリングという不自然極まりない監視の手段がきれいになるのかなと妄想してる感じです。

2010-12-22 10:30:28
白い高野さん @masaru_b_cl

違うな、やっぱり何らかのオブジェクトの状態変更通知を受け取るのが楽になるパラダイムか・・・ってそのままの言葉になっちゃった>Rx

2010-12-22 10:31:02
++C++; // 管理人: 岩永 @ufcpp

@masaru_b_cl すでにどこ何蓄積済みの情報の集合を扱うのがIEnumerableで、非同期/リアルタイムに来る情報を扱うのがIObservable、その両方合わせて情報をストリーム処理するのがLINQですかね。

2010-12-22 11:24:02
白い高野さん @masaru_b_cl

@ufcpp 「ストリーム処理」ってのはわかりやすいですね。 / しかしLINQすごい。

2010-12-22 11:39:12
neuecc @neuecc

Linq to WQL自体はサンプルでしかないので発展はしないです。あと、「魔法はない」ので、元の仕組みがあって、それに被せる形でしかないのは変わりません。Linq to Sqlは生SQLに変換するよね最後に、的な。

2010-12-22 11:59:32
neuecc @neuecc

今回だとManagementEventWatcherが元よりイベントを配信しているので(EventArrived)、それを変換しているだけで。WQLはSQL文字列だから、文字列じゃなくLinqとして書きたいよね、クエリ結果はイベント配信だね、はい、IQbservable。

2010-12-22 12:00:13
かずき(Kazuki Ota) | Cloud Solution Architect at MS @okazuki

@ugaya40 非同期とかイベント処理とか集合に対する処理をひとまとめにできるのはアツいですよね!LINQらぶ。SLやWPFの開発では必須ですよね!

2010-12-22 12:00:35
neuecc @neuecc

通知の仕組みがシステム側に用意されていない限りは、ポーリングしかありません。但し、Rxならばポーリングもイベントも同じPush型シーケンスに載っかるので、特に区別することなく書けはしますが。

2010-12-22 12:02:04
尾上 雅則 @ugaya40

@neuecc ポーリングしかないものをポーリングを隠ぺいする感じで実装できるイメージだと感じたような。

2010-12-22 12:04:35
かずき(Kazuki Ota) | Cloud Solution Architect at MS @okazuki

@neuecc ポーリングっていうめんどくさい処理をIObsfrvable内に隠せるのがいいですよね。隠しちゃえばあとはLINQの強力なメソッド群が使える

2010-12-22 12:04:38
尾上 雅則 @ugaya40

@okazuki なんというか、その先を感じましたよ。

2010-12-22 12:06:35