Entry

比べるもんが違うんでねいの?とちょっと思ったこと

2007年08月29日

あたしも MFC はあまり好きじゃないんですけど,この批判はどこから出たもんなんだろう……と,つらつら。

  • Delphi、Java、.NET Frameworkなど他のオブジェクト指向ライブラリは、言語仕様やライブラリ内にメモリのガベージコレクションの機能が標準で入っているのに対して、MFCはガベージコレクションを採用しなかったという、致命的欠点を持ち、それ故、バグを生みやすく、生産性が低い。
  • CDocument, CView などのMVC周りの仕様が、事実上必須であるにもかかわらず、難解である。
  • 言語として、C++を採用しているため、他のオブジェクト指向言語と比べて、コンパイルの時間が長い。
Microsoft Foundation Class - Wikipedia

特に,ガベージコレクションあたりの批判。ご存知の通り,ガベージコレクションはアルゴリズム的にかなりコストがかかる仕組みだし,C/C++ともあまり相性がよろしくありません。個人的には,なんで C++ で無理矢理ガベージコレクションなの?とか思ったり思わなかったり。てめえでメモリの面倒も見られねぇようなら,VBでも使ってろ,とかとかとかとか……(ゴメンナサイ,ゴメンナサイ(いろんな人に))。

けど,Delphi や Java のような言語仕様と,言語仕様ではない MFC を比べるのは,ちょっと違うと思います。Delphi と C++ を比べるならまだ分かるけど。それにしたってガベージコレクションを採用する言語は,その代わりに捨ててるものがあるわけだし,それはそれで採りうる設計思想のひとつだったりします。そんなもんで,相容れない設計思想をかち合わせたところで,ただの好みの問題になってしまうんじゃないかなぁ……とかとか。

あたしゃ Win32 API を触ってから,MFC をコチョコチョやりだしたクチなので,それと比べると,まだ MFC はスッキリしている気がします。あの長大な switch 文や,原型をとどめていないマクロ群を扱うのは,いろいろな意味でツラい……。それでも,お見せするには程遠い小物ツール達は,ほとんど Win32 API で作ってるんですけどね。雛形があるから,小さいもんを作る分には,Win32 API をそのまま使った方が楽なのです。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN