私はDを試してみたいと思いますが、私はそれにどのコンパイラを使用するのかよく分かりません。トピックに関するいくつかの記事やSOの質問を見つけましたが、最新のものは見つかりませんでした。どのDコンパイラを使用しますか?
各コンパイラのメリットは何ですか?その欠点は何ですか?今はDMDコンパイラが私にとっては最高のようですが、私は時代遅れの情報に惑わされるかもしれません。
私はDを試してみたいと思いますが、私はそれにどのコンパイラを使用するのかよく分かりません。トピックに関するいくつかの記事やSOの質問を見つけましたが、最新のものは見つかりませんでした。どのDコンパイラを使用しますか?
各コンパイラのメリットは何ですか?その欠点は何ですか?今はDMDコンパイラが私にとっては最高のようですが、私は時代遅れの情報に惑わされるかもしれません。
メインのDコンパイラ(dmd、gdc、ldc)はすべて同じフロントエンドを使用しますが、dmdは一般に参照コンパイラよりも少し先にあります。また、他の2人が(WindowsやOS X IIRCを中心に)まだいくつかの機能を実装していないケースがあると思いますが、一般的にうまく機能します。 gdcやldcの主な利点は、より速いコードを生成できることです(ただし、コードに依存する速さは異なります)。しかし、コードをコンパイルするのにさらに時間がかかります。
あなたがちょうど始めているのであれば、私はdmdを使って心配しないことをお勧めします。それは、最新のコンパイラであることが保証されており、私はそれがほとんどの人々が使用していると信じています。主な欠点は、生成するコードがあまり速くないということですが、後で他のコンパイラを実際に気にかけていれば、後で調べることができます。
生産コードについては、私が一般的に取るアプローチは、dmdを使用して開発し、gdcまたはldcのいずれかを使用してプロダクションコードを生成することです。そうすれば、コードを開発するときにはコンパイル時間が短縮されますが、より高速なバイナリを生産することができます。
ジョナサンの答えに追加:
あなたの選択はまた、あなたが使用しているOSによって制約されます。 Linuxでは、3つのすべて(DMD、GDC、LDC)が利用可能です。 Windowsの場合、特にVisual Studio(Visual Dアドオンの取得)に慣れている場合は、DMDが唯一の選択肢です。 WindowsでのGDCまたはLDCの使用には様々な程度の痛みが伴います(this discussion参照)。
SIMDで再生したい場合は、DMDを使用します。他のコンパイラには、(DConf 2013の協議に基づいて)実装が不完全または欠落しています。
も参照してください[GDCとDMDの選択](http://stackoverflow.com/questions/14199676/choosing-between-gdc-and-dmd) –
関連項目[DMD vs. GDC vs. LDC](http: //stackoverflow.com/questions/6767065/dmd-vs-gdc-vs-ldc) –