新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

DLR の死と COM の復権

マイクロソフトのばか野郎!!
DLR を一生懸命勉強していたら、WinRT だと?WinRT の本質はどうやら COM らしいのだが、昔の COM は当時(2003年ごろ)情報が少なくて、いっぱい資料を買った割にはなんだかよくわからなかった。その上、Microsoft のページの更新も止まっていて、こりゃだめだと。
時代は Java に移行しつつあったし、Microsoft もあわてたんだろうね。一気に C# と IL の世界に行った。C#XML による GUI 構築は非常によくできていて(のちに Android にパクられる)、これは silverlight とともに世界を変えるかと思ったけど、、、
結局、Java のトーンダウンと Google の台頭で技術よりインタネットコンテンツの方が重要視されるよのなかになっちゃった。みんな、スタートアップ(実は金)とかいってネットにのりだすようになった。IT なんて聞いたこともなかった言葉も定着した。
で、Microsoft は COM をやめようと思ったフシがあるんだけど、結局 COM って Windows の中核にありすぎてか?あるいはもともとよいアイデアだったのか?Windows8 で復活することになったらしい。(ほんとうか?)
とにかく COM に metadata なるインタフェースをかぶせて、すべての言語間を行き来することができるようになるらしい。ほんとうか?信じるぞ。
で DLR はどうなったかというと、どうやら致命的な設計ミスもあり~ので捨てることになるみたいだ。ironRuby も ironScheme も将来的にはお蔵入りだ。
これは RubyScheme が Windows で使えないという意味ではない。ironRuby とか、書いたソースが結局 Microsoft の中間言語に落ちるみたいだが、そもそもそんな必要はなく、普通にマシン語(古い言い回しだな)に落とせと、、、i386 系のネイティブなアセンブラに落としてそのまま動きなさいという事らしい。でもって、Windows や他とのやり取りはメタデータを通して行う。メタデータの先には COM がいるかもしれないし、C# のプログラムかもしれない。普通の DLL ということもあるかもしれない。なんだよ普通じゃないか。
まぁとにかく時代はメタメタになったわけだ。WinRT + Windows8 で。Windows7 にはバックポートされないみたいだから、当分、使うチャンスはなさそうだけど。
どうやって普通の言語からメタデータを生成して呼び出すのかわからないけど(資料が少なすぎるし、WinRT と Surface の情報が混じりすぎていて検索で正確にヒットできない)、まぁ簡単には Visual Studio から C++/CX を使えばよさそうだ。いちいちメタデータリーダとか自前で作ってらんないからね。
それにしてもマイクロソフトのこの決断は時代の先を行くのだろうか?バイトコードからネイティブに揺り戻した結果、スピードではマイクロソフトが有利になるかもしれない。消費電力とかスピードで有利なると小さい機器では有利かもね。
iOS は結局、ネィテイブだからパワーいらないのをまねたかね?
Objective-C より C++ の方が結局スピード早いだろうしね。