ikkei blog

電子工作やパズルのブログです。主にLEDを使った電子工作をやっています。

これが...「組込み現場」のCプログラミングなのか!? 続編

2012年10月31日 00時14分39秒 | 組み込みソフト
前回のブログ記事に、筆者の三浦さんからコメントを頂きましたので、
今日はそれについて書こうと思います。

コメントの内容
----------------------------------------------------------------------------------------
ご指摘をありがとうございます (三浦 元) 2012-10-27 10:43:41
この本の著者の一人、三浦 元です。
辛口のご批評を、ありがとうございました。
お書きの内容は理解いたしました。
まず、ご理解をいただいていると思いますが、本書の主眼はハードウェアの説明ではなく『組込みプログラミングで品質を上げるために知るべきこと,意識すべきこと,実行していただきたいことを解説』することです(本書「はじめに」から抜粋)。その立ち位置から、ハードウェアの知識を持たない方を想定して意図的に象徴的な図示を行なっています。
ただ、回路的に見てそれらが「動作しない」「誤り」であるのはご指摘の通りです。
これらの箇所の改善を検討し、次回改版時の反映を考えます。
ありがとうございました。
----------------------------------------------------------------------------------------

「辛口」ですか?
私としてはかなり「超甘口」に書いたつもりなんですけどねぇ。


本の内容はプログラミングが主体で、その点はかなり良いと思います。
ただ、この本が単に「Cプログラミング」とか「プログラミング入門」
だったら、まだ罪は軽かったでしょう。

しかし、「組込み現場」と書いてあるので、ハードウェアの説明が無いとおかしいし、
「徹底入門」と付いている限り、いい加減な事は許されません。
ましてや、「SESSAME」の「テキスト」ですから、嘘を書いてはダメでしょう。

で、「意図的に象徴的な図示」ですか。

では、もっと現実的な話をしましょう。
これを「激辛」ととらえるかは別として。

もし、派遣や外注の人が「プルアップってこんなんでしょう?」って、
こんな回路図を書いてしまったら、

「は? ん、 まぁ、そんな感じですね.....」って言われて、
もう2度と仕事が来なくなるのは必至です。


実際の組込み現場では、マイコンもシステムの構成要素の一つに過ぎません。
つまり、ハードウェアの部品としてマイコンを捉えています。
だから、ソフトウェアはマイコンにつながっている回路を、
出来るだけ機能的に働かせる必要があるのです。
そのためには、単にハードウェアの知識が有るだけではダメで、
応用する力、リテラシーが必要なのです。

従って、現場の人は、この人がまともなコードが書ける人なのか、
ハードウェアのリテラシーが十分有るのか厳しく見ています。
お金を払って品質を作り込むのがソフトウェアですから当然です。

たとえば、マイコン内蔵のカウンタであるとか、AD変換器、割り込み、
I/Oポートにつながっているデバイスやシステムを十分把握した上で
コードを書く必要があります。
もしハードウェアの理解が無いと、とんでもないソフトウェアに
なってしまうかも知れません。

つまり、組込みプログラミングで品質を上げるために、
最も重要な事は、ハードウェアのリテラシーが十分に有り、
ハードウェアを機能的に動作させるようにコードを書くことです。


確かに、この本は「組込みプログラミングで品質を上げるため」の
コードを書く話は書いてありますが、その大前提としての
ハードウェアリテラシーが致命的に欠如しています。


もし、ハードウェアに対する十分なリテラシーが無いと分かったら
その時点で、仕事としてコードを書いてはいけません。
ハードウェアの勉強をしてから、
ソフトウェアの品質を上げる話をして欲しいと思います。

いや、ハッキリ言いましょう。
ハードウェアのリテラシーの無い人は組込みを辞めて頂きたい。
組込みソフトで一番やっかいなのは、
ハードウェアのリテラシーの欠如から来るバグなのですから。

最新の画像もっと見る

コメントを投稿