「D言語」の版間の差分

M
fix typo, lk
M
M (fix typo, lk)
D言語はWalter Bright氏によって開発が始められた言語です。<br>
 
2010年代にFacebook社がD言語を支援したので有名になりましたが、しかしFaqcebookFacebook開発ではなくWalter Bridge氏の開発する言語あり、2001年からD言語は公開されています。
 
なお、Walter Bright氏は、低価格/高速コンパイラで名を馳せた Datalight C。世界初のnative-C++コンパイラ Zortech C++、そしてその後継であるSymentec C++、Java開発環境 Cafeなどで知られています。
 
== D言語の特徴 ==
D言語はC++とは違い、C言語とのソースの互換性はありません(C言語のライブラリとは互換性あり)。そうしてしまうと古い時代遅れのノウハウ(バッドノウハウ)を引きずりかねない、と考えていためです。
 
D言語はシステムプログラミング言語を目指しています。システムプログラミング言語とは、オペレーティングシステムそのものの開発もでき、高速で動く言語のことです。(たとえばC言語はシステムプログラミング言語です。LinuxはC言語で書かれています。)
 
実際にD言語で開発されたOSが市販や公開されているかはともかく、D言語がOS開発言語も目指していることは、利用上、とても重要です。なぜなら、ユーザーにとって手間が掛かるかもしれないが、とりあえず、今までC言語で出来たハードウェア制御や、D言語でもひととおり出来るようになる予定・目標だからです。
 
 
D言語の特徴をいくつか上げておきましょう。
 
* ネイティブな形式にコンパイルされるため動作が速い - JavaやRubyなどのインタプリタや仮想機械上で動作する言語に比べて非常に高速です。
* 自動メモリ管理 - [[w:ガベージコレクション|ガベージコレクタ(GC)]]を搭載しているため、メモリの取得・開放に関してプログラマが気にする必要はありません。もちろん手動でメモリを管理する方法も用意されています。
* 保守性 - assert、[[w:単体テスト|unittest]]、invariant、debug, version による条件コンパイルなど、プログラムの保守性を高めるための機能があります。また、関数に定められる@safeなどのセキュリティレベルも保守性に貢献するかもしれません。
* 可読性の高いテンプレート - C++と比べてテンプレートの構文がすっきりしていて仕様を把握するのも簡単です。
* コンパイラの開発しやすさ - D言語はそのコンパイラの開発が簡単になるように設計されており、パースするのもC++とは比べ物にならない速さです。
 
上記のうち、C, C++ との共通点は、ネイティブコンパイルされることくらいでしょう。上記に列挙されてない共通点を挙げるなら、たとえば main 関数がD言語でも存在しておりプログラムの開始位置になる事など、なるべくC言語の知識を使いまわせるように設計されつつも、C言語のprintfのような古い関数は D言語ではwritef を使うなど、ところどころD言語は新しい関数に置き換えられています。C++と違って cout の後ろの<nowiki><< </nowiki> の方向が <nowiki> >> </nowiki> だったかそれとも <nowiki> << </nowiki> だったかで悩む必要もD言語では無く、直感的にD言語は扱いやすく設計されています。
 
== Hello World! ==
まずは環境がちゃんと動くか試してみましょう。例として、[[w:ハローワールド|"Hello World!"という文字列を表示させる]]プログラムを作ってみることにします。テキストファイルを新しく作り、hello.dという名前にしたらテキストエディタで以下のように編集します。
 
;hello.d
733

回編集