使ってみた

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のほうを何とかしてほしいけど、無理だろうなぁ)