• ベストアンサー

COMコンポーネントって消えますか

.NETがでてきて10年近くですが、まだCOMはあります。今後COMは消える運命にあるんでしょうか?COMが完全にとってかわる日がくるなんてことがあるのでしょうか?また、OS自体がC++からC#で書きなおされる日はくるのでしょうか?本当のところはMSにしかわかりませんが、どう思われますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • __hide__
  • ベストアンサー率66% (2/3)
回答No.1

COMという表現は実に曖昧で、広義にはC++によるインターフェース機構そのものとも言えますし、狭義にはWindows上のActiveXと言う事もできるでしょう。 ご質問のお言葉どおり「MSにしかわかりません」なのですが、広義に捕らえた場合のCOMは今後ともプログラミングの主役であり続けると思われます。 よく「COMは昔の技術」という表現を目にしますが、これは誤解で、.NETのような中間言語でラップされているから表面的には見えないだけです。また、COMはC++への理解が必要なために、とっつきにくい面がありますが、十分に理解が進むとクラスの偽装がいとも簡単にできる事に気づきます。既定のあらゆるCOMオブジェクトはそのVTBLを置き換えたり、同一型のクラスでラップされても文句が言えない規格となってます。 ですから、生のCOMには触ってもらいたくないという意図からも「COMは昔の技術」とアナウスされているのではないでしょうか。 これは私見ですが、OS自体やIEやOFFICEが中間言語で作成されることは無いはずです。何故なら逆コンパイルされるリスクと実行速度の低下を招くからです。

mellow91
質問者

お礼

ありがとうございます!勉強になります!

その他の回答 (1)

回答No.2

私ごときがMSの戦略を知る由もありませんが、 シェルネームスペースなどの、OSやOSに近い部分へのインターフェース、 Excelのオートメーションなどのアプリケーションインターフェースなど、 COMは未だ広範囲に使われています。 無くなったら非難ごうごうでしょう。少なくとも代替手段を提供して もう10年くらい待たないと駄目でしょう。 OSがC#化(Managed化)できるかですが、OS自体は .NET の VM を提供する側ですから OSの本当の最深部までC#化することは無理でしょう。 また、OSの深部を Managed化するのは、実行効率などを考えると 難しいと思います。周辺のライブラリが managed化するのは従来どおり 進むと思います。

mellow91
質問者

お礼

ありがとうございます!勉強になります!

関連するQ&A