Isseiさんこんにちは。 成田@千葉と申します。 IsseiさんのJOB内容を把握していないので、 的を外しているかもしれませんが・・・。 ここは、私の開発観を思いつくまま、つらつらと書かせて 頂くので、「こんな考えのヤツがいるンだ・・・」と 思って頂ければ幸いです。 一昔前ならともかく、最近のCPUは高速&大容量になってきており、 Cでは追いつかない内容のアプリケーションは希になりつつあるのでは ないでしょうか。 例えるならば、PC-9801N の時代なら、フルアセンブラで組む意味も あったかも知れません。 しかし、CPU が 3GHz をむかえる今日、OS を含めフルアセンブラで組もうなど まず誰も考えないでしょう。 私はクライアントとしての立場が多いので、その観点から発言させて 頂くなら、「C言語でやれないこともないが、それはそれで問題が・・・」 などと発言する外注は、その時点で排除対象とすべきと考えます。 なぜCで出来ないかとの根拠が示されてなく、「クライアントは 何も精査出来ないだろう」的な意図を感じずにはいられません。 「この処理は、○○μsec以内に収めなくてはならないのだが、Cのはき出す コードでは××byteになってしまうので、アセンブラが必要である」 という説明なら十分納得致します。 ホビーユースならともかく、商売でやってる以上、開発コストは無視できません。 一般的に言って、アセンブラとCとでは、ステップ単価に大きな差があります。 多少のコードの冗長性はあったとしても、それが製品に与えるインパクトが どの程度なのか、十分に精査する必要があります。 また、スマートなコードが出来上がったとしても、それがエンドユーザに どれほどのアドバンテージを与えるのでしょうか? 我々は、ソフトハウスの自己満足の為に発注をしている訳ではありません。 もし、CPUのパワーが足りなくなるのであれば、CPUのグレードを 上げれば良いのです。これによりコストアップが発生したとしても、 ソフト開発費と比較し、イコールならばCを選択すべきでしょう。 HWのコストアップの方が上であった場合でも、ソフトのフレキシビリティと 比較し、十分精査する必要があります。 エンドユーザーからは、内部的にどんなにスッキリ仕上がっていても 機能が同じならば、決して良い評価はしてくれません。 例えば、PC上のソフトを作る事を考えた場合、Windows等を無視し、自社でOSまで 開発するのでしょうか? それが本当にスピードや、ユーザーインターフェースに優れていたとしても、 まず評価されないでしょう。 我々クライアントが求めるのは、素早い開発と、コストダウンです。 今後、製品の開発サイクルはますます短くなって行くことでしょう。 世間に出回っているツールやRTOSを買ってでも、 それらを駆使し、最小の開発コストと納期で 製品をまとめるというのが、我々クライアント側が ソフトハウスに求めるスキルです。