結城浩
2000年12月5日
午前中、モスバーガーで『Java言語で学ぶデザインパターン入門』の執筆。 Abstract Factoryの章を書き上げ、レビューアへの配送準備をする。 すごく、すごく、よい。
いま書いているこの『Java言語で学ぶデザインパターン入門』は、 はっきりいって、とても面白い本になる。 プログラミングって、プログラムで表現するって、 こんなにわくわくする体験だったのか、 と目からうろこが落ちるような思いがする。
本を書くときには多かれ少なかれ、こういうわくわくする体験に出会う。 今回の『Java言語で学ぶデザインパターン入門』についてはそれが非常に強い。 この『Java言語で学ぶデザインパターン入門』は、 ある意味では、 『C言語プログラミングのエッセンス』と同じテーマを扱っているのではないか、 と指摘してくださったのはソフトバンクパブリッシングの野沢さんだ (『C言語プログラミングのエッセンス』というのは1993年に出版され、 1996年に新版となった私の処女作。 結城のサイト全体のタイトル「プログラミングのエッセンス」の元になった本でもある)。 確かに野沢さんの指摘のとおり。 プログラミングの話なんだけれど、 具体的なプログラムそのものというよりは、1つメタなレベルでの話題。 なぜそこでそういうプログラムを書くのか、 というのを、大きな枠組みの中で考え、 そこにある種の型(パターン)を見出していく。
私の処女作ではC言語を使い、興味深い切り口でパターンを切り出した (だがもちろん、処女作では、 デザインパターンのようにきちんとカタログ化されたわけでもないし、 パターンごとの評価をしたわけでもない。 プログラマが気にかけていた方がいい話題を提供したという段階だ)。 しかし、今回の『Java言語で学ぶデザインパターン入門』では、 GoFのデザインパターンを大きな柱にすえている。 そして、Java言語とUMLを使い、私なりの例と解説によって 「プログラミングのエッセンス」を表現しつつある、と私は確信している。
いま執筆中の『Java言語で学ぶデザインパターン入門』は、 『C言語プログラミングのエッセンス』のルネッサンスなのだ。
(例によって興奮状態(ライティング・ハイ)なので大げさな表現はご容赦ください)