TL;DR

ソフトウェアが新しくなるにつれて、不必要に大きく複雑になり、リソースを過剰に消費するようになる現象。このようなソフトウェアはブロートウェア(bloatware、elephantware)と呼ばれる。

仕組み

肥大化の要因にはfeature creep、後方互換性の維持、市場での競争などがある。

Wikipedia によると、1970 年代までは記憶容量が厳しく限られていた。今はリソースが安くなったので、効率よりも、開発の速さやマーケティング向けの機能が重視される。Joel Spolsky は、ほとんどの利用者は機能の一部しか使わないが、使う機能は人によって違うと指摘している。そのため、機能の多い製品が選ばれやすい。

例

Windows の推奨要件は Windows 95 の 25 MHz の CPU と 8 MB のメモリから、Windows 11 の 1 GHz の CPU、4 GB のメモリ、64 GB のストレージまで増えた。

注意点

肥大化を抑える方法として、Firefox のように機能をプラグインに切り出し、必要なものだけを足せるようにする方法や、ビルドするときに必要な機能だけを選んでコンパイルする方法がある。「一つのことをうまくやるプログラムを書け」という UNIX 哲学も、ソフトウェアを小さな部品に分けて組み合わせる考え方である。

関連

出典