MochiKit、関数プログラミング

MochiKitに対してはid:brazilさんの意見と大体同じ感想を抱いてます。主に関数型プログラミングから来るなんだかわからない期待感と違和感。でもとりあえずやってみようという。
僕の場合はCatalyst界隈で噂になったのがきっかけです。prototype.jsが話題になった当時は便利なライブラリが出てきたんだねぇ程度で、すぐに自分で手を出そうとかは思わなかったんですけど。
関数型プログラミングを意識してる割にはそういうサンプルがほとんどなくてbind,map,filter,reduce,list,iterの有効に組み合わせた使い方が掴めないです。サンプルだから敷居を下げているんでしょう。このあたりはやはり風呂に入りながら考えてましたね。そういうものなのでしょうか。
ファウラーさんの「リファクタリング」で処理を細かい単位に分けて関数化してしまうのって結局、関数プログラミングの「副作用の排除」に繋がるんだろうなぁ、とか思ったり。細かく分けた関数名も「宣言的」な気もするし。「リファクタリング」はまだ最後まで読んでないんですけどね。
MochiKitていうとScreencastでも見られるダイナミックなDOM操作とか最近だとscript.aculo.usの移植が始まったとかが一般的な印象だと思うんですけど本当はJavaScript関数プログラミングの素晴らしさを伝えようとしてるような気もします。
MochiKitてドキュメント豊富なのは嬉しいんですけどどこから手を付けたらいいかわからないんですよね。でしばらく眺めてBase,Asyncが重要かなと思ってそこから勉強し始めたわけですけど紹介するのも難しい。ということで「サンプルコードを読む」手法をまねさせてもらいました。でもDeferredの説明としては多分これだけじゃ不十分な気もしてるのでそのうち詳細に書くかもしれません。今回は紹介程度ということで。
あとXMLな"AJAX"て終わりなのかなぁとか。クライアントで弄り回す目的ならJSONのほうが楽っぽいですね。ライブラリとしてサポートしてるものはまだ少ないらしいのでそこもMochiKitの強みか。