Dは、ObjectiveCのように、C++における深刻な問題に対処しようとする、比較的新しい言語である。Cristian Vlasceanu氏へのインタビューから引用する。
多くの点で、Dは"正しい"振る舞いを促します。たとえば、CやC++では、"int i;"と書いてもその変数は初期化されません。"正しいこと"をさせるには、プログラマは "int i = 0;"というように余分にキーを打つ必要があります。しかしDでは別の方法を取ります。 "int i;"と書けば安全にデフォルト値がセットされます(この場合はゼロ)。初期化しないようにする場合はより多くの努力を要します。"int i = void;"と書くことで、意図的に初期化していない変数であり怠惰なためではないことを表現するのです。
D.NETは、D言語を実験的に共通言語ランタイムへ移植したものである。それは、フロントエンド・コンポーネントとバックエンド・コンポーネントの2つの部分から構成されている。フロントエンド・コンポーネントは、ソースコードの分析と抽象構文木の生成を担当する。バックエンド・コンパイラはそれを受けて、実際の機械語(この場合はILコード)を生成する。ソースコードは両方ともCodePlexでダウンロードできるが、そこでメンテナンスされるのはバックエンドだけである。フロントエンド・コンポーネントは、D 2.0 プログラミング言語コンパイラから取り込まれる。
注意書き
バックエンド・コードは製品用途の品質にはなく、研究および教育目的で利用されることを想定している。Dプログラミング言語はかなり複雑な言語であり、TLSやクロージャのような重要な機能によって、ILコードを生成するケーススタディとして興味深いものとなっている。