TL;DR
静的型付けで、システムレベルのアクセスと C に似た構文を持つ汎用プログラミング言語。ネイティブのマシンコードに直接コンパイルされる。
なぜ必要か
公式サイトは「write fast, read fast, and run fast」を掲げている。型推論で明示的な型の多くを省いて素早く書け、多様な書き方で読みやすく書け、ネイティブコードとして速く動く、という意味である。
仕組み
公式サイトによると、D は次の特徴を持つ。
- 型推論を備えつつ、静的型付けを保つ
- 自動のガベージコレクションに加え、RAII パターン や
scope文による決定的な後始末も使える - 配列、スライス、連想配列、レンジを言語に組み込んでいる
- クラスによるポリモーフィズム、値のセマンティクスを持つ構造体、関数型のスタイル、ジェネリクス、コンパイル時のコード生成、契約プログラミングを使える
- 並行処理では、イミュータブルな共有データ、メッセージパッシング、既定で共有しない方針を取る
- C の関数を変換なしで呼べ、手動のメモリ管理やインラインアセンブリも使える
@safe、@trusted、@systemで、関数ごとに安全性と効率のどちらを取るかを選べる
例
UFCS を採用していて、入れ子になった関数呼び出しを左から右への連鎖として書ける。複数のアルゴリズムを組み合わせてレンジを処理するときに特に役立つ。Web アプリケーションのツールキットに Vibe.d がある。
公式の DLang Tour では、各節のサンプルコードをブラウザ上で編集し、コンパイルして実行できる。