【わーすいずべたー】
Worse is Better とは?
最終更新:
💡 実装の単純さを優先する設計を考える
Richard P. Gabrielが論じた、実装の単純さを優先する設計が普及し、後から改善され得るという考え方。正しさ・一貫性・完全性との優先順位の対比で、低品質なら必ず成功するという法則ではありません。
📌 このページのポイント
- Gabrielは1989年の着想を、1990年の講演で論じたと説明している
- MIT型とNew Jersey型で、単純さ・正しさ・一貫性・完全性の扱いを対比する
- New Jersey型は、インターフェースより実装の単純さを重視する
- 初期のUnixとCを例に、移植・普及・改善の関係を論じた
- 作者自身も評価を揺らしており、成功を保証する法則ではない
Worse is Betterは悪いものを作れという意味?
設計の優先順位を考えるための、逆説的な名前だよ。Gabrielは実装を単純にしたソフトウェアが広まり、後から改善されるという議論をした。壊れていても出せばよい、という一般的な指示ではないんだ。
2つの設計の何が違うの?
MIT型は利用者向けのインターフェースの単純さや正しさを重視する。New Jersey型は実装の単純さを特に重視し、そのために一部の完全性などを譲ることがある。作者が対比を強調して描いたモデルだよ。
実装が単純だと利用者にも簡単?
必ずしもそうではない。原文には、システム側を単純にする代わりに利用者側のプログラムがエラーを確認して再試行する例がある。負担がなくなるというより、どこが負担を持つかが変わる場合があるんだ。
UnixやCが必ず勝つ理論なの?
作者は初期のUnixやCの移植しやすさ、少ない資源で動くことと普及の関係を論じた。でも、すべての成功をこの考え方だけで説明できるわけではない。Lispは普及しなかった、ほかの言語も全部この例だ、とは断定しないよ。
自分の開発にもそのまま使える?
何を単純にし、誰が残りの負担を持つかを考える材料になる。必要な安全性や正しさは目的に応じて確保しよう。MVPと話題が重なることはあるけど、同じ概念ではなく、完成度の何%で出すといった共通の数字もないんだ。
もっと詳しく知りたい人へ
原文は「正しさが単純さより上」と言っている?
New Jersey型の説明は実装の単純さを最優先とし、単純さのために一部の正しさも譲り得るとしています。これは作者の比較モデルです。現場で許容できる誤りや安全性の基準を、この議論だけで決めてよいという意味ではありません。
まとめ:ざっくりこれだけ覚えればOK!
「Worse is Better」って出てきたら「実装の単純さを優先する設計と普及を論じた考え方」と思えばだいたいOK!
📖 おまけ:英語の意味
「Worse is Better」 = 悪いほうが良い
💬 Gabrielの回顧では1989年に着想し、1990年に「Lisp: Good News, Bad News, How to Win Big」で講演しました。後年も賛否を論じています。