書籍『あなたの知らない超絶技巧プログラミングの世界』が 9 月 25 日に発売されます
以前告知していた書籍が、無事発売されることになりました!(技術評論社の公式ページ)
どんな本?
テーマは「役に立たないプログラミングを楽しもう」です。言葉で説明するよりプログラム例を見た方が分かりやすいと思うので、代表的な過去作品にリンクしておきます。
- Qlobe: アスキーアートの地球が回るプログラム
- Quine リレー: 100 のプログラミング言語を経由して自分自身を出力するプログラム
- ASCII Fluid: 80x25 の画面に収まる流体シミュレータ (動画)
- Merry Quine-mas 2010: 音楽再生しながら雪のアニメーションを行う自己出力プログラム (動画)
- RubyKaigi 2010 の発表資料や夏のプログラミングシンポジウム 2012 の発表資料もどうぞ
こういうプログラムがいっぱい載ってます。これらを見て「面白い!」「どうやって作ったのか知りたい!」と思った人は、迷わず買ってください。簡単な解説とともに、すべてがそこに書かれています(やや誇張)。「何の役に立つの?」と思った人も、読んでもらえれば案外発見があるんじゃないかなあ。
内容的には二部構成になってます。
- 後半(2〜8 章):役に立たない実装テクニックを解説しています。アスキーアート化、自己複製プログラム(Quine)、文字縛りプログラミングなど、事細かに説明しています。アスキーアートの自動生成、PNG 画像を自力生成する方法、音楽再生などは、ひょっとしたら実生活で役立つこともあるかも。
- おまけ(9 章): IOCCC や TRICK の最近の動向や、入賞を狙うための「傾向と対策」も載っています。IOCCC に 8 回入賞した人間が書いたことなので確かです。
詳しくは、技術評論社の公式サイトの目次をみてください。まつもとゆきひろさんに書いて頂いた序文(名文)もサイトに載ってます(参考発言)。追記:サイトには載ってませんでした。ぜひ本でみてください。
もう少し真面目に紹介
面白そうだけど、使う機会がなくて敬遠してる技術や理論ってありますよね。データ圧縮とか、画像フォーマットとか、チューリング完全とか。そういうのを楽しみながら学ぶきっかけとして、超絶技巧プログラミングはいいのではないかなあと思ってます。
本書で紹介するようなプログラムを作ろうとすると、その手の理論や技術の本質的な理解が試されます。耳学問では歯が立ちません。たとえば、画像を出力するプログラムを作るには画像フォーマットを知らないとダメですし、プログラムにデータを持たせたいときはデータ圧縮して実際に縮んでいくところを目の当たりにできます。
そうして覚えて何かの役に立つかというと、やっぱり役に立つことはなかなかないと思うのですが、いいじゃないですか。それで豊かな気持ちや達成感が得られれば。勉強とか研究ってそういうものだと思います。人生は有限だからこそ、楽しみながら学ぶ機会を得て、充実感を味わうことは大切だと思います。*2
……偉そうなことをごちゃごちゃ言いましたが、所詮は上述のような内容です。この本から有益なことは何も学べないでしょう。実生活に役立つ情報のない本は、文芸作品ではフツーですが、コンピュータ書籍では世界初かも? 「役に立つかどうかとか考えなくてもプログラミングは楽しいよ!」ということを伝えたくて書きました。
あと裏テーマとして、メディアアートの分野の人たちに、「プログラミングはアートを作るための手段ではなく、プログラミングそのものがアートの対象になるのでは?」という提案の意味も少しだけこめています。なのでそういう人たちも買ってください。
ということで
ぜひ、買ってください!