Raspberry-Piで基礎のC言語。IoT技術者への入り口へ。

Raspberry-Piの基本の言語はやはり「C言語」とにかく、まずは「Lチカ」まで行ける、という初心者向けの本を書きました。続編は「コピペでいける!Raspberry-Pi/C言語でセンサーとネットのプログラムを書く本」「コピペでいける!Raspberry-Pi/C言語でLPWAのプログラムを書く本」この3冊で、ラズベリーパイとC言語は完璧。次は本格的なIoT技術者を目指せる。

 


 

IT機器には数千万行のプログラムが入っている

ITの業界は、誰でもやれる仕事のように見えるが、そうではない。いや、どんな仕事も似たようなものだろう。人には個性があり、適正があるし、仕事にも、様々な種類があり、一律同じ仕事なんてものはない。その中でもITの仕事、特にソフトウエアの仕事は扱っているものが、外見以上に複雑で、外見以上に多様な知識を必要とするうえ、本質的に「不可視」である。だから、外見からは簡単に見えてしまう。しかし、その外見の下には、膨大で複雑なものがぎっしりと詰まっている。そのすべてを理解することは誰にでも不可能だ。

コンピュータもスマホも、誰もが簡単に使うようになったが、その裏側で動いている膨大なシステムは、全く外側からは見えない。だから、その外見だけで、それを作ることは簡単に見えてしまう。それを「素人」というのだ。

たとえば、5千円くらいの小さなコンピュータに入っているプログラムの行数は、そのOSだけで、2100万行弱である。これは年々増えており、OSの基本部分だけでなく、様々な機能を入れれば、その行数は、少なく見積もっても、おおよそ3千万行を下らない。しかし、スマホやPCを使っている人は、まさかその中にそれだけのプログラムが入っているとは思わないだろう。世界中のソフトウエア技術者が寄ってたかって作っているのだ。

しかし、3千万行のプログラムは実際に入っていて、動いている。だから、スマホやPCの便利な機能が使えるようになっているわけだ。しかし、これ、実際に現場でプログラムを書いている人には「常識」なんだけどね。

ちなみに、3千万行というと、1行のプログラムが5mmくらいのスペースを取るとして、そのプログラムリストは150kmに及ぶ。富士山の高さ40個ぶんになる。

 


対話型のプログラムでの「日本語訳」はこうする

人間と対話する形式のプログラミングのとき、人間に働きかけるメッセージが必要なときが多々あります。

英語の表現では、

〜の入力は空白ではいけません」とか「〜の入力は数字のみ受け付けます」

といういうのがあるわけですが、これを日本語で表現するときは

「〜を入力してください」、「〜は数字を入れてください」というようにします。

元の表現は、「自分の頭で考えてなんとかしてね」という言い方です。日本人のほとんどは「(小さなことまで)自分の頭で考え、自分が考えたことを自分の責任で実行する」ことが苦手なので、そのままの直訳では、その質問を投げかけられたほうは「戸惑う」のです。

「XXはだめです」→「ではどうしたらいいか(自分で考えて答えを出す)」→「(自分の責任で)実行する」

という思考回路が、米国人などにはあります。その思考回路を誘導するようにメッセージができています。しかし、日本人の多くの人はこういうメッセージを投げられても戸惑うばかりで、「なにを自分はしたらいいのか?」がわかりません。ですから、日本人にとって、「直訳」は「なぞかけ」のように見える。「じゃ、どうしたらいいんだ?」まで書かないと、自分がなにをすればいいかがわからないのです。だから、そういうメッセージは直訳せず、日本人の現状にあわせて、「自分はなにをすべきか」まで書かないといけないのです。つまり日本人のほとんどの人の思考回路にあわせると、こういうシステムからのメッセージの訳し方も変える必要があります。

つまり、

「パスワードは空白は使えません」

という元のメッセージは、

「パスワードを入れてください」

というように日本語訳します。

前者のメッセージでは

「空白のパスワードが使えないから、どうしたらいいか?」→「なにかパスワードを入れなければならない」→「なにかのパスワードを考えて入れる」

という思考回路になります。つまり「自分の頭で考える」思考回路が自然に動くことが前提のメッセージなのです。そのように頭が働かないと先に進みません。これは、そういう訓練が、普段からされている人に対するメッセージです。

後者は、

「パスワードを入れてください」

という「絶対の命令」で、言われないと、自分が何をしたらいいか、が自分で決めらない人に対するメッセージです。

そこに前記のような「ではどうしたらいいか」を自分で考える思考回路が働く余地はありません。自分の頭で物事を考える訓練がされていないことが多い日本人の場合「余地の無い命令」でないと「伝わらない」のです。

たかがプログラムのメッセージです。プログラムのメッセージを変えるのは簡単です。しかし、世の中の文化を変えるのはかなり大変です。だから、この場合は、プログラムのメッセージのほうを日本人にあわせて変えるのです。本当にそれが良いことであるかどうか、は別の問題です。しかし、プログラムを組む人間は、常に「文化の違い」を考えて、プログラムのメッセージを考えることは必要です。繰り返しますが、どちらがより望ましいか、は、別の問題です。

コミュニケーションというのは、文化です。文化が違えば、コミュニケーションのかたちも変わります。対話型のプログラムを組むときとか、英語のプログラムを日本語に直すときときなど、参考にしてください。