ハードウェア と ソフトウェア 『 あえて比べるとしたら 』どちらが作るのが難しいと思いますか? 


その理由と 自分がハード・ソフトどちらのエンジニアであるか?または、どちらでもないか?を教えて下さい。

※ 比べられるようなものじゃない という回答は不要です。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/02/16 19:41:36
  • 終了:2012/02/23 19:45:11

回答(12件)

id:Cherenkov No.1

Cherenkov回答回数1503ベストアンサー獲得回数4932012/02/16 19:58:17

ポイント17pt

ハードウェアのほうが難しい。
ソフトウェアのほうが試行錯誤しやすい。コピーが容易。ハードは作る手間暇がかかる。
自分はソフトのエンジニア。

他5件のコメントを見る
id:Cherenkov

人工衛星を動作させることをゴールとしたら、人工衛星のハードとソフトどちらが難しいって感じですかね?
実行容易性が低くて歩留まりがわるかったら予算をとるのが"難しい"でしょうし。
時間が無限にあったら主観的な技術的難易度なんて関係なくなるし。
質問が難しいです。

2012/02/16 21:47:43
id:kokorohamoe

私個人は、あえて とつけたように どちらにも特有の難しさがあり、比べることは難解だと思っています。
 
しかし、どちらか片方が 圧倒的に難しいと言える人がいるか?という事を考えて質問をしてみました。

一般的に 制御系では やり直しのきくソフトのほうが簡単なので、難しいことはソフトにやらせるという事が主流ですが、 その事が反転してしまって ソフトウェア屋が難しいことを担当してしまっているために、ソフトウェアの方が難しいという逆転現象も起きます。

その上で、どちらが難しいなどと言えるのでしょうかと。

人工衛星ですと長持ちするバッテリーを作ることは難しいですが、バッテリーを長持ちさせるために、極力電力を使わないソフトを書くことは難しいです。

たとえば、電力を長持ちさせるために使わないメモリーは0にしておく=電圧をかけないようにする という事をソフトではしますが、そういうことは一般にはしられておらず、無かったことにされている気もします。

2012/02/19 01:17:32
id:a-kuma3 No.2

a-kuma3回答回数4523ベストアンサー獲得回数18802012/02/16 20:21:59

ポイント17pt

ソフトウェア系です。

「敢えて」を付けなくても、ハードウェアの方が難しいと思います。
ソフトウェアの方は、簡単に何度でも作り直しができます。


イメージとしては、ソフトウェアの開発は、鉛筆で絵を描いてるイメージ。
いや、紙が無くなるという制限が無いという意味では、うごメモで絵を描く感じでしょうか。
時間さえあれば、何度でも書きなおせる。

ハードウェアは、料理を作るイメージ。
実物が出来上がらないと、想像はできても、評価ができない。
やり直しができるにしても、冷蔵庫にある材料の範囲で、というしばりがある。
材料が無ければ、スーパーで買ってくれば良いじゃない、というのはありますが、また時間が余計にかかるし、期待する材料が買える保証もない。

他9件のコメントを見る
id:mjy

> 足し算 と 微分積分 のように 単純に 技術的観点だけで どちらが難しいですか?

というコメントがありましたが、これは慎重に考えなければいけません。
id:kokorohamoe さんは足し算と微分積分どちらが難しいとお考えですか?

「足し算の練習問題」と「微分積分の練習問題」ならば「微分積分の練習問題」でしょう。
しかし、「ある課題」を「足し算で解く」のと「微分積分で解く」のでは、「足し算で解く」方が難しかったり、そもそも足し算では解けなかったりします。

これは揚げ足を取っているのでは無く、元のご質問に通ずる論点だと思います。

つまり、与えられた道具のチープさと、課題全体の難しさを混同しはならないということです。
現実世界では、良い道具が使える環境なら、より困難な課題が設定されます。

(ただし微分積分と足し算は「微分積分の使用には、足し算が必要になる」という関係にあります。
ハードウェアとソフトウェアはそういう関係では無いので、この比喩はここまでにしておきます。)

2012/02/16 22:34:41
id:kokorohamoe

仰られているように、足し算を習得しなければ、微分積分が習得できないという意味で微分積分が高度な知識を要する技法である。という意味で難しいと表現しています。
また、問題分にあえて、とつけているところに 注釈をつけていただければと思った上で


現在は仰られているように 時間的製薬の問題で、ソフトでもハードでもどちらでもできることは、ソフトでやる事が主流かと思います。

そのため、複雑な問題つまり、微分積分を使わなければ解けないような問題が、ソフトに担当される という 政治的な事象もあり、 
どちらでもとける 問題については ソフトウェア屋がやらされる事が多いかと思います。
 

2012/02/19 00:46:28
id:suppadv No.3

suppadv回答回数3552ベストアンサー獲得回数2682012/02/16 20:26:23

ポイント17pt

どちらでもないです。
ハードウェアだと思います。
色々な材料が必要なので、一人では難しいと思います。

他2件のコメントを見る
id:TransFreeBSD

世の中の大半の技術的困難さとは、人的資金(材料や機械)的時間的な制約の元での困難さです。
bnnさんが書いておられますが

ハード 物理的な壁
ソフト 創造的な壁

はまったくその通りだと思います。ここで物理的な壁の多くを取り除けばハードとソフトの困難さは同じようになる、つまり言い方を変えると、物理的な壁の有無がハードとソフトの困難さの違いだと思います。
#ただし、実際はソフトはハードなしでは動かないが、ハードとソフトの対比においてソフトを動かすハードの問題はソフトの問題としては語られない、というのがある

2012/02/17 00:49:35
id:kokorohamoe

それはその名の通り、資金的困難さは 名前の通り資金的困難さであり
技術を持った人間が登用できないのは 人材的困難さであり
時間的な問題は 時間的困難さですよね?

たとえば、技術的な困難さといわれたばあいには、
今は説かれてしまいましたが、フェルマーの最終定理を証明せよ みたいなものではないでしょうか?

2012/02/19 00:48:49
id:mjy No.4

mjy回答回数67ベストアンサー獲得回数202012/02/16 21:07:42

ポイント17pt

まったく同じ難しさです。

ハードウェアは難しい。
例えば、Firefoxなどのウェブブラウザはソフトウェアです。
これのハードウェア版を作るなら、専用の集積回路を設計し製造することになります。
とてつもなく難しいと思います。
やる人はいないでしょう。

ソウトウェアは易しい。
例えば、CPUはハードウェアの中でもかなり複雑な部類です。
これをソフトウェアで作るとエミュレータが出来ます。
エミュレータのプログラムを作るのは、CPUを設計し製造するより簡単です。
多くの人がエミュレータを作っています。

このように、同機能の物を作るなら、ハードウェアの方が難しい。
しかし「ハードウェアの方が難しい」とは言えません。
ソフトウェアの制作者は、ハードウェアで作っていられない物を作ります。
複雑であったり、制作に時間や費用をかけられない物です。
結果、ソフトウェアの制作にもハードウェアと同じ程度の困難が生じるわけです。

私はエンジニアではありません。

他3件のコメントを見る
id:mjy

> また、ハードウェアも多くのエミュレーターがあるかと思います。
Crusoeが内部で命令セットを変換しているというような事でしょうか。
x64がx86の命令を実行するようなのは、実際に回路が存在しているのでエミュレーターではないと理解しています。
あまり知らないのですが、ソフトウェアのエミュレーターの百花繚乱ぶりからすると少ないと思います。

> 最近のCPUなどは設計の大多数はエミュレーター上ですよね?
詳しく無いのですが、そのエミュレーターはソフトウェアなのではないでしょうか。

2012/02/16 22:56:36
id:kokorohamoe

IC回路を設計する際に微細なプロセスのハンダ付けをどうすると、歩留まりが良くなるか?などはスパコンを用いて計算されていると思います。
実際に 大量のシリコンを焼くととんでもなくお金がかかるので、そうやっていると聞きました。

2012/02/19 00:50:17
id:bnn No.5

bnn回答回数65ベストアンサー獲得回数182012/02/16 21:26:00

ポイント17pt

まだエンジニアではありません。
敢えて比べるとハードウェアだと思います。

ハード 物理的な壁
ソフト 創造的な壁 みたいに思ってます

今の世の中どちらも新しい物を作るのは大変だと思いますが。

id:grankoyama No.6

グラ娘。回答回数560ベストアンサー獲得回数1702012/02/16 21:37:02

ポイント17pt

ソフトウエア近辺です。
ハードの方が難しいと思います。
他の方もおっしゃっているかもしれませんが物理的な壁を乗り越えるのには
大変苦労しそう。
ソフトウエアってアイデア次第だったり人海戦術だったり、なんとでもなることが多い。


通信系ソフトで通信速度が足らないってなったときなど、どうにもならなくて苦労しますが、
通信技術(つまり)ハードの限界が先にあってのことなので。


めちゃめちゃ簡単なハードとめちゃめちゃ簡単なソフトを比べてみても、
どちらも、ソフト作成用のツールとかの使い方を覚えたり、ハードのほうは良く知らない
ですが、事前準備が必要で、
でも、ソフトだとその後するのは結局コードを打つってとこだけで、
代替がたくさん効く、失敗してもリカバリが容易。
ハードだとひとつの失敗で、おじゃんになって一からやり直しとかもありうるし
作る技術にも幅が広そう。設計もいるしハンダ付けとか、なんだかんだと。


なのでハードです。難しいのは。

他2件のコメントを見る
id:grankoyama

いえいえ、そこまでHW、SWともに深くは知らないのですが……
例えば、ソフト的には出来ることって限られてますよね。
圧縮するとしても、そのパターンって既に限られていてだからこそ頭打ちの状態にあると
思うのです。
でもHWって、まだまだパターンが出尽くしていない(ような気がする)。
つまり発想の段階でHWの方が難易度が高いかなと感じるわけです。
周波数多重だけでなく、通信する経路、ケーブルとか電気を送るのか、光で送るのか、
はたまたそれ以外の何かなのか……その辺とか含めて考えることも
可能ではないかと思う次第で。


高度は無理ですが、低レベルの圧縮ソフトなら作れます。
HW、通信機器の開発なんて全く想像がつきません。
やっぱり自身がHWのほうの知識が圧倒的に少ないからそう思えるのかも知れません。
という前置きが付きますが。


でもって、周波数多重を行うこととと、データ圧縮ソフトの開発で言えば、
どっこいどっこいな気がしますが、ソフトだとなんとなく諦めの付く感じの壁に
ぶつかって終わる気がします。整合性の保証とか、複合化の手間だとか。
周波数多重って、やり出したらキリがなさそう。
なんかもやもやっとした壁にぶつかって、てんやわんやしそうなのです。
あくまでイメージ論ですみませんが。

2012/02/19 01:26:31
id:grankoyama

HWでもSWでも出来るよって時。
ハードが難しいと言われがちなのは、開発時期がその上位にあるからってことが
多々ありました。
ハードあってのソフトなわけで、あとからハードを変えるのはリスクが高いとかコストが
余計にかかる。だからソフト側で対応する。

もうひとつ、ハードやさんは、ソフトってなんでも出来ると思ってる。
で、ソフトやさんも結構そういうことを言っちゃう。
ハードやさんは、手戻りの怖さを知っているのか、面倒くさがりなのか難しいって
いいがち。
あと、ソフトやさんはハードやさんのいい訳を聞いてもその内容が理解できず、
納得せざるを得ない。
ソフトやさんのいい訳って素人が聞いても「そうなの?」「ほんとはできんじゃないの?」
とおもわれがち。

そんなこんなで、ハードやさんは逃げるのが上手になってゆきます。
って感じの印象を、社会経験積むうえで得たような気もしないでもないです。

2012/02/19 01:33:09
id:y-kawaz No.7

y-kawaz回答回数1421ベストアンサー獲得回数2262012/02/17 01:46:26

ポイント17pt

解決する問題によると思う。
問題が「計算問題を解く」であればソフトのほうが簡単。
問題が「物を移動する」ならハードのほうが簡単。

id:windofjuly No.8

うぃんど回答回数2625ベストアンサー獲得回数11492012/02/17 02:12:19

ポイント17pt

大昔はハード+ソフト
今はソフトオンリー(雑用係と言ったほうが早いかも・・・)

難しいのはハード(物質)よりもソフト(概念)だと思います
概念(設計)が無ければ物質を構成(製作)することはできないから・・・

8bit時代を思い返せば、何やらとハサミは使いようだったと思うのですが、
最近のソフト開発は用意された卓上で活動するだけの寂しい感じがします・・・
(ハード・ソフト両面を知り尽くすなど無理に近いのであきらめてたりします)

id:taroe No.9

taroe回答回数1099ベストアンサー獲得回数1322012/02/18 01:59:42

ポイント16pt

A.ハードウェア
 どちらのエンジニアでもない


最近は、
ハードウェアもソフトウェアロジックで作れる部分が多いですが、
それでも
ハードウェアはアナログの要素が多々残っていて
0,1でない不確定な部分が多々あります。


ソフトウェアは毎度同じ動作をしても
ハードウェアは毎度同じ動作をしないこともあったあり
安定したものを作るのは難しい。

ハードウェアの場合は、ソフトウェアのように不具合を一部書き換えみたいな対応ができない。
パーツ交換ですめばよいが、もともと設計が悪いと・・・。

SONYタイマーがすばらしい例。

id:kokorohamoe

ソフトウェアは バグがあるので 数千万回に1回の出現頻度のバグをとれとかは、不確定な要素との戦いですし

おっしゃられるように、ソフトウェアのように不具合を一部書き換えみたいな対応ができるために、後から発覚したハードの不具合を 無理やりソフトで迂回して修正することがあります。

したがって、ハードウェア屋さんの物理的な限界で書き換えができないという風に逃げられるのはハードのほうが楽な部分ではないでしょうか?

2012/02/19 00:55:00
id:gm91 No.10

GM91回答回数1007ベストアンサー獲得回数882012/02/18 22:13:32

ポイント16pt

H/W設計とS/W設計を数年ずつ齧って、今は双方の取りまとめというか板挟み的な業務についております。

あえて言えば、「条件による」もしくは「同じ」というのが一番誠実な回答になります。
なぜならば、「技術的難易度」を量る定量的な尺度がないからです。

「豆大福」と「芋ようかん」どちらが美味しいですか?
どちらも美味しい店の例を挙げて比較してください。
美味しい店の豆大福とまずい店の芋ようかんを比べてもダメです。

という質問になってしまっています。

問題点が2つあります。
1)比較対象があいまい
 →「東京と大阪の人、どちらが足が速いか?」と言われても、大阪の人が福本豊なのか門田博光なのか不明では困る。

2)基準が不明
 →例えば山の高さを比較するなら海抜とか比高という基準を決めますよね。

何か条件や基準を決めないと答えようがないと思うのです。

あるいは、H/W設計とS/W設計を比較して
「どっちが好きか?」
「どっちがラクか?」
「どっちがやりたいか?」
というような質問ならば個人的な意見で回答できますけど(^^;

多分、このご質問に至った経緯があると思いますので、それを挙げてもらえばもっと具体的な回答が集まるのではないでしょうか。

他2件のコメントを見る
id:kokorohamoe

たとえば、アナログデバイスの制御ソフトの場合上記にもありますが、不安定なハードから上がってくるアナログな情報をソフトウェアでフィルタリングして制御するわけですが 不安定さをフォローしているのはソフト(ファジー理論流行りましたね)の方なのに、 ハードウェアのほうが難しいといわれると どうか?たる物があります。
ちなみに、私自身はちかくにハードを作る人もいます。、ハードウェアが簡単だというつもりでいっているわけではないです。

2012/02/19 01:05:42
id:gm91

なるほど、ご質問の意図は了解しました。
色々思うことはあるので、ちょっと考えてみますね。

2012/02/19 01:07:12
id:gm91 No.11

GM91回答回数1007ベストアンサー獲得回数882012/02/19 18:35:58

ポイント16pt

大変失礼致しました。
ご質問の意図を誤解しておりましたので改めて回答致します。
ただ、回答はやはり「比較するようなものではない」ということになります。(あ、帰らないで)
もっと正確に言えば「難しさ」の捉え方に捩れがあるように思います。


コメントを踏まえ、違和感のある点を整理できないか、色々考えてみたのですが、
心は萌え様曰く「技術的(学術的?)難しさ」というのが、時間/費用/環境等を一切除外したものであるとするならば、それは実現したい事の「学術的難しさ」なのであって、H/WやS/Wで実現することの難しさとは別なのではないか?と思うのです。

何を言いたいか分かりにくいと思うので整理しますと

1)「技術的(学術的?)難しさ」
微分演算したい、フィードバック制御したい。等
扱う事象や理論の難しさ、という表現になるでしょうか。

2)「H/Wの難しさ」
一般にH/W設計は大変だ、面倒だ、難しいと言われる時に問題となっているのは、上記1)のような理論の話ではなくて、材料費、開発期間、外形(寸法/重量)、ノイズ対策、動作環境(温度など)についての考慮が要るという話だと思います。
これらを一切除外できる状況ならば「H/Wは難しいからS/Wで」と言われることはないと思います。

3)「S/Wの難しさ」
開発期間や費用。また、与えられたH/W以上の事はできない。
ただ、現実的にはどうしても下流工程になってしまうので、泣き寝入りというか、変な小細工を仕込まねばならなくなるケースが多く、そこに頭を悩ませることを「S/Wの難しさ」と言っても良い。
しかし、時間/費用を考慮しないとなるとそれはあまり意味を持たなくなる。
(H/Wで根本的に解決できるなら悩む必要がなくなる)


という感じでしょうか。

例を挙げるならば、「ノイズ除去したい」という技術的な課題について
「微分演算してハイパスフィルタを作ろう」というのが上記1)であり、
「微分回路をOPアンプで作ろう」「PLDで組む」「DSPのプログラムで対応」というのが2)や3)の話なのだと思います。

他2件のコメントを見る
id:kokorohamoe

ソフトウェアの難しさは 大きさや小ささなどのように目に見える成果にならないので、評価されにくい というところだと思います。 HWですと サイズが1/2になった!とかは高評価でしょうが ソフトウェアで速度が2倍になりました!とかは、いままでなんで遅かったんだ!と言われる始末。というところでしょうか。

2012/02/20 17:48:53
id:gm91

だいぶ核心に近づいてきた気がします。(^^;

「デジタル化して行うという時点でソフトウェアの領域」
そんなことはないのですよ。
アナログ信号をA/D変換したあと、デジタルフィルタをICで組んだって構わないのです。
昨今はPLDやCPUでロジックを組む方がラクですからA/Dの結果を直接プロセッサにぶち込むだけ。
ただ、心は萌えさんの仰るようにライブラリや開発環境から作らないといけないのならそりゃ大変です。


「デジタル化した時点でかなりいろいろな演算を簡単に行うことができるようにはなります。
しかし、その簡単というのは、音声処理に使う数学を知っているという前提になります。」
ここも、「S/Wだから」「H/Wだから」という議論とは別だと思っています。
例えばウチの職場ではそういうことを考えるのがシステム設計で、それを満たす手段としてH/WかS/Wかを選びます。
もちろん、討議の中でH/W屋やS/W屋から「こんなんもあるでよ」と提案されることは良くありますが、取捨選択するのはシステム設計です。


「これって事象はハードなんですが制御しているのはソフトなんですよね。」
いや、その場合制御しているのはあくまでハードでしょう。そういうソフトが載ったプロセッサというだけで。
これって「どこまでがS/Wなのか」というまた別の話かな、という気がします。

「HWですと サイズが1/2になった!とかは高評価でしょうが ソフトウェアで速度が2倍になりました!とかは、いままでなんで遅かったんだ!と言われる始末。」
う~んこれは現場の風土の問題かなぁ、と思いますけどね。
H/Wの方も「いままで何で大きかったの?」と指摘したって良いと思うんですよ。

2012/02/20 23:37:38
id:usbkk No.12

USB回答回数30ベストアンサー獲得回数12012/02/20 17:38:52

ポイント16pt

ソフトウェアが難しいと思います。
プログラムは1文字も間違えてはいけない世界。
そんなプレッシャーには僕はまず耐えられません。
その点ハードウェアは、「ものづくり」なので、達成感もありますし、途中でプログラムを打ち間違えてすべてが台無しになる事がありません。
僕はどちらのエンジニアでもありません。

他1件のコメントを見る
id:kokorohamoe

反面 数百万業のコードの中から ロジックエラーを見つけ出せといわれた場合は、大規模ハードウェアーの中からノイズを出している部品を1点みつけろみたいな難しさがあります。

2012/02/20 17:46:00
id:gm91

横槍失礼
H/Wも配線一本間違えたり、ICの型番1文字抜けたりしてもえらいことになります。(わたしのことです)
そういう意味では同じことです。

2012/02/20 23:41:23

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません