- ベストアンサー
ハードウェアとソフトウェア、どちらが先?
- ハードウェアとソフトウェアの歴史的な考え方
- ハードウェアとソフトウェアの重要性と関係性
- ハードウェアについて学ぶ必要性とコンピュータの動作原理
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
簡単に説明すれば、ソフトは元々人なのです。ハードは道具です。 ソフトというのは、柔軟性のあるもので、例えばそのもの自体が学習したり、勉強してハードを扱うことが出来るようになるということを意味します。ハードというのは、それ自体は特定の役割を与えられて生まれたものです。ただし、その役割はあくまで作られたときの目的であり、決してそれだけの使い道とは限らないものです。ハードがHardware(Hard)と呼ばれ、ソフトがSoftware(Soft)と呼ばれる語源とも言えるでしょう。 即ち、元々存在したのは、人という個体を司るハードです。そして機械としてのハードです。その後、ソフトウェアという情報で処理する仕組みが生まれました。エニアックなどもそうですが、最初は、ハードを人が制御する仕組みで、ソフトウェアというデータ情報はほとんど介在しなかったのです。 電話機もそうでしょう。今はスマートフォンが主流で、それはOSの載ったソフトウェアがハードウェアを制御しています。しかし、元々アナログの機器で、ダイヤルを回す仕組みでした。それが、ハードで、ソフトは、入っていませんでした。信号をトーンやパルスにする回路もハードです。これらはアナログ概念に基づく物です。情報を、情報としてそのまま信号に変換して載せるそれがアナログであり、ハードウェアを利用した概念なのです。 ソフトウェアで処理する概念は、デジタルの概念で、いわゆる情報を汎用的な情報回路で処理する仕組みを用いています。これはどういうことかというと、例えば今私が、100という数字を入力したとしましょう。コンピュータでは、1100100という数字に変換され、処理されます。 それを一般の人は、100だと理解するでしょうか?多くの人は、110万100と解釈するはずです。 それが、デジタルのソフトウェア概念です。コンピュータのソフトというのは、最終的に2進や16進のバイナリで処理されます。 それらは、あくまでハードに対応した形で、ハードウェアを動かす触媒でしかありません。だから、人が見た目でそれを機械語だと理解することは、たいていの場合は出来ません。 即ち、ハードウェアが生まれなければ、ソフトの概念は誕生しないですし、ソフトとはハードと一対(一体)になって初めて成立するものなのです。 そして、古来から人々がハードを作り上げていた過程では、ハードを扱うのは人でした。そこに、オートメーションを達成するために、人がハード向けの言語を生み出した。それが、機械語であり、それをコンパイルする前のものを、プログラミング言語といいます。 即ち、ソフトウェアは、人が楽をするために、ハードをオートメーション化するための道具として生み出したものです。最初は、ハードだけで、例えば水車を回して粉をひいていたのを、ダイヤルアナログ式のタイマーで水車との動力連動を変更するような仕組みを作り、次第に機械を進化させ、そこにデジタルスイッチの概念を入れ、ソフトという機械を制御する言語を与え、結果的に水車ではなく電力で、機械を自動化する仕組みを作り上げることに至るといった具合です。 その仕組みを支える言語こそがソフトウェアです。 まあ、今の世代なら分かりやすいのは、先に述べたスマートフォンが分かりやすいのですが、そもそもダイヤル式の電話を知らない人も多いでしょうから、それでもなかなかイメージが湧きにくいかな?
その他の回答 (7)
- nijjin
- ベストアンサー率27% (4811/17773)
まずソフトありきではないでしょうか? 計算機(コンピューター)といえば今はCPUやLSIなど電子式ですがそれ以前は機械式でした。 階差機関 http://ja.wikipedia.org/wiki/%E9%9A%8E%E5%B7%AE%E6%A9%9F%E9%96%A2 解析機関 http://ja.wikipedia.org/wiki/%E8%A7%A3%E6%9E%90%E6%A9%9F%E9%96%A2 機械式卓上計算機 http://ja.wikipedia.org/wiki/%E6%A9%9F%E6%A2%B0%E5%BC%8F%E5%8D%93%E4%B8%8A%E8%A8%88%E7%AE%97%E6%A9%9F ここでのソフトとは数字・数式です。 これらを機械的に足したり引いたりと計算するわけですから計算させる数字や数式無くして設計できません。 また、最初の電子(電気?)コンピューターといわれるENACでは配線を変えることによってプログラムしていました。 これはソフトに合わせてハードを組み替えるという手法で言ってみれば計算に合わせてハードを作り直す(作る)ということではないでしょうか? とはいえ、この話は今のPCにおけるソフトとハードの関係は成り立たないでしょう。 回せば(押せば)歯車が回って動くというものではありませんから。 今はたくさんのハードウエアの塊でありハードウエアによってはプログラム(ソフト)を入れないと動かないものや 動かせるようにするためにプログラム(ソフト)があらかじめ入れられているものもあります。 どちらが先と言う概念はあまり役に立たないのでは?
- itou2618
- ベストアンサー率26% (319/1208)
コンピュータの主記憶装置のメモリが8キロくらいだった1960年代末から、ずうっとコンピュータ関連の仕事をしてきました。 ハードウェアの教育も受けたのですが、いまだにプログラムが電子信号に変換される仕組みが理解できません。 ですから、コンピュータのハードウェアはブラックボックスと思っています。 プログラムを入力すれば結果が出力される機械なんだと・・・
コンピュータの概念はかなり昔から人々は空想してたようです。 最初はハードウエアと言うものは存在してませんでしたがソフトウエアも無かった。 簡単に言えば最初はリレーで論理回路を試験していますね、人間はそうしました。 その後、半導体が見つかって開発されていってソフトとマイコンが同時に出来た。 つまり、ソフトの知識が無ければハードも理解できません。ハードも生まれません。
- Gotthold
- ベストアンサー率47% (396/832)
> ということは、ハードウェアを先に学ぶほうが、 > プログラミング言語などの概念が、本当は理解しやすいということでしょうか? > なぜ、ソフトウェアを先に勉強するかがいまいちわかりません。 プログラミング言語(特に高級言語に属する物)は ハードウェアの概念を抽象化するのも役割の1つです。 なので、プログラミング言語を使う人は ハードウェアの深い知識が無くてもプログラミングが出来ますし、 場合によってはハードウェアが異なっていてもそのことを気にせずに済みます。 (車の運転するのにエンジンの構造を知ることは必須ではないよね、とでも例えればいいのだろうか。) もちろん、ハードウェアの知識があった方が より深く理解できる場合もあるとは思います。 ただ、 > Linuxを用いてのEmacsの使い方や、シェルの概念など、 > 主にソフトウェアに関してで、どのようにしてそのような概念が必要とされているのか、 > また、用いることが出来るのかなど、本質的(?)なことを教えてくれません。 何らかの概念が必要とされる理由って 利便性とか人間が使いやすくする為が多くて、 ハードウェアの要請によるものってあんまり無い気がします。 シェルだって、基本的に人間がコンピュータを楽に使う為の物ですよね。
- LOHA
- ベストアンサー率52% (203/388)
おそらく ・電子回路 ・論理回路 ・コンピュータアーキテクチャ ・オペレーティングシステム あたりを勉強すれば、きっと自分なりの答えが出るのではないかと思います。
お礼
要は、とりあえず学べ、ということですね? 参考にさせていただきますね! 回答ありがとうございました!
- TempltonPeck
- ベストアンサー率28% (130/460)
ここで説明しようとしても長くなってしまいますので、取り敢えず此方など、ご覧になってはいかがでしょう。 http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AE%E6%AD%B4%E5%8F%B2
補足
実はもうこのページは見たんです・・・ 難しい単語も入っていて、また、情報が体系的でないように感じて知りたい情報を見つけられませんでした・・・。
- Tacosan
- ベストアンサー率23% (3656/15482)
Online etymology dictionary によれば hardware は 15世紀半ば (コンピュータ用語としては 1947年), software は 1851年 (コンピュータ用語としては 1960年くらい) ということなので hardware の方が先ですね... って, そういうことじゃない?
お礼
回答ありがとうございました
お礼
回答ありがとうございました
補足
詳しい解説、ありがとうございました! とても良くわかりました。 ということは、ハードウェアを先に学ぶほうが、プログラミング言語などの概念が、本当は理解しやすいということでしょうか? なぜ、ソフトウェアを先に勉強するかがいまいちわかりません。 お手数でなければ、追記お願いします。