概要
ソフトウェアの肥大化とは、
ソフトウェア製品が増えていく内容や機能のために、ますますリソースを消費するようになる現象です。この肥大化した
ソフトウェアは、一般的にブロートウェア(bloatware)と呼ばれ、特にパソコンに
プリインストールされた不要な
ソフトウェアを指すことが多いです。近年、
ソフトウェアが持つ機能が拡充されつつも、本来の目的に対して過剰な部分を抱えていることがあります。
歴史的背景
1970年代頃、
ソフトウェア開発は記憶容量や処理能力の制限と共に歩んでいました。この時期は、わずかなバイトでも削減することが重視され、可能な限りリソースを効率よく使用することが求められました。しかし、近年の技術の進歩により、リソースのコストが大幅に低下しました。これに伴い、民間やビジネスシーンでコンピュータの利便性が向上し、
ソフトウェア産業も飛躍的に成長しています。
その結果、開発ツールや手法が複雑化し、一つのプログラムに多くの機能を組み込むようになっていますが、これによって多くは使われない余分な機能が付加されることもしばしばです。著名なコンピュータ科学者ニクラウス・ヴィルトはこの状況を「
ヴィルトの法則」として、ハードウェアの向上にもかかわらず
ソフトウェアが急速に低速化する傾向を指摘しました。
肥大化の理由
著名な
ソフトウェア開発者
ジョエル・スポルスキは、エッセイ『Strategy Letter IV: Bloatware and the 80/20 Myth』において、多くのユーザーが
ソフトウェアの機能のごく一部しか使わないと述べています。具体的には、80%のユーザーが20%の機能を使用するという
パレートの法則に基づいて、機能が豊富な
ソフトウェアが選ばれやすい結果、肥大化が進むとしています。
一方で、Mozillaの開発者は、膨れ上がる
ソフトウェアに対して市場のニーズが影響していると考えています。特定の機能を求めるユーザーが多い場合、その声に応じて
ソフトウェアが進化し、その結果として肥大化するのです。
具体例と批判
古くからマイクロソフトのWindowsは肥大化の標的でした。特にWindows Vistaに関してマイクロソフトの技術者も肥大化を認めていますが、実際にはカーネル等の主要部分は効率化されていると主張しています。しかし、元エディターのエド・ボットは、この考え方に疑問を呈し、新しいバージョンが出るたびに肥大化したことを暴露しました。さらに、CDやDVD書き込み
ソフトウェアのNeroや、AVGなどウイルス対策ソフトも同様に批判されています。
対策
最近のアプリケーションでは、
プラグインによって機能を追加する形を採ることが一般的です。これにより、ユーザーが自らの必要に応じて機能を選べるため、
ソフトウェア本体の肥大化を抑える一助となっています。しかし、インストールされた
プラグインの数が増えると、かえってリソースを消費するリスクもあるため注意が必要です。
オープンソースソフトウェアも、特定の機能を選択して編纂・コンパイルすることができるため、肥大化を抑える手法の一つです。さらに、
UNIX哲学を実践する観点からは、「一つのことをうまく行うプログラム」を作成する考え方が提唱されています。これは複雑な
ソフトウェアをシンプルなものに分け、別々に運用することで効率化する手法です。
結論
ソフトウェアの肥大化は、現代の開発環境において切実な問題です。一方で、その背景にはユーザーのニーズや技術進歩があるため、肥大化をいかにコントロールするかが開発の鍵となります。これに対処するべく、
プラグイン方式やシンプルな設計理念の導入が求められるのです。