悪いほうが良い
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/16 07:31 UTC 版)
悪い方が良い(英: Worse is better、ニュージャージースタイルとも[1])は、ソフトウェアの受容のダイナミクスを説明するために、リチャード・P・ガブリエルが1989年のエッセイで考案した用語である[2]。これは、ソフトウェア品質は必ずしも機能性とともに向上するわけではないという主張を指し、実用性と使いやすさの点で、機能性が低い(=「悪い」)方が望ましい(=「良い」)場合があることを示している。機能が制限されているが使いやすいソフトウェアは、その逆よりもユーザーと市場にとって魅力的である可能性がある。
この撞着的なタイトルについて、ガブリエルはこれを戯画と呼び、「正しいこと」と比較してそのスタイルが悪いと宣言している。しかし、彼はまた、「正しいこと」の開発スタイルよりも優れた生存特性があり、対比した「MITアプローチ」よりも優れていると述べている[3]。
このエッセイは1994年の書籍『The Unix-Haters Handbook』に収録され、米国の東海岸と西海岸の開発者間の概念的な分裂の起源として言及されている[4]。
起源
ガブリエルは1989年にこの概念を考案した当時はLISPプログラマーであり、エッセイ『Lisp: Good News, Bad News, How to Win Big』でこの概念を紹介した。『「悪い方が良い」の台頭』と題された記事のセクションは、ジェイミー・ザウィンスキーがLucid Inc.のガブリエルのファイルで見つけ、友人や同僚に電子メールで送信したことから、1991年から広く普及した[3]。
特徴
特徴 | ニュージャージースタイル | MITアプローチ |
---|---|---|
定義 | ガブリエルは『「悪い方が良い」の台頭』の中で、ソフトウェアの設計と実装の「悪い方が良い」(「ニュージャージースタイル」「バークレー」または「西海岸」とも[4])モデルを特定し、その特徴を重要度の高い順に示している。 | ガブリエルは自身の哲学を「MIT/スタンフォード式のデザイン」または「MITアプローチ」(東海岸アプローチ[4]または「正しいこと(the Right Thing)」とも)と対比させ、次のように説明した。 |
シンプルさ | デザインは実装とインターフェースの両方においてシンプルである必要がある。インターフェースよりも実装がシンプルであることが重要である。シンプルさは設計において最も重要な考慮事項である。 | デザインは実装とインターフェースの両方においてシンプルである必要がある。インターフェースがシンプルであることは実装よりも重要である。 |
正確性 | デザインは観察可能なすべての側面において正確でなければならない。正確であることよりもシンプルであることの方がわずかに優れている。 | デザインは観察可能なすべての側面において正確でなければならない。不正確であることは絶対に許されない。 |
一貫性 | 設計に過度に矛盾があってはならない。場合によっては単純さのために一貫性を犠牲にすることができるが、実装に複雑さや矛盾をもたらすよりも、あまり一般的でない状況に対処する設計部分を削除する方がよい。 | デザインは一貫している必要がある。矛盾を避けるために、デザインは多少シンプルさを欠き、不完全でも構わない。一貫性は正確さと同じくらい重要である。 |
完全性 | デザインでは可能な限り多くの重要な状況をカバーする必要がある。合理的に予想されるすべてのケースをカバーする必要がある。完全性は他の品質を優先して犠牲にすることができる。実際、実装のシンプルさが危険にさらされる場合は常に、完全性を犠牲にする必要がある。 シンプルさが維持される場合は、完全性を達成するために一貫性を犠牲にすることができる。特に価値がないのはインターフェイスの一貫性である。 | デザインでは可能な限り多くの重要な状況をカバーする必要がある。合理的に予想されるすべてのケースをカバーする必要がある。シンプルにすることによって完全性が過度に低下することは許されない。 |
ガブリエルは、ベル研究所が開発した初期のUnixとC言語は、「悪い方が良い」という設計アプローチの例であると主張した。また、これらを「究極のコンピュータウイルス」と呼んでいる。
影響
ガブリエルは「悪い方が良い」という考え方がMITアプローチよりも成功するソフトウェアを生み出すと主張した。初期のプログラムが基本的に良ければ、最初に実装するための時間と労力ははるかに少なく、また新しい状況に適応するのも容易になる。たとえば、ソフトウェアを新しい機械に移植するのも、この方法であれば遥かに簡単である。したがって、その使用は急速に広がり、MITアプローチを使って開発され展開されるプログラムが登場する前に広まることになる(先行者利益)。一度広まると、その機能を改善する圧力がかかるが、ユーザーはすでに「良いもの」ではなく「悪いもの」を受け入れるように条件づけられている[5]。
したがって、「悪い方が良い」ソフトウェアはまず受け入れられ、次にユーザーはそれをもとに少なくて済むことを期待するようになり、最後にはほぼ正しいものに改善される。具体的には、1987年の時点でLispコンパイラはCコンパイラとほぼ同じくらい優れていたが、Cコンパイラを改善しようとするコンパイラ専門家はLispコンパイラを改善しようとする専門家よりも多かった。
ガブリエルはジェイミー・ザウィンスキーが『Lisp: Good News, Bad News, How to Win Big』の「悪い方が良い」の部分を抜粋してカーネギーメロン大学の友人にメールで送信し、その友人たちがそれをベル研究所の友人たちに送ったことを称賛した。「その友人たちはどこにでも送った」とも言っている[6]。彼はこのアイデアをリチャード・ストールマンの考え方と結びつけ、UNIX哲学やオープンソース運動にとって重要な関連するアイデアがあることに気づいた。これらはLinuxの開発にとって中心的な要素であった。
2000年12月、ガブリエルは自分の前回のエッセイに対する回答として「Worse Is Better Is Worse」というタイトルのものを執筆し、ニキエベン・ブルバキという偽名で発表した(ニコラ・ブルバキへの言及)[7]。同時に「Is Worse Really Better?」という記事も書き、C++がオブジェクト指向プログラミングの分野で成功したことを、よりエレガントな概念を中心に設計された他の言語が存在するにもかかわらず、悪い方が良いという概念を適用して説明した[8]。
『The Unix-Haters Handbook』には「悪い方が良い」が付録として含まれており、Unixがその競争相手に対して「進化的に優れている」としてこの概念が説明されている[9]。
関連項目
脚注
- ^ “Worse is Better vs. Better is Better” (2014年9月20日). 2025年3月16日閲覧。
- ^ “Worse Is Better”. 2023年6月30日閲覧。
- ^ a b “Worse Is Better”. dreamsongs.com. 2025年3月16日閲覧。
- ^ a b c “Worse is worse”. www.artima.com. 2025年2月9日時点のオリジナルよりアーカイブ。2025年3月16日閲覧。
- ^ “Worse Is Better”. dreamsongs.com. 2025年3月16日閲覧。
- ^ Daniel Weinreb. “The "Worse is Better" idea and the future of Lisp”. 2009年6月11日時点のオリジナルよりアーカイブ。2025年3月16日閲覧。
- ^ “Worse Is Better Is Worse (PDF), Richard P. Gabriel as "Nickieben Bourbaki"”. 2025年3月16日閲覧。
- ^ “Is Worse Really Better, Richard P. Gabriel”. 2025年3月16日閲覧。
- ^ Kreinin, Yossi (2012年8月11日). “What "Worse is Better vs The Right Thing" is really about”. Proper Fixation. 2018年11月24日閲覧。
外部リンク
- 悪いほうが良いのページへのリンク