私は基本的にものぐさなもんで、新しい言語を覚えようという気概に乏しいんですけど、Dはちょいと気になった。個人的に感じたDの利点として、
- ランタイムを必要としないexeが作れる(JavaとC#はこの点でいまいち)
- CとJavaを混ぜたような素直な表記(C++の作法があまり入ってきてない)
- 既存のCの資産との親和性が高そう(JNIはやっぱり面倒だしね)
- コンパイルが速い(つうかgccのC++コンパイルはなんであんなに遅いんだ)
- Design by contractやUnit testによるデバッグサポート
てなところがある。最後の点は興味深いけど実際に使いこなせるかどうかはわからない。使ったほうがいいんだろうけど。
気になる点、問題になりそうな点は、
- 枯れてない。コンパイラの不具合やライブラリの不足に悩まされそう
- ポータビリティの低下。SDLでゲーム書くとMacOSXに移植してくれる方とかいて非常にありがたいのだが、そういった広がりが望めなくなる
- Thread周りがひょっとしてJavaのタコい設計引きずってる?
あたりか。ガベコレに関してはあまり心配してない。Javaでゲーム書くときは、すべてのオブジェクトをプールして、ガベコレが発生しないようにしているので、同じように書けばいいだろうと思っている。一時的なオブジェクト生成も、autoを組み合わせてスコープ内でばんばん捨てればいいだろう。