2008.08.29
ソフトウェアの「硬さ」
ITPro - ソフトウエアはハードウエアより硬い
http://itpro.nikkeibp.co.jp/article/OPINION/20080825/313305/

<ソフトウエアは硬い。ハードウエアよりも硬い。ある程度の規模のソフトウエア資産を抱え,それを日々動かしている担当者の方であれば,ソフトウエアの硬さ,すなわち柔軟性の無さを痛感しておられると思う>。

これはとても面白い記事。

<ソフトウエアが硬くなっている,という印象的な表現は,2004年1月に出版された『ソフトウェア入門』(黒川利明著,岩波新書)に出てくる。(中略)同書によれば,「コンピュータシステムにおいては,ハードウェアを変更するか,ソフトウェアを変更するかという判断を迫られたとき,今日ではユーザは一般的にハードウェアの変更を選び,ソフトウェアの変更は後回しにする」ようになってしまった>。

<例えば,あるシステムの応答速度が遅くなった時,手っ取り早い解決方法は,ハードウエアの増強である。かつてのメインフレーム時代と違い,ハードウエアはコンピュータ・メーカーが気の毒になるくらい安く,しかも高性能になっている。せっかく動いているソフトウエアに触る危険をいきなり冒すことはない>。

ソフトウェアをいじることが「危険」だというニュアンスは、多少なりとも情報システムにかかわっている人であれば、共感できるものと思う。

ソフトウェアの変更には及び腰になり、ハードウェアの変更で済まそうとするのは、ハードウェアが安くなっているというコストの問題もあるが、おそらく「モジュール化」の問題だろう。

ハードウェアはモジュール化や規格の標準化がわりとすすんでいて、技術のあらゆる細部を理解しなくても、たいていは部品単位で取り替えられる。しかしソフトウェアは、一般的にはそういうふうにはいかない。

「硬さ」というのは、「わかりにくさ」だ。いまのソフトウェアは、まだまだわかりにくいのだ。

ハードウェアだって、とことん技術の細部まで降りていけば、むずかしい世界だ。それでも、ソフトウェアよりもハードウェアのほうが変更しやすい感じがするのは、モジュール化によって「わかりにくさ」が隠蔽されていて、「わかりやすさ」だけが見えるようになっているからだろう。

一般的な情報システムは、まだ「ちゃんと動く」「役に立つ」といった機能を満たす段階にある。モジュール化や標準化といったレベルは、通信プロトコルや一部のソフトウェアのみが開拓している。さらに、「わかりやすい」「使いやすい」という人間的な側面、ヒューマン・インターフェイスとなると、ほとんど未開の原野だ。

しかしこうしたことは、きっと時間が解決してくれると思う。ソフトウェアは、ほとんど文章を書くのと同じくらい、気軽に書ける。そのことがモジュール化や標準化を妨げているかもしれないし、未熟な技術者や質の悪いシステムを生んでいる面もあるだろう。それでも、「かんたんに実践できる」ということのメリットは、すべてのデメリットを上回るはずだ。

ソフトウェアの「硬さ」とは、ソフトウェアというものがまだ「未熟」だということなんだと思う。しかしそれゆえに、日々激しく発展しており、これからも成長していく余地が大きい。中に飛び込んでみると、ソフトウェアというのはほんとうに面白い世界だ。