今の日本の産業は先進国の中で遅れているか?と聞かれれば、私の答えはYESです。「先進国」とは普通はある程度の大国であるべきだと考える人が多そうですが、「国のサイズは別にして」という条件を付けると、先進国の数が20から30位になりそうです。でもその中には、私の意見では、日本はいませんね。アメリカは見事にカムバックしましたね。別の言い方をすると、古い産業を放置して、新しい産業(主にIT, AI)が育ったからです。政府の施策がよかったからではありません。昔からアメリカ人はコンピューターを使った技術には、当然ハードウェアもソフトウェアも両方含めての話ですが、非常に明るかったです。ナチスドイツが効果的にユダヤ人を抽出できたのは、IBMが当時は強力な武器であったパンチカードシステムをナチスドイツに納品し続けていたからです。このパンチカードシステムは戦後の、ディジタル計算機に継承されました。
戦後しばらくの間は、コンピューターを動かす人は専門家で、専門家がmachine languageと呼ばれるアルファベットと16進数を使ったプログラムを書く必要がありました。人間が使う言語とは無縁のcodeでできています。入力装置、記憶装置、制御装置、演算装置、出力装置の5つのユニットからできています。これを考えついたのは、フォン・ノイマンというユダヤ系のアメリカ人天才数学者です。今でも同じ基本構造です。その後、IBMはmachine languageを知らなくてもプログラムを作れる、人間の言語に近い専用のプログラム言語を2つ開発しました。一つはCOBOL、もうひとつはFORTRANと名付けられました。FORTRANとはformula translationの短縮形です。これにより、専門度はかなり下がりました。COBOLに至っては、ほぼ日常言語で書かれていますが、会計計算専用です。つまり経理畑のアメリカ人がたいした訓練を受けずに使えるものでした。ただし、これは英語ができる人にとっての話。今でも広く使われています。ロケットの打ち上げなどに貢献するのはFORTRANの方でした。
私は大学でFORTRANを勉強しました。当時は紙のパンチカードにプログラムの1行だけ書きました。たしか教科書の最初の課題は、2.0 x 3.0の結果を印刷させよ、というものだったかと。こんな問題でも数行分のパンチカードが必要でした。大きなプログラムになると段ボールひと箱分にもなったそうです。嘘かほんとかは知りませんが、計算室まで箱に入れて運んでいる途中で学生が転んでパンチカードの順番がめちゃくちゃになったので、正しく並べ替えるのに丸1日かかったようなこともあったようです。
最初はコンピューターが原始的でしたので、ちゃんと動く1つプログラムの陰には、数個から数十個の没プログラムがあったような印象です。コンピューターは極めて厳格でしたので正しくないプログラムだと途中で暴走します。専門家がスイッチを切って、再起動させます。これだけで数分かかりました。頭の悪い学生が持ち込むバグだらけのプログラムをロードさせる度に暴走、再起動の繰り返しです。私は再起動係には絶対ならないぞ、と誓いました。心の平安を失いますので。(ちなみに、高校の数学を思い出すと2と2.0は違いますよね。コンピューターは整数を扱うのは苦手です。実数を好みます。というか授業では絶対に整数表示できない実数の例も教わりました。忘れましたが・・・)
そんなボンクラ学生の私にとって、生涯忘れることのなさそうなこと、それはflowchartというもの。日本語で「流れ図」なるもの。「流れない」の意味の「流れず」ではありません。FORTRANのすごいところは、流れ図をちゃんと描ければ、9割方プログラムは書けたようなものです。(たぶんCOBOLでも同様。)残りの1割のエネルギーでパンチカード入力をすればよろしい。大体プログラムの失敗はflowchartの不備です。不備はないはず、と3回チェックしても実際にコンピューターにカードを読み込ませると、暴走、再起動・・・。どこかに誤りがあった証拠といえました。すべての理工系の学生がコンピューター言語を学んだわけではありません。化学系、農学系の学生には選択しない人もたくさんいました。
明日に続きます。
戦後しばらくの間は、コンピューターを動かす人は専門家で、専門家がmachine languageと呼ばれるアルファベットと16進数を使ったプログラムを書く必要がありました。人間が使う言語とは無縁のcodeでできています。入力装置、記憶装置、制御装置、演算装置、出力装置の5つのユニットからできています。これを考えついたのは、フォン・ノイマンというユダヤ系のアメリカ人天才数学者です。今でも同じ基本構造です。その後、IBMはmachine languageを知らなくてもプログラムを作れる、人間の言語に近い専用のプログラム言語を2つ開発しました。一つはCOBOL、もうひとつはFORTRANと名付けられました。FORTRANとはformula translationの短縮形です。これにより、専門度はかなり下がりました。COBOLに至っては、ほぼ日常言語で書かれていますが、会計計算専用です。つまり経理畑のアメリカ人がたいした訓練を受けずに使えるものでした。ただし、これは英語ができる人にとっての話。今でも広く使われています。ロケットの打ち上げなどに貢献するのはFORTRANの方でした。
私は大学でFORTRANを勉強しました。当時は紙のパンチカードにプログラムの1行だけ書きました。たしか教科書の最初の課題は、2.0 x 3.0の結果を印刷させよ、というものだったかと。こんな問題でも数行分のパンチカードが必要でした。大きなプログラムになると段ボールひと箱分にもなったそうです。嘘かほんとかは知りませんが、計算室まで箱に入れて運んでいる途中で学生が転んでパンチカードの順番がめちゃくちゃになったので、正しく並べ替えるのに丸1日かかったようなこともあったようです。
最初はコンピューターが原始的でしたので、ちゃんと動く1つプログラムの陰には、数個から数十個の没プログラムがあったような印象です。コンピューターは極めて厳格でしたので正しくないプログラムだと途中で暴走します。専門家がスイッチを切って、再起動させます。これだけで数分かかりました。頭の悪い学生が持ち込むバグだらけのプログラムをロードさせる度に暴走、再起動の繰り返しです。私は再起動係には絶対ならないぞ、と誓いました。心の平安を失いますので。(ちなみに、高校の数学を思い出すと2と2.0は違いますよね。コンピューターは整数を扱うのは苦手です。実数を好みます。というか授業では絶対に整数表示できない実数の例も教わりました。忘れましたが・・・)
そんなボンクラ学生の私にとって、生涯忘れることのなさそうなこと、それはflowchartというもの。日本語で「流れ図」なるもの。「流れない」の意味の「流れず」ではありません。FORTRANのすごいところは、流れ図をちゃんと描ければ、9割方プログラムは書けたようなものです。(たぶんCOBOLでも同様。)残りの1割のエネルギーでパンチカード入力をすればよろしい。大体プログラムの失敗はflowchartの不備です。不備はないはず、と3回チェックしても実際にコンピューターにカードを読み込ませると、暴走、再起動・・・。どこかに誤りがあった証拠といえました。すべての理工系の学生がコンピューター言語を学んだわけではありません。化学系、農学系の学生には選択しない人もたくさんいました。
明日に続きます。