海老原と申します。
私はZ80アセンブラ世代ですが最近はもっぱら組み込みlinuxで仕事をしています。
>私はクライアントとしての立場が多いので、その観点から発言させて
>頂くなら、「C言語でやれないこともないが、それはそれで問題が・・・」
>などと発言する外注は、その時点で排除対象とすべきと考えます。
>「この処理は、○○μsec以内に収めなくてはならないのだが、Cのはき出す
>コードでは××byteになってしまうので、アセンブラが必要である」
>という説明なら十分納得致します。
このご意見に大賛成です。
Cでは遅いなんて言われていたのは十年以上前の話ではないでしょうか。
社員教育の面からみても、
アセンブラを覚える=特定のCPUを覚える
と等しいことですから、H8のアセンブラを覚えさせたからといってその教育コス
トはなかなか回収できないように思います。
私はZ80が扱えます
私は8051が扱えます
私は68000が扱えます
のように、石の数を列挙していた80年代の時代感覚を思い出してしまいました。
ソフトウェアの再利用性の観点からしても、アセンブラで書いていては以前書い
たアセンブラソースコードの一部のコピーペースト的なローテクな再利用方法し
かとれません。クラスオブジェクトの再利用の時代なのに。
ただし、一般教養として、職業プログラマーを目指すエンジニアにはアセンブラ
やスタートアップルーチンといった『一般教養的知識』はMUSTには違いありませ
ん。
私の場合はPICやAVRマイコンではアセンブラを使いますが、H8以上のマイコンだ
ったらスタートアップルーチンや割込みベクタといったCPU依存部分以外はCで書
きますし、32bitOSならなるべくc++を使おうとしています。
組み込みでc++を使うとnew/deleteでのメモリフラグメンテーションに対して、
いまだにちょっとキモチワルイ感があるので、なるべくスタティック、あるいは
スタックだけで解決できるCを好みます。