私は、10代は音楽に呆けて、興味がなかったのですが、コンピュータの学科に行き、古いですが学生時代に第二種情報処理技術者試験に合格して、富士通の社会人2年目で第1種に合格しました。COBOL、Fortran、C言語などの高級言語から汎用機のアセンブリ言語まで、プログラミングが大の得意でした。ただ、オブジェクト指向で挫折しましたが。このような学習から、今はすっかり遠ざかっていますが、コンピュータの基礎を理解しているつもりです。
少し前に映画『イミテーション・ゲーム/エニグマと天才数学者の秘密』がありました。今日のコンピュータの基礎を作ったアラン・チューリングの話です。第二次世界大戦のときに、ドイツ軍の複雑な暗号を心血注いで開発したマシンで解いて、英国を勝利に導いたというストーリです。なかなか面白い映画でした。
チューリングの開発したマシンを可能な範囲で実現・具体化したものが「ノイマン型コンピュータ」であり、現在のコンピュータの大半はノイマン型コンピュータと言われています。
このノイマンについても、最近『フォン・ノイマンの哲学/人間のフリをした悪魔』(高橋昌一郎 講談社現代新書)という本が話題です。ノイマンはコンピュータ科学だけでなく、数学、経済学においても天才であり、オーストリア・ハンガリーから亡命した後、アメリカでは原子爆弾プロジェクトの「マンハッタン計画」にも関わっており、なんと「京都への原爆投下」を主張していたというから驚きです。
最初のノイマン型コンピュータは1949年に開発された「EDVAC(エドバック)」ですが、実はEDVACが登場した時代から、基本のコンピュータのアーキテクチャは大きく変わっていないのです。もちろん、並列処理などを取り入れハードウェアは速く、小さく、大容量にはなっており、ソフトウェアは日々進化しています。ただ、基本、ディスプレイやハードディスク、ネットワーク機器などの周辺機器から入力された命令をプロセッサで処理して、また、周辺機器に出力を命令する、この仕組みが変わっていません。ソフトウェアをみても、例えば、TCP/IPのソケット通信が、リモートプロシジャーコールになり、それがXML Webサービスに進化して、そして、今日のSaaSがあります。流行の機械学習だって、ある意味、データから、統計やデータマイニングを使った、逆(自動)プログラミングです。
要するに、コンピュータの基礎を知ってしまえば、今の姿を正しくとらえることができるのです。デジタルが花盛りですが、「デジタル」とは「人、モノ、ビジネスのインテリジェントな接続」と定義できます。ほとんどのデジタルプロジェクトは、この定義に当てはまります。過去をみても、ビッグデータ、IoTなどが流行ってきましたが本質は変わりません。同じように、デジタル=難しいなどと考えなくてもすみます。