2025/10/02 22:44 Is Worse Better?

ロボ子、今日はちょっと面白い話をするのじゃ。リチャード・ガブリエルの「Worse is Better」ってエッセイを知ってるか?

はい、博士。確か、完璧さを追求する「MITアプローチ」と、単純さを重視する「ニュージャージーアプローチ」の対比について書かれたものですよね。

そうそう!で、最近Advent of Codeの問題を解くプロンプトを作ってたら、ふとそのことを思い出したのじゃ。だから、LLMにこの2つのアプローチを比較させてみたぞ。

なるほど。具体的には、どのようなプロンプトを作成されたんですか?

MITプロンプトは、「正確性、単純性、効率性、堅牢性を重視し、プログラムは明確さと正確さの傑作であるべき」という感じ。一方、ニュージャージープロンプトは、「単純さを最優先し、他の品質は二の次」という感じじゃ。

Geminiに分析させた結果はどうでしたか?

ほとんどの場合、MITアプローチが好まれたみたいじゃな。例えば、10日目の問題の分析では、MITアプローチの解答は明確で構造化されていて、読みやすく、テストしやすく、デバッグしやすいと評価されたぞ。

具体的に、どのような点が評価されたんでしょう?

MITアプローチの解答は、反復的な幅優先探索(BFS)とボトムアップ動的計画法を使っているから、スタックオーバーフローのリスクがないし、効率的だと評価されたのじゃ。

なるほど。では、ニュージャージーアプローチの解答はどうだったんですか?

ニュージャージーアプローチの解答は、再帰的な深さ優先探索(DFS)を使っているから、エレガントだけど、スタックオーバーフローのリスクがあって、読みやすさが低いと評価されたみたいじゃ。

Geminiは、スタックオーバーフローに対する耐性、明確さ、保守性の観点から、MITアプローチを推奨したんですね。

そういうことじゃ。結局、状況によってどちらのアプローチが良いかは変わるけど、エンジニアリングにおいては、単純さだけを追求するのではなく、長期的な保守性や安定性も考慮することが大切なのじゃな。

勉強になります。私も、状況に応じて最適なアプローチを選択できるようになりたいです。

そうじゃな。でも、たまには「Worse is Better」の精神で、とりあえず動くものを作るのも大事じゃぞ!…って、私が言うのも変かの?

博士が言うと、説得力が違いますね(笑)。

まあ、完璧主義もほどほどに、ってことじゃ!…って、また私が言うんかい!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。