あ、今回技術的な内容じゃないので、悪しからず。
D言語パーフェクトガイドとは
本日、D言語パーフェクトガイドが発売されて、
なんと
10周年!!!
まで
あと365日になりました。
D言語パーフェクトガイドというのは、2004年12月22日に発売されたD言語に関する初の日本語書籍です。
ソースはAmazon。
純粋なプログラミング言語として一部で注目を集めている
などと、なんかよくわからないけど、今となってはある意味的を射ている内容の紹介になっていますが…
この書籍、現在D言語erの間では焚書指定扱いとなっています。
なぜでしょうか?
今回は、この理由について、歴史的経緯を交えてちょっとだけ解説します。
2004年のD言語
D言語のバージョン1がリリースされたのは、2007年の1月3日です。
つまり、2004年というのは、D言語が様々な試行と検証を繰り返していた時期でした。
そんな時期にサードパーティによって発売された書籍は、当然、当時のD言語についてしか語ることはできません。
当時のD言語はどんなものだったのでしょう。Changelogをたどってみると
おぉ… D 0.100 がリリースされたのも2004年ですね。
ひょっとして、0.99→1.00を予想して書籍を書き始めた?いやまさかね。発売12月だし。
D0.99→D0.100 は誰もがズッコケました。(しかも変更内容がただのバグフィックスだけ)
いい思い出です。
D言語パーフェクトガイド発売前後の変更内容を追っていくと
- デバッグ情報の追加
- _FILE_, _LINE_, などの追加
- []内の$追加
- Cスタイルキャストの廃止
- static ifの追加
などインパクトの大きい変更が続いています。
今でこそ1年に2~3回ほどしかバージョンアップのないD言語も、当時は1週間~1ヶ月程度の周期でバージョンアップを繰り返し、そのたびにいままで動いていたコードが使えなくなる「破壊的変更」がありました。
そのような状況で出た書籍です。サンプルコードもすぐに使えないものが出てきます。
D言語のバージョン1が出る頃にはだいぶ言語の仕様が変わってしまい、ほとんど使いものにならない書籍となってしまいます。
2013年のD言語
そんなD言語もいまや100以上のリリースを繰り返し、D 2.064がリリースされています。
メジャーバージョンも1のリリースを経て2へ。D2となり、安定期へと入った今ではDバージョン1と比較してもなお大きく仕様に改善がなされ、2004年当時とはもはや別言語といっても差し支えない程度の進化がありました。
今年、日本語のD言語書籍として、新しくTDPL(邦訳)が発売されました。TDPLっていうのは、「The D Programming Language」の略です。邦訳版では「プログラミング言語D」として販売されています。
これは、D言語のオフィシャルな書籍の邦訳であり、著者はD言語そのものの筆頭開発者の一人、Andrei Alexandrescu氏で、翻訳にあたってD言語のコントリビューターである @repeatedly さんや @9rnsr さんが関わっています。
現状のD言語に留まらず、将来的な仕様、仕様の理由についても述べた良書です。
TDPLの発売を機に、D言語パーフェクトガイドは完全にその役目を終えたと言っていいでしょう。
D言語パーフェクトガイドは、もはや書籍の冒頭にある"Hello, world"すらコンパイルが通らず、書籍の随所に突っ込みどころが散見されます。
もっとも、D言語の芯のようなものは残っていて、当時から続くコンセプトのようなものはちゃんと記載されているので侮れないところではありますが。しかしながら、今となっては、これを解説しなければD言語の解説書としてはパーフェクトじゃない!といった部分も多々見受けられます。
一度、現状のDと対比してみると面白そうですね。
とまぁ、そのような状況から、D言語パーフェクトガイドはその名に恥じる、全然パーフェクトじゃないダメ書籍という烙印が押されてしまっています。
いわゆる黒歴史扱いで、「パーフェクトガイド」という名前だけでシュールなネタになってしまうような風潮もあったりします。
(D言語パーフェクトガイドの筆者様にとっては大変不名誉かもしれませんが…。) 参考1 参考2
今後、D言語の書籍が出たとしても、やはり今後バージョンアップしていく過程で破壊的変更にさらされ、情報は鮮度を失うことでしょう(おそらくTDPLであっても)。しかしながら、それを恐れることなく書籍が発売され、D言語の情報源が増えることは歓迎すべきことではないかと思います。
情報源の不足は、やはりD言語に足を踏み入れる人にとってまずぶち当たる壁ですからね。
現在のD言語の情報源
ちなみに、現状WEBにてD言語の情報を当たるには、以下の様な手段があります。
それと、ツイッターで「D言語」とか「#dlang」とか含めて発言すれば、高確率で返信が飛んでくるので便利です。
D言語はオープンソースで開発されているので、ソースを読んでみるのも一興ですね