なぜD言語?

 大事なことをまだ書いていなかった。なぜD言語を使うのか。――前置きばかりで全然製作に入っていないじゃないかとうんざりする人もいるかもしれない。でも読んでいる人なんてまだ誰もいないだろうからいいや。


 D言語を使うのは、ぶっちゃけ好きだからだ。C++JavaC#(ほとんど使ったことない)を全部まとめたより好きだ。(Rubyが出てくるとちょっとうっとなってしまうけど、個人的にネイティブコード&強い型システム万歳の人間なのでやっぱりDが好きだ)
 Dには、先述のC++JavaC#をまとめてスマートにして、スクリプト言語風の簡便な構文を導入して、さらにあまりにも強力すぎるメタプログラミング機能を搭載している。どのくらい強力かというと、まだ誰も使い道を思いつけないくらい強力なのだ。メタプログラミングの構文だけでコンパイル時に正規表現コンパイルできたりする。
 何かコンセプトに縛られすぎていないところも却って良い点だと思う。JavaC#はそれぞれJVMや.Netの手先だし、そもそもSunとMSの環境の手先なのだ。これは、バックについている企業が環境を含めて何もかも提供できてしまうためだ。これらの言語に浸かることは、Sun・MSの環境に浸かることだ。
 環境に浸かることは悪いことではないし、コンピュータを使う上でむしろ必要なことかもしれない。だけど私は根が作家なので、どうしても自分の言葉を欲してしまう。手垢にまみれていない私の言葉を使いたくなってしまう。
 D言語はネイティブコードを吐く古典的コンパイル言語だ。バックにどんな環境も想定していない。D言語の開発元Digital Marsには何もかも用意するなんていう力はない。環境と呼べるようなものが何もないD言語には、私のプライベートな信念を受け止めてくれる柔軟性と弱さがある。
 例えるなら、D言語は杖なのだ。杖はそれだけでは立っていられない。人に握られて地面に突かれ、それで初めて立っているといえる。同時に人間を支えて立ったり歩いたりできるようにもする。これがもし椅子のような安定しきったものの場合、人の支えにはなれても歩いていく道具とはなりえないだろう。D言語は不安定で片手落ちで弱々しい。だからこそ、プログラマーを支えて歩かせることができる。私がD言語を選ぶのは、実用的な数多の理由とともに、こんな性質も兼ね備えている部分が大きいと思う。

 で、実際のところD言語が使えるかどうかは、結構たくさんの人が書いてくれているのでそういう人たちの優れた解説を読むと良いよ。