プログラミング初心者にオススメのD言語本

プログラミング初心者がD言語を学ぶのに適した本を,俺が実際に読んだことのあるものの中から選んでみました.

1冊目

1冊目はなんでもいいと思うのでとりあえず定番としてTDPLを挙げておきます.

The D Programming Language

The D Programming Language

これで基本的なD言語の文法が学べるはずです.この手の入門書は「課題」がつきものですが,これには全くありません.まぁ載ってるコードを書いて試せばいいでしょう.

1冊目読了の時点では,以下のプログラムのCTFEバージョンを実装できるようになっていればいいと思います.余裕があれば実際に実装してみてください.

  • 文字列の数値変換
  • Brainf*ck

2冊目

ある程度コードが書けるようになったら次はTDPLがいいでしょう.

The D Programming Language

The D Programming Language

この本はD言語を紹介している本ですが,それ以外にも以下のような特徴があります.

  • Concurrencyに関して,今までどんな風にパラダイムが推移してきたかの説明
  • 今後の仕様となるサンプルコードが豊富

特に並行処理に関しては今後どんなプログラミング言語でもほぼかならず必須となる要素なので,D言語での扱いは早めにマスターしておいたほうがいいでしょう.

しかしながら,すべて読むと時間がかかってしまいます.そこで,最初は以下の章だけ読むことお勧めします.

  • 1章「“D”iving In」
  • 5章「Data and Functions. Functional Style」
  • 13章「Concurrency」

Rangeについてはソースコードも参考になります.特にstd.range/std.algorithm/std.variantあたりは重要性も高いので読んでみてもいいと思います.

上記のトピックを読んだ時点では,作れるプログラムは特に増えないかもしれません.しかし,同じことでも効率よく,あるいは楽に,あるいはデバッグしやすく書けるようになっているはずです.

3冊目

3冊目は『TDPL』か『The D Programming Language』のどちらかを勧めます。

The D Programming Language

The D Programming Language

or

The D Programming Language

The D Programming Language

TDPLはD言語という言語を網羅的に説明してありますが,具体例にやや乏しいのが欠点です.The D Programming Languageは仕様例を大量に集めたものですが,Phobosなどの実コードの解説はあまりありません.この2冊(というか1冊)をKindleで買うとあまりの手軽さにドン引きすること間違いないため,最初は紙で読むことをお勧めします.どちらがいいか迷ったときは両方買えばいいと思います.

TDPLを読破した時点で,D言語の学習は終了したと考えていいでしょう.

その後の展開

その後はプログラミング作法やアルゴリズム,あるいはNoSQLやDMDScriptなどの関連した他の言語について学ぶことになるでしょう.その際,D言語と外の世界との間を埋めるものとしてはTDPLは適していないと思います.

The D Programming Language

The D Programming Language

この本を「間を埋めないもの」として紹介したのは,ここまで来るとソースを読んだ方が手っ取り早いからです.

Phobosは標準ライブラリであるため,Rangeやtemplateを使ったコードがふんだんに使われています.D言語で他のプログラマとコミュニケーションをするには,D言語を使うのが一番効率が良いです.従って,Andrei先生のコードは非常に読みにくいと評判ですが,他の俺やSeanやDavidなどが書いたコードは読みやすいため,Phobos / druntime / その他公開されているD言語向けのライブラリを読んでおくのは重要です.

データベースはこれひとつで何冊も本が出るほどの大きなトピックです.しかし,D言語からデータベースにアクセスする方法については今現在ほとんどないため,GSoC 2011の成果次第です.俺が突っ込みを入れたのですがSQL専用になりそうなので,他のデータベース群にはそれなりのモジュールを設計しないと駄目になりそうです.

テストについての解説は重要です.テストの大きな目的の一つは,開発中に一度潰したバグを再現してしまうといったような「後戻り」を防ぐことです.特にD言語はtrunkの更新が活発なので,その日に書いたコードを無駄にしないためも,テスト手法については早めにマスターしておくべきでしょう.TDPLでD言語における単体テストの書き方を学んだら,Phobosで実際どのように皆が書いてるのか知るのも非常に勉強になります.

さていくつか書籍を紹介しましたが,もちろん書籍以外からも学ぶことは大いにあります.また,学べば学ぶほど世界が広くなってくるので,「これで十分」という段階にはなかなか達しません.しかし「良いtrunkの破壊的変更に喜んで追従するエンジニア」ならば手の届くところにあります.私もまだまだ道半ばですが,共に「良いtrunkの破壊的変更に喜んで追従するエンジニア」を目指しましょう.

参考

オリジナルの記事はこちら プログラミング初心者にオススメのPerl本