Event programing fun with AnyEvent and Coro
AnyEvent 面白そう。
というわけで、聞き入っていた。
# ってゆーいいわけ。
EventLoop なモジュールはたくさんある。
でも API はどれも違う。書き方が違い過ぎて、ある EventLoop なプログラムを、他の EventLoop へ移植できない。
POE::Compornent には 250 ものサブモジュールがある。
多くのモジュールがあることはいいことかもしれないが、実際のところは移植性がないせいでただ増えているだけ。
AnyEvent を使うとどんなバックエンドでも動く。
バックエンドを判断し、それにあせて EventLoop する。
AnyEvent には 35 のモジュールしかないけれど、それで十分であり増やす必要性もない。
AnyEvent について
AnyEvent->condvar;
というのがよく出てくる。Condition Variable と呼ばれる状態を保存している変数で、すごく重要。
~~~~ いろいろな使用例 ~~~~
- AnyEvent::Socket
- AnyEvent::HTTP
- AnyEvent::IO
- AnyEvent::Twitter::Stream
- StreamAPI を利用している
そのた
AnyEvent ではまる場所なんかの解説がありました。
循環参照を使って、スコープを無視する技とかも。
スライドが公開されたら、それ見るのがすごくよさそう。
使用例とかも、シンプルで分かりやすかった。
公開されてたー。
http://www.slideshare.net/miyagawa/asynchronous-programming-with-anyevent