【わーすいずべたー】

Worse is Better とは?

最終更新:
💡 実装の単純さを優先する設計を考える

Richard P. Gabrielが論じた、実装の単純さを優先する設計が普及し、後から改善され得るという考え方。正しさ・一貫性・完全性との優先順位の対比で、低品質なら必ず成功するという法則ではありません。

📌 このページのポイント
Worse is Better:設計の優先順位MIT型インターフェースの単純さを重視正しさ・一貫性完全性を重視原文の例Common Lisp / SchemeNew Jersey型実装の単純さを特に重視そのために一部の完全性等を譲る原文の例初期のUnix / C作者が強調して描いた比較モデル低品質なら成功するという法則ではない
利用者向けの画面と、実装を表す文書で重視する対象を見比べます。原文はNew Jersey型でも正しさ等を考慮します。勝敗や開発手順を表す図ではありません。
ひよこ ひよこ
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」で講演しました。後年も賛否を論じています。

参考資料

← 用語集にもどる