昔のコンピュータは何でも見えた私は、学生だった1963年に、あるコンピュータメーカーに夏季実習に行きました。そこでは、ちょうどコンピュータの試作機が完成したところで、動作の安定性を確認するため、できるだけ長時間かかるプログラムを作ってほしいと頼まれました。そのコンピュータは、完成したといってもCPUにタイプライタと紙テープの入出力装置が接続されているだけで、ソフトウェアはまだ何もありませんでした。プログラムを実行するには、命令語を8進数で書いて紙テープにパンチし、その紙テープをメモリに読み込ませて実行させるのです。そのコンピュータには数字表示管が付いていて、実行中の命令の番地が表示されました。下位の桁はとても読み取れませんでしたが、上位の桁は読み取れ、プログラムがどの辺を実行中かが分かりました。その後、このように実行中の命令語の番地を表示するコンピュータはなくなりました。プログラムで使われる番地とメモリの番地が対応しなくなり、表示する意味があまりなくなったためです。当時はアセンブラ言語でプログラムを書くのが一般的でした。そのため、プログラムを書くには命令語を覚える必要があり、どのコンピュータにも分厚い命令語の説明書が付いていました。その後、Fortran、COBOLなどの高級言語が使われるようになり、命令語の知識は不要になりました。高級言語を使うと最終的にどういう命令語に展開されるのか分からず、コンピュータの動作の詳細がつかめなくなりました。私はその後、1964年に日立製作所に入社し、コンピュータの開発に従事しました。当時は設計自動化の専門部署がまだなかったので、設計のデータ処理を自分達で行いました。磁気ディスクがまだなく、データはすべて磁気テープに入っていました。磁気テープに入った大量のデータをソートする(指定した順序に並べ替える)には大型計算機で何時間もかかりました。慣れると、磁気テープの動きを見ていれば、だいたいどこまで進んだか、後どれくらいかかりそうかが分かるようになりました。その後、外部記憶装置が磁気ディスクに変わって機器の動きが見えなくなり、こういうことは不可能になりました。物理的世界の隠蔽が進むこのように、技術の進歩に伴って、今まで見えていたものが見えなくなっていきました。これとは別に、物理的な世界を意図的に隠蔽してしまう動きも起きました。その1つは、1960年代後半に始まった「仮想メモリ(バーチャル・メモリ)」という、ユーザーが使う論理的なメモリを物理的なメモリから切り離してしまうものです。ユーザーが使うプログラムやデータはディスクの中に作られた仮想的なメモリに置かれ、プログラムの実行に必要な部分だけ、4キロバイトなどのページ単位でメモリに読み込まれるのです。論理メモリ内のアドレスは物理的なメモリの番地に対応せず、メモリの読み書きのたびにアドレスを変換します。これによって、プログラマはメモリ容量の制約を気にすることなくプログラムが書けるようになりました。1つのプログラムが、メモリ容量の大きいコンピュータでも小さいコンピュータでも同じように実行できるようになりました。この仮想メモリによって、物理的なメモリはユーザーから見えなくなりました。「仮想マシン(バーチャル・マシン)」という技術も1960年代後半に生まれました。これは1台の物理的なコンピュータを複数の論理的なコンピュータに見せかけるものです。これを使って、タイム・シェアリング・システム(TSS)と呼ばれるものが生まれました。多数のユーザーが1台のコンピュータを時分割で使うのですが、ユーザーごとに仮想マシンが割り当てられるので、ユーザーにはあたかも1台のコンピュータを専有しているように見えるのです。TSSのユーザーには仮想マシンを動かしている実際のコンピュータは見えません。このように「仮想」という言葉が使われなくても、論理的な世界と物理的な世界を切り離し、物理的な世界の機種ごとの違いや技術の進歩による変化をユーザーから隠蔽してしまう技術が多数現れました。磁気ディスクは、技術の進歩によって、ディスクの枚数、ディスク1枚当たりのトラック数、1トラックの容量などが変化しました。これらが変わるたびにアプリケーション・プログラム(AP)を変更していては大変です。そのため、これらの数値に影響されない「ファイルシステム」という論理仕様が定められ、APはこれを使うようになりました。現在のWindows系のオペレーティング・システム(OS)ではNTFSというファイルシステムが使われています。通信の世界も、インターネットが普及する前は非常に厄介で、電話回線を使ったデータ通信の設定には通信専用のソフトを使って複雑な作業をしていました。インターネットではTCP/IPという標準規格が全世界で使われ、それを扱うソフトはOSに組み込まれるようになりました。実際に使われる通信回線には、LAN、無線LAN、携帯電話回線などいろいろありますが、APはTCP/IPだけ扱えばよくなりました。物理的な回線はAPからは見えなくなったのです。何も見えなくなった最近は「クラウド」が流行っています。クラウドのユーザーは自前でコンピュータを持たず、クラウド事業者のサーバを、インターネットを介して使います。ユーザーがサービスとして提供を受けるのは機能や性能、信頼性などで、それを実現するために使われる機器は一般的に知らされません。データセンターが日本、米国、アジアの国などのどこにあるのか、一般的に分かりません。「クラウド(cloud)」は英語の「雲」で、すべては雲の彼方の見えないところで処理されるのです。クラウドは電力や水道のようなユーティリティ・サービスの1つで、われわれが発電所の場所や発電機の種類、貯水池の場所などを知らないのと同じです。このように、ITの歴史は「見えなくなる」歴史でした。したがって、スーパーコンピュータからスマートフォンに至るまで、特定の製品が我が物顔に前面にしゃしゃり出るのはこういう流れから外れているわけです。メールでご連絡します。