D言語をインストールしました

KuinはWindowsでサクサク動くけど、できることが少ない。

「そうだ、他の言語をやろう」

と思ったときに、何をインストールしますか？定番はVisual Studioですね。Visual Studioには無償版もあります(ただしバイナリを配布するときにコードを公開しなければならなかったと思います)。あとはUnityですね。UnityはVisual Studioよりも安価で容易にゲーム開発を始められるのでいいと思います。HSPは趣味のゲーム作家達の定番言語になっています。HSPでもいいでしょう。

Visual Studio、Unity、HSPは解説サイトも多いので初心者の障壁が比較的少ないと言えます。では他の選択肢はないのでしょうか。マイナー言語で勢いがあるのはHaskellとRustですが、私のお勧めはD言語です。なぜかというと、D言語が一番C++に近い言語だからです。WindowsでイカしたプログラミングがしたければWindowsのプラットフォームSDKに肉薄する必要があります。HaskellやRustなど、他のマイナー言語はD言語よりもWindowsプログラミングから遠いのです。

WindowsプログラミングがしたければWindows SDKを導入する必要があります。Win32 APIなど、Windowsが用意しているライブラリ群を「静的リンク」しなければならないのです。動的リンクは静的リンクよりも動作が遅く、手順が複雑なのでマイナー言語の使用者はうんざりしてしまうでしょう。D言語はWindowsユーザーを見放したり軽蔑したりしません。

RustやNimはD言語よりもイケてる言語ですがWindowsから遠く、LinuxやMacOSに近いのでWindowsではイケてないプログラムしか組めないのです。RustやNimがやりたければLinux Subsystem for Windowsという暗い檻の中で過ごす必要があるでしょう。またはLinuxデュアルブートか仮想マシンかWindowsをLinux専用機にしてしまうか。

D言語が怖いですか？大丈夫です。私がお供いたしましょう。D言語はあなたをとりこにするでしょう。

# はじめてのDプログラミング

DMDをDigital Marsからダウンロードしてインストールしましょう。

[Digital Mars(D言語の開発元)](https://dlang.org/)

D言語はVisual Studioに比べて軽装なので200MBほどのストレージ容量があれば十分です。~~ただしWindowsプログラミングをする場合はWindows SDKが必要になり、Windows10 SDKは2GBほどのストレージ容量を消費するので注意しましょう(通常のWidnowsマシンであれば問題にならない容量)。~~(2018/12/11追記 Kuin Advent Calender 12日目の記事で、DMDだけでWindowsプログラミング可能であることを確認)

さて、D言語のソースファイルを置いているフォルダに、以下のような記述のバッチファイルを置いておきましょう。

```dlang.bat
set PATH=%PATH%;D:\Dlang\dmd2\windows\bin
```

このバッチファイルは、D言語のツールチェインを使えるようにします。私は「D:\Dlang」というフォルダにインストールしたのですが、「C:\D」というフォルダにインストールした場合は`set PATH=%PATH%;C:\D\dmd2\windows\bin`というようになります。

さて、最初のD言語のプログラムを実行してみます。次のソースファイルはUTF-8で保存してください。

```hello.d
void main()
{
	import std.stdio;
	writeln("こんにちは、世界");
}
```
コマンドプロンプトを起動します。起動するには、Cortonaに`cmd`と入力してエンターキーを押します。
![001.png](https://qiita-image-store.s3.amazonaws.com/0/64229/e01788ac-7467-73ac-d8d2-d5b4cb599010.png)
コマンドプロンプトでソースファイルを保存したフォルダまで移動します。私はデスクトップをDドライブに設定していて、ソースファイルを保存しているフォルダはデスクトップの下にあるのでこのような感じに移動しています。
![002.png](https://qiita-image-store.s3.amazonaws.com/0/64229/a2a9bcbe-2e65-114f-d9fd-3e53bc4ab250.png)
目的のフォルダに行くためには、まずドライブレター(C: D: といったもの)を設定します。次に`cd`コマンドで移動します。`C:¥Users¥春男`の後は`D:¥`と表示されていますが、これがドライブレターの移動です。`D:¥`から`D:¥Users¥春男¥Desktop¥dlang`へは`cd`コマンドで移動しています。分からない人はコマンドプロンプトの使い方を他のサイトで調べてみましょう。

`dlang.bat`を実行します。
![003.png](https://qiita-image-store.s3.amazonaws.com/0/64229/5b3ea800-0c65-cb49-5f6f-7588e6bb944a.png)
コードページをShift-JISからUTF-8に変更するために`chcp`コマンドを入力します。`chcp`コマンドを引数無しで実行すると現在のコードページが表示されます。コードページをコードページの数字をオプションとして実行するとコードページが変更されます。
![004.png](https://qiita-image-store.s3.amazonaws.com/0/64229/b9905a37-a6df-6f85-b4f8-d96dee3ff275.png)
![005.png](https://qiita-image-store.s3.amazonaws.com/0/64229/d44f91bd-e052-5beb-f948-ffb19f0117b5.png)
コードページは、コマンドプロンプトが扱う文字コードの設定です。これのデフォルトが932(Shift-JIS)なのですが、D言語ではUTF-8を扱うので65001(UTF-8)に設定しました。

`dmd hello.d`と入力してソースコードをコンパイルします。
![006.png](https://qiita-image-store.s3.amazonaws.com/0/64229/dd7a4d18-2eb3-c6b0-b362-110f49b154c1.png)
生成された実行ファイルを実行してみます。
![007.png](https://qiita-image-store.s3.amazonaws.com/0/64229/8f697285-ce75-4529-cfc2-6798b500ac5a.png)
コマンドプロンプトを終了させるには`exit`コマンドを入力するか、右上の[×]ボタンをクリックします。

# お疲れさまでした

D言語はVisual StudioやUnityとは違ってコマンドプロンプトで操作する必要がありますが、無料で使用することができるのでお勧めです。この次は、Win32 APIを呼び出してウィンドウを作成してみたいと思います。