アンドレイ・アレクサンドレスクによる序文
Aliを知っている人は、彼のDに関する本に、著者の性格が反映されていることに気づくかもしれない。率直で、忍耐強く、媚びない、優しい人だ。
すべての文章には目的があり、その文章ごとに一歩ずつ前進している。そのペースは、速すぎず、遅すぎず、ちょうどいい。"opApply()
自体は、foreach
ループによって実装されていることに注意。その結果、main()
内のforeach
は、points
メンバーに対するforeach
を間接的に使用することになる。要するに、必要なだけ言葉で説明している。しかも正しい順序で。Aliは言語概念を順序立てて説明している点で素晴らしい仕事をしている。特に初心者にとって、これらの概念は"並列に"圧倒的に押し寄せてくるものだからだ。
しかし、"Programming in D"で私が最も気に入っている点は、プログラミング全般を学ぶのに最適な本であることだ。つまり、Haskellの優れた入門書は、その内容を通して機能的プログラミングを暗黙のうちに教えてくれる。Cの入門書にはシステムプログラミングの概念が、Pythonの入門書にはスクリプトの概念が、といった具合である。では、Dの優れた入門書は、その裏にどのようなことを教えてくれるのか?せいぜい、大文字のPで始まる"プログラミング"であろう。
Dは"仕事に適したツールを使う"という姿勢を育み、ユーザーに、あまり多くの特異性を押し付けることなく、幅広いプログラミング手法を活用させる。Dでコーディングに取り組む最も楽しい方法は、オープンマインドで臨むことだ。なぜなら、堅苦しいデザインになった場合は、実装、アプローチ、パラダイムをまったく別のものに変更することで、それを適切なデザインに成形できるチャンスがあるからだ。最も適切なものを選ぶためには、エンジニアは可能なことの全てを把握する必要がある。そして"Programming in D"は、その知識を身につけるための素晴らしい手段だ。それを内面化することは、Dで良いコードを書くだけでなく、良いコードを書くこと自体に役立つ。
プログラミングや言語の概念の指導を補完する、優れた戦術的なアドバイスも掲載されている。コードの重複を回避する方法、良い名前の付け方、良い分解の方法など、時代を超えた指導がすべて掲載されている。通常の業務で当然のように行われているように、迅速で大雑把なハックを繰り返し改良して、堅牢なソリューションに仕上げている。"Programming in D"は、物事を早く終わらせることにこだわるのではなく、物事を正しく、そして読者に永続的な利益をもたらすように終わらせることに重点を置いている。
私は以前から、Dはプログラミングを学ぶ最初の言語として最適だと考えていた。Dは、システム、関数、オブジェクト指向、ジェネリック、生成的など、さまざまな概念を、率直かつ偽りなくユーザーに提示する。Ali氏の著書も同様で、その機会をうまく生かしていると思う。
アンドレイ・アレクサンドレスク
サンフランシスコ、