teslaとかflex向けフレームワークとか

tesla S1070


最近大学だと勉強会ってことでGPU周りをやったりしている。のでtesla S1070君が手に入った。んでもPCI Express x16二つのイジメ仕様なのでホストサーバにつながんなくて、x8二つカードを探し中。
早くイジリたい。CUDAはなるべく書きたくないけれど。

flexフレームワーク

flex向け開発フレームワークCairngorm,PureMVC,Mate,Swizで、おんなじアプリケーションを作らせてる粋なエントリーを発見。
http://coenraets.org/blog/2009/10/max-frameworks-session-one-application-four-implementations-code-available/

僕個人の意見としては、PureMVCはコマンドとかメディエータとかでViewもLogicもモジュール化されるのがすばらしくて、ファサードで中央集権的管理してるのもいい。んだけど、MXML形式で何もしないからFlexライクではないのと、EventつかえばいいのにNotification(ほとんど名前だけだけど)にしてるのも、少し気持ち悪い。モジュール化の粒度とかもホントは自分で決めたい。テンプレートクラスの継承が中軸のフレームワークは、フレームワークべったりなのもちょっとアレな感じ。

その点、SwizはFlexライク。なるべくFlex標準な書き方を出来るようになっとる。メタデータタグで依存性注入する感じなんだけど、モデルはシングルトンライク(シングルトンではないんだけど、勝手に注入される感じ)だから、これもまた少し気持ち悪い。Flex標準のBindingタグの方がよく出来てると思う。なぜならBindingタグはどうしても一カ所にまとめてかかなきゃいけないから、そこさえ見れば、どこがバインドされたか一目瞭然。それに比べてメタデータタグ使うと、けっこー設定が散在しちゃう。Swizはイベント管理についてもメタデータタグを使ってる。プロジェクトが小さいうちは、このやり方がいいと思うけど、大きくなるとわけわかめになりそうだ。ただ、とにかく無駄なコードがないから、書いててすごく気持ちいい。

イベント管理についてはMateはMXML形式でまとめて書けるようになってる。これはFlexライクですごくいいと思うんだけど、よく(必要性が)わかんない独自MXMLコンポーネントが多すぎて、たぶん使う人がすくないんじゃないかな。あとプロトタイプもがっつり使ってるから、静的解析やリファクタリングにだいぶ難もある。あとイベントがグローバルなのも、うーーん。

僕的にはFlexの良さに、MXMLとよく出来たオーサリングツール(Flash Builder)の静的解析やリファクタリングあたりがあるから、そこらへんは外すべきでないと思う。それに加えて、モデルバインディングやイベント管理は中央集権的にすべきだと思う。だからプロトタイプやメタデータタグは使いたくない。なるたけFlex標準で書きたいしモジュール化の粒度も、決められたくない。だからコマンドとかメディエータとか、あとドメインモデルかスクリプティングかとか、そこらへんは開発者に任せちゃっていーんでないの?という気がする。あとよくわからないテンプレートクラスを継承してつかってくれっていうのはすごく嫌い。

なんか話がまとまらないけど総評としては、PureMVCがよく出来てるけど、Flexに最適化されてなさすぎる。いまんところでかいプロジェクトなら、仕方なくPureMVCで、小さいプロジェクトなら俄然Swiz、という印象です。

Cairngorm忘れてたw