Worse is Better とは?
ペンギン先生、「Worse is Better」って矛盾してない?悪いのが良いってどういうこと?
確かに不思議な名前だよね。リチャード・ガブリエルっていうプログラマーが1989年に提唱した考え方で、「機能的には劣るけどシンプルな実装」のほうが、「完璧だけど複雑な実装」よりも実世界では成功するっていう理論なんだ。
そんなことあるの?完璧なほうがいいに決まってるよね?
理想的にはそうだけど、現実は違うんだ。ガブリエルはLisp(完璧を目指した言語)とC/Unix(シンプルだけど不完全)を比較したんだ。Lispは理論的には優れてたけど複雑で普及しなかった。一方Cは安全じゃないし抜け穴だらけだけど、シンプルだからこそ移植しやすく、あっという間に世界中に広まったんだよ。
なるほど…。シンプルなほうが広まりやすいってことか。
そうそう。シンプルなソフトウェアは理解しやすい、移植しやすい、改良しやすい。最初は機能が足りなくても、普及してからユーザーの手で改良されていく。完璧なものは開発に時間がかかりすぎて、市場に出る頃には時代遅れになることもあるんだ。
スタートアップの「まず出す」精神と似てるね!
まさにそう!MVP(Minimum Viable Product)っていう「最低限動く製品をまず出して、フィードバックを受けて改善する」考え方はWorse is Betterの現代版と言えるよ。完璧を目指して3年かけるより、70%の完成度で出して市場で磨くほうが成功しやすいんだ。
でも品質が低いものを出すのは危険じゃないの?
いいツッコミだね。Worse is Betterは「品質を捨てろ」って意味じゃないんだ。「シンプルさを最優先にしろ」っていう優先順位の話なんだよ。インターフェースの正しさ>実装のシンプルさ>完全性、という順番で判断するのがポイントだね。
シンプルさの優先順位が大事なんだね!
そう。面白いことにガブリエル自身もこの理論に対して複雑な感情を持ってて、後に「Worse is Better is Worse」「Worse is Better is Better」って揺れてるんだ。でも現実にLinux、Go、JavaScriptなど「完璧ではないがシンプルで普及した技術」は多い。この法則は今でも議論が続く名テーマだよ。