概要
- Programming Perl の著者Larry Wallが提唱した 「怠惰・短気・傲慢」 というプログラマの三大美徳について解説
- 怠惰 がもたらす抽象化の重要性とソフトウェア設計の美学を強調
- LLM(大規模言語モデル)登場による 生産性と品質のジレンマ
- LLMは人間の「怠惰」の美徳を持たず、 システムの複雑化を助長
- LLMはあくまでツールであり、 人間の美徳に基づく設計思想が不可欠
プログラマの三大美徳と抽象化
- Programming Perl でLarry Wallが提唱した 「怠惰・短気・傲慢」 という三大美徳
- 怠惰 :面倒を避けるために抽象化や自動化を追求する姿勢
- 短気 :すぐに結果を求め、効率化を図る動機
- 傲慢 :自分の書いたコードが他者にとっても価値あるものだという自負
- 多くの技術者が コピペ に頼る一方、本来は 高レベル抽象化 や 再利用性 を優先すべき
- 美徳としての怠惰は、 システムをできるだけ単純に保つ 努力を促す
- 抽象化の設計 には多大な知的労力が必要であり、将来の自分や他人の時間を節約する投資
- 成功した抽象化は、 後続の開発者にも恩恵 をもたらす
LLM時代の「偽りの勤勉」と生産性の罠
- 近年、ソフトウェア開発者層が拡大し、「怠惰」の美徳が伝わりにくくなった現状
- LLM(大規模言語モデル) の普及で、 コード量や生産性の過剰アピール が増加
- 例:Garry Tanが 1日3万7千行のコード生成 を自慢
- こうしたアプローチは 本質的な価値を見失う危険性
- 実際の成果物には 不要なファイルや重複、無駄なデータ が混在
- LLMは 「怠惰」の美徳を持たず、無限に作業を積み重ねる傾向
- 人間の有限な時間 こそが、良い抽象化や設計を生む制約
LLMと人間の役割分担
- LLMは 人間の美徳や制約 を持たず、自律的にシンプルさを追求しない
- 最良のエンジニアリング は制約から生まれる
- LLMは あくまでツール であり、設計思想や品質管理は人間の責任
- 技術的負債の解消 や 作業効率化 など、非本質的な部分でLLMを活用
- 「美徳としての怠惰」 に基づき、よりシンプルで強力なシステムを目指すべき
- 次世代のエンジニア にも恩恵を与える設計思想の継承が重要