http://www.publickey1.jp/blog/11/buildday125.jpg
Windows8ではWinRTというのが搭載される。これは従来のWin32 APIを置き換えるもので、「Metro」スタイルのアプリケーションを作成するための環境である。噂通り、デスクトップでもスマートフォンでもどちらでも動くアプリケーションが作れる。
ネイティブCOMの環境だという。COMが登場してから、いつかAPIがCOMベースに置き換わる、そういう時が来るとは思っていたが、実際私が予想したよりもずっと後になってしまった。.NETが実質APIの置き換えだったのだろうけどね。でもネイティブを捨てる選択を取らなかったのでひとまずは良かった。
C++はあのCoCreateInstance~Releaseとかスマポとか使って使うのではなく、C++/CLIに似た構文のC++/CX拡張を使って書くらしい。 呼び出しコストもほとんどかからないらしい。リソース・コントロールも行なってくれるのだろうか。でもリソース・コントロールはスマポで十分なような気がするけどね。
本の虫さんの「C++11のattributeは流行らない 」に出てくるC++/CLIはC++/CXの誤りなのかな。まあattibuteにしろ言語拡張は慎重にしてほしい。ソースコード観た感じでは現状のC++にはないキーワードがあるし、妙な記述の仕方は気になる。。C++ではないような新たな言語みたいだ。。C++11との整合性はどうなるのだろうか。。
property Platform::String^ Title { Platform::String^ get(); void set(Platform::String^ value); }
UIはXAMLで書くということで、WPFに似たものとなるのだろうか。これもコード・ビハインドでWindows FormとかでC++/CLIアプリを作る感覚に近いのだろうね。
特筆すべきなのは、WinRTではJS+HTML5でもアプリが作れるということ。WSH・HTA・JS.NET・ガジェットなどはすべてJS+何かの技術だったりしたわけだけど、何かと制約が多かったり、MS独自な感じであった。ようやくWinアプリを世間一般の技術で作れるようになるわけだ。WinRTを使う時点でMS独自にはなってしまうのだけれど、そのあたりはあまりJSとかにMS独自仕様とか入れないような雰囲気がある。今後どうなるのか興味シンシンである。