2007-07-14
Jolt Awards が読みたい
よく書評を読む. 本屋で勢い余ってハズレの本を引きたくない. 一方で世の中あてにならない書評も多い. どこかに鉄板のおすすめ本リストはないかと考え, ふと Jolt Awards を思いだした. Jolt Awards は プログラマ向けのソフトウェアからウェブサイトや書籍までを扱う総花的なアワード. DDJ などを発行する CMP が開催している. ウェブサイトには "The Jolt Awards are the Oscars of our industry." とあるが, ちょっと褒めすぎだとは思う.
アフィリエイトがてら Jolt Awards の歴代入賞本を並べてみた. 思ったより玉石混合. でも時系列に眺めると時代を感じて楽しい. 1990 年から 2006 年まで. "Jolt Winner" がいわゆる "大賞", "Productivity Winners" は入賞くらいかな. 2002 年から要素技術よりの "Technical" と偏りのない "General" にわかれている. 日本語訳や書籍の公式ページなどがみつかったものは併記してある. 版は現時点で最新のものを載せた.
2006
Books General/Jolt Winner:
Books General/Productivity Winners:
- Catastrophe Disentanglement
- Practices of an Agile Developer
- Software Estimation: Demystifying the Black Art
Books Technical/Jolt Winner:
Books Technical/Productivity Winners:
- Code Quality: The Open Source Perspective
- Refactoring Databases: Evolutionary Database Design
- CSS: The Missing Manual
2005
Books General/Jolt Winner:
Books General/Productivity Winners:
- The Art of Project Management
- Innovation Happens Elsewhere: Open Source as Business Strategy
- Producing Open Source Software: How to Run a Successful Free Software Project
Books Technical/Jolt Winner:
Books Technical/Productivity Winners:
- Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
- Practical Common Lisp
- Why Programs Fail: A Guide to Systematic Debugging
2004
Books General/Jolt Winner:
Books General/Productivity Winners:
Books Technical/Jolt Winner:
Books Technical/Productivity Winners:
- C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
- Hibernate: A Developera's Notebook
- Java Developer's Guide to Eclipse (2nd Edition)
2003
Books General/Jolt Winner:
Books General/Productivity Winners:
- The Art of Unix Programming
- Lean Software Development: An Agile Toolkit
- The Pragmatic Starter Kit
Books Technical/Jolt Winner:
Books Technical/Productivity Winners:
- About Face 3: The Essentials of Interaction Design
- Agile Database Techniques: Effective Strategies for the Agile Software Developer
- Code Reading: The Open Source Perspective
2002
Books General/Jolt Winner:
Books General/Productivity Winners:
- Documenting Software Architectures: Views and Beyond
- Patterns of Enterprise Application Architecture
- Test-Driven Development: By Example
Books Technical/Jolt Winner:
Books Technical/Productivity Winners:
- Core Java 2, Vol. 1: Fundamentals (7th edition)
- コアJava2〈Vol.1〉基礎編 (元版不明)
- Understanding Web Services
- PHP and MySQL Web Development
2001
Jolt Winner:
Productivity Winners:
- Agile Software Development (2006 年受賞作の旧版)
- Software Craftsmanship
- Under Pressure and On Time
2000
Jolt Winner:
Productivity Winners:
- Don't Make Me Think! A Common Sense Approach to Web Usability
- Writing Effective Use Cases
- Secrets and Lies: Digital Security in a Networked World
1999
Jolt Winner:
Productivity Winners:
- Extreme Programming Explained
- Software Requirements, Second Edition
- After the Gold Rush: Creating a True Profession of Software Engineering
1998
Jolt Winner:
Productivity Winners:
- AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
- Software Architecture in Practice
- Thinking in Java (2002 年受賞作の旧版)
1997
Jolt Winner:
Productivity Winners:
- The Deadline: A Novel about Project Management
- UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
- Building Object Applications that Work
1996
Jolt Winner:
Productivity Winners:
- The Essential Distributed Objects Survival Guide
- Creating a Software Engineering Culture
- Pattern-Oriented Software Architecture Volume 1: A System of Patterns
1995
Jolt Winner:
Productivity Winners:
- About Face: The Essentials of User Interface Design (2003 年受賞作の旧版)
- A Discipline for Software Engineering
- What Every Programmer Should Know About Object-Oriented Design
1994
Jolt Winner:
Productivity Winners:
- Debugging the Development Process
- Design Patterns: Elements of Reusable Object-Oriented Software
- The Design and Evolution of C++
1993
Jolt Winner:
Productivity Winners:
1992
Jolt Winner:
Productivity Winners:
- Object-Oriented Software Engineering: A Use-Case Driven Approach (2nd ed.)
- Literate Programming
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)
1991
Jolt Winner:
Productivity Winners:
- Advanced C++: Programming Styles and Idioms
- Object-Oriented Modeling and Design with UML (2nd Edition)
- Object Lifecycles: Modeling the World in States
1990
Jolt Winner:
Productivity Winners:
所感
こうしてみると Jolt Awards はソフトウェア開発に特化しているのがわかる. コンピュータサイエンスという感じではない. たとえば OS やコンパイラ, アルゴリズムの本は全く入っていない. そういうのを読みたい人は他をあたる必要がある. General 部門が比較的先鋭的なものを選ぶのに対し, Technical 部門は入門書が中心. 要素技術の細かい話もあてにならない. 量を考えると仕方ないけどね.
賞の性質上, 次年度以降に重要性が認識されたものは漏れている. たとえば "プレファクタリング", "パターン指向リファクタリング入門", "Refactoring Databases" があって 本家 "リファクタリング" がないのは理不尽だ. リファクタリングの重要性が広く認識されたのは出版の翌年以降なんだろうね. そういう例は他にもありそうだ. (そういえば "達人プログラマー" もない.) 逆にその年の流行りで入れてしまったと思しきものもある. 年単位の Awards とは別に オールタイム・ベストがあればいいのかも.
それにしても 16 年間の書籍がずらり並ぶと感慨深い. まず感じるのは技術的なトレンドの移りかわり. 当初は毎年のようにランクインしていた C++ は 1995 年で姿を消し, Java に座を譲る. 悲しい. その Java もここ二年続けて姿がない. かわりに Ruby(Rails) と, なぜか Common Lisp が姿を見せている. これらが流行の兆しなのかはわからない. 言語以外では Client/Server, Distributed Object, Windows といった要素技術が 連続して入賞することはない. 書籍自体が改訂されることも少い. たぶん CSS も今回限りだろう. ("プログラミングWindows" はかなり健闘して 5 版まで続いたが, .NET の登場に合わせて終幕した感がある.) 方法論のトレンドも移り変わる. アジャイルやオープンソースの隆盛は自分の感覚とも一致している.
書籍の内容とは別に時代の流れを感じるのは書籍サイトの登場だ. サンプルを公開してるもの, それどころか全文を公開しているもの. Joel on Software なんて本文も訳も Web 生まれ. 読者にとってはありがたい時代になったものだと思う.
廃れていく本がある一方で鉄板もある. 本質的な話題を扱う "Code Complete", "OOSC" (読んでない) "ソフトウェア要求" は息が長い. "ソフトウェア見積り" もロングセラーになるだろう. また要素技術の中でも廃れきらず踏み止まった定番がある. "Fowler の UML", "Effective C++", "About Face" (読んでない) は根強い人気. "Effective Java" も改版の噂があり, ロングセラーの予感がする.
"POSA" や "Design Patterns" も (個人的には早く廃れて欲しいけれど)まだよく参照される. シリーズとして続編も多く出ている: "Software Patterns Series", "Books on Pattern-Oriented Software Architecture"
こういうご長寿本は歴史が鉄板を保証してくれる. 挫けない範囲で読んでいいと思う.
積読アワード
そういえば気になる読みこぼしを探すのが当初の目的だった. 忘れないうちにまとめておこう. 以下はまったく個人的なメモです.
- プレファクタリング: トンデモ本だと思ってた...
- オブジェクト指向入門 第2版 原則・コンセプト: ごめん. きっと読む. でも厚すぎ.
- UML モデリングのエッセンス 第3版: 新版の差分が知りたい.
- 熊とワルツを: デマルコは数が多くてどれが良いのかわからなかった. これにしよう.
- 暗号技術大全: こいつも厚いなあ...
次点:
- C++の設計と進化: 教養として必要な気もする. 気のせいかもしれない.
- Code Quality: このシリーズは語りが多すぎて肌に合わないんだけれど, 心の積読にはしておく.
- Head First デザインパターン: あのフォーマット以外でどうパターンを扱うのか気になる.
- 軽快な Java—Better: 最近ちゃんと Java を勉強してない. 仕事で使わないからね...
- The Art of Unix Programming: 自分の中にある Unix プログラマへの偏見を正す機会としたい.
- ラピッドデベロップメント—効率的な開発を目指して: Agile の流れで obsolete になっていないか不安だけれど, McConnell を信じてみたい.
- Patterns of Enterprise Application Architecture : 教養として読みたいけれど, 仕事とは遠い..
それにしてもリスト作りは苦行だった. ひたすら検索とコピペの繰り返し. 世間のアフィリエート人はエライ. 金に目の眩んだ私が愚かだったと反省しております. もうやりません. 紹介するのは自分の読んだ本だけで十分.