Close up!
ハードウェアとソフトウェアの違いを説明できますか
kikaku詳細, NEXTワード2008年03月04日 2:01 PM
気になるIT用語を解説するNEXTワード。今回は「ハードウェアとソフトウェア」について解説する。基本中の基本用語なんだけど、説明しても、ちゃんと理解してもらえないこともある。ここで、あらためて解説しておきたいのだが、そもそも、そんな区別は必要ないという時代が来るのかも知れない。
我がチームの有能なスタッフである町田クン(男性、31歳、仮名)が、突然こんなことを言い出した。
「USBメモリって、ソフトですよネ!?」
子供のころから、ファミコンやCDプレーヤーが当たり前の存在だった彼にとって、データやプログラムを入れておく物は、すべて”ソフト”と呼ぶと思っていたらしい。たしかに、ファミコンのゲームカートリッジや、楽曲が入ったCDアルバムは”ソフト”と呼ばれる。だから、彼にとって、ワープロ文書などのファイルを入れた携帯型のUSBメモリも”ソフト”ということになる。
しかし、この理解は間違っている。『ソフト』とは、『ソフトウェア』(Software)の略であり、CDやUSBメモリは厳密にはソフトウェアではない。
こんな間違いをする人は、それほど多くないかも知れないが、彼のように、なんとなーく使っている人もいる意外と存在している。『ソフトウェア』とは何なのか、あなたは、きちんと説明できるだろうか。
本来、ハードとソフトは一体だった
まずは『CD』を例に考えてみよう。CDの場合、円盤の中に音楽を封じ込めてある。だから、円盤と音楽を別々ではなく、ひとつの組み合わせとして把握するのは、当たり前のことだ。同じようなことは、本にも言える。その結果、「レコードを聴く」「本を読む」というように、パッケージと中身をひとつと考える表現が登場するのだ。
これが、コンピュータの場合は異なっている。コンピュータは、プログラムに従って、その処理する内容を変更できる。プログラムを変更すれば、処理内容も変わる。処理のためのデータも、簡単に追加したり消すことができる。そのために、コンピュータ本体などの物理的な存在と、その中身のプログラムやデータは、ひとつの組み合わせと考えることは少ない。
【ハードウェア】(Hardware)とは、装置や設備などの実体のある『物』を表している。英語では、もともと金物類や金属製品を意味する言葉である。コンピュータ用語では、コンピュータ本体や周辺装置を『ハードウェア』と呼ぶ。これに対して、コンピュータの中にあるプログラムやデータを【ソフトウェア】(Software)と呼ぶ。ソフトウェアは、物理的な実体を持たず、何らかのハードウェアに複写されていくことで存在している。
ハードウェアは、物理的な実体があるものを指すのに対して、ソフトウェアはその中に記録されたプログラムやデータを指す。ソフトウェアは、物理的な実体を持たない。
未来は、すべてが書き換え可能になるかも
さて、現在ではコンピュータはいたる所に存在している。携帯電話も携帯音楽プレーヤーもICカード型の定期券も、その心臓部はコンピュータになっている。その中に保存されたソフトウェアは、書き換えたり追加することができる。本を読む替わり、携帯電話で小説を読んだり、CDプレーヤーの代わりに、iPodのような携帯音楽プレーヤーで音楽を聴くのは当たり前の風景である。これからは、本やCDのような物理的な存在と組み合わせになったコンテンツは、今まで以上に少なくなって行くかもしれない。
さらには、いたるところに偏在するコンピュータが、書き換え可能なソフトウェアでもって、物理的な世界を上書きしてしまう。そんな世界が、近い将来に出現するかも知れない。
もしもあなたが、新しいテクノロジーの可能性に興味を持っているなら、【拡張現実感】(AR: Augmented Reality)という技術について調べてみて欲しい。『攻殻機動隊』とか『電脳コイル』といったSFの中で登場する技術が、研究室レベルで面白い成果を出始めている。
カメラで撮影した現実の映像の上に仮想の世界をリアルタイムで重ねて表示するデモンストレーション。ノートPC程度のコンピュータ性能で実現している。デモ映像は、Youtubeのコチラで観ることができる。もう少し詳しい解説は、王様の箱庭『攻殻機動隊』『電脳メガネ』どころではない拡張現実感技術の現在」が参考になる。
そんな未来が来たとき、冒頭の町田クンのように、ハードウェアとソフトウェアを区別しないのが当たり前になっているかも知れない。
- Wikipedia ハードウェア
- Wikipedia ソフトウェア
- 王様の箱庭 『攻殻機動隊』『電脳メガネ』どころではない拡張現実感技術の現在
- 「攻殻機動隊」「電脳コイル」の世界を実現! ARToolKitを使った拡張現実感プログラミング



