.Net Framework雑感

アプリケーション本編部分はそこそこ簡潔に書くことが出来ますし、Visual Studio 2005の強力なIDEで快適に開発できます。リモートデバッガが強力なのでデバッグもかなり容易です。
……でもなー、いろんな意味で、Javaにはだいぶ及んでいないなぁ、というのが.Net Frameworkの感想です。

  • デメリット
    • .Net Compact Framework2.0(と、.Net Framework 2.0)は、J2MEPP(と、J2SE)に比べて不自由
    • Write Once,Run Anywhereにはほど遠いビルド環境
    • リソースハンドリングが妙に複雑で独自仕様が多すぎ
    • 結局何かというとネイティブに逃げたがる。共通仕様の内側でもMicrosoft.*名前空間を使わないと何も出来ない。
    • 命名規則名前空間のルールが謎
  • メリット
    • パフォーマンスはすごくいい
    • Genericコレクションとボクシング最強(こんなに快適なのはSmalltalk以来)
    • Windows Formは便利で、非常に素直な設計(ちょっとでも離れるととたんに面倒(^^;))
    • 組み込みでも、デスクトップでもデバッグが楽
    • マーシャリング最強。足りない機能はどんどんネイティブを叩けば何でも出来る(デバイス非依存からはどんどん遠のくけど(^^;))
    • プリプロセッサマクロ快適<堕落してるぞ(^^;)

何よりも、「パフォーマンスがすごくいい」ってのがゲーム屋的にはありがたいですね。正直、Windows Mobile上のVMがこんなにパフォーマンスがいいとは思っていなかったので、思ったよりも凝ったことが出来そうです。あ、いや、ハードウェアにおんぶにだっこの描画部分はちょっとおいておいても。
あと、てきとーにちゃちゃっとアプリケーションを作るのにはいい感じですね。これは、ゲームエンジンと平行して作っていたNotepadWMでも感じましたが。むしろ、ゲームエンジンで大変苦労していたところに「もしかして、Windows Formに逆らってるからでは?」と思い直して試しに作ったNotepadWMが予想以上に開発効率が良かったのがびっくりでした。
むしろ、Windows FormのControlだけを使ってゲームを作る……のはほぼ、無理か(^^;)。やってみても罰は当たらなさそうだけど、再描画周りが大変なことになるな。DoubleBufferingプロパティはそんなにきちんとは動いてくれてないみたいだし。


もっとも、Java5もオートボクシングとGenericコレクションと、foreach(これが便利!)はついてるので、Eclipse上で使う分には.Net Frameworkと対して違わないかもしれませんね。yieldがないのは残念だけど。
もう昔のVodafoneの仕事は来ないだろうし、Java5を入れちゃってもいいよなぁ……(Vodafoneの昔のエミュレータはJava5を入れると動かなくなるのです)。