《本》ジェネレーティブ・プログラミング
久しぶりにソフトウェア工学の硬派な本が訳されました。「ジェネレーティブ・プログラミング」です。
仲良くさせて頂いているエンジニアである、今関さんと津田さんが訳をされたということで、ぼくも、お祝いの言葉を贈らせて頂きました。今関さんは、日本の中でプロダクトラインの第一人者です。さらに、ぼくの大先生である、Cope こと Jim Coplien が序文を書いており、その序文は、これまた大先輩であり、ぼくと一緒に Cope の「マルチパラダイムデザイン」( Multi-Paradigm Design in C++)を訳した、金澤典子さんが訳されています。津田さんは、C++のジェネリクスに造詣が深く、JavaScript によるジェネリックプログラミングにトライされたり、ぼくと一緒に、JavaWorld に Java のジェネリクスの記事を以前書きました。
ぼくの記事
http://www.objectclub.jp/technicaldoc/java/java_gene
津田さんの記事
http://www.mamezou.net/modules/xfsection/article.php?articleid=6
ジェネレーティブプログラミングは、非常に重要な歴史的意味を持っています。オブジェクト指向技術が実用化されて長い時間がたっていますが、当初標榜されていたソフトウェア部品の再利用性を高める、という目標については、まだまだ業界全体としてまだ遠い位置にあります。それには、コードの再利用のみならず、設計の再利用に焦点をあてること、ある製品だけでなく、製品ファミリーとしてのドメインに焦点をあてること、ドメインに特化した言語を使うこと、などさまざまなアプローチが必要です。本書、ジェネレーティブ・プログラミングでは、オブジェクト技術を中心に、ドメイン工学、プロダクトライン、DSL、サブジェクト、アスペクト、パターン、メタプログラミングなどを利用して、「意図」から生成的に(Generativeに)コードを作り出そう、というアイディアの流れの中にあます。ですので、James O. Coplien の 「マルチパラダイムデザイン」を継承し、ここから Jack Greenfielld らの 「Software Factories」が派生しているのです。