使ってみた
Haskellのような理論からの実装というより、実用重視の実装らしい
昔、本が出たときに見た限りだとベータ版でどうかなぁと思っていたけど、今は2.0がα板だそうな。
Vistaだと、MinGWとか、どうも実装が変わっているようでそのままでは動かないんで、こいつはどうかなぁと思いつつ・・・。
なんか、えらいコンパクトなサイズ。ダウンロードの圧縮段階で全部で6MByteくらいしかない。
コンパイルも結構早い。
うれしいのは、Eiffelみたいに契約の概念が導入されていること。
関数とかの入力と出力の条件を本文の外側に記述できる。
で、デバッグモードとリリースモードを最初から持っていて、リリースモードにすれば
チェック部分が生成されない。
ユニットテストも、言語仕様に組み込まれている。
なかなかのものです。
C用のライブラリーのAPIもそのまま使えるので、OpenGLとかも使えるようだけど
Window定義のリソースコンパイラーとかがいるみたいで、まだできていない。
IDEもいくつかあって、Eclipseとかでもできるようだけど
まだ、発展途上らしい。
個人的にはIDEは優先順位低いけど、100万ステップとかの開発ができると謳うには
IDEとかGUIで色々できる環境がそろわないと使おうとはいえないなぁ。
言語比較のサイト(http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all)を見ると3位。
結構早い。(Rubyってスクリプト言語のなかでも意外と遅い。VMの変更の話とかJRubyの話が話題になっているのはこのあたりもあるのかな)
D Digital MarsのDMDって処理系が最初だけど、
GCCでのGDC実装もだんだんバージョンがあがっている。(まだ、1.0以下だけどw)
コンパイラーの構成(字句解析、構文解析、意味解析)の独立性も高いらしいから、GDCは期待していいかも。
Javaも5あたりで十分な感じで、6,7となんだか、肥大化しちゃうみたいだから、業務は別として
普段はこっちに乗り換えようかな。CとかC++は楽だけど、メモリ管理あたりのコード書くの結構めんどくさいからねぇ。
固定で宣言すると楽だけど、外部変数にしちゃうと、サイズが変わるたびにコンパイル必要だしねぇ。
メモリ管理はJAVAが楽だけど、C++みたいに演算子のオーバーロードできれば、表現が簡単になるところあるし。
個人で作ると、テストコードと本体がばらばらになってうっとおしいしねぇ(整理が悪いという突っ込みはなしw)
本家は英語だけど、http://www.kmonos.net/alang/d/index.htmlでそのままの日本語サイトがあることもうれしい。
あぁ、そうそう。
dmdのコマンドにSCってコマンドがあるけど、これって、XP以降に追加された、Windowsのサービスとかのクエリーコマンドとかぶってます。
SC自体は、DMCってコマンドと同じ機能なので問題はないんだけど、UnixとかでSCコマンドを使っていた場合は要注意かも。
(個人的には、管理機能だろうがなんだろうが全部一緒くたにしちゃうWindowsのほうを何とかしてほしいけど、無理だろうなぁ)