ハードとソフト

 ソフトウェアにハードウェアが追いつかない時代の方が面白かった。

 

 最初に買ったエプソンのHC20。

www.epson.jp

 プログラマブル電卓の親玉のようなマシンだった。

 CPUは8bitの6800互換、ROM32KB/RAM16KB、外部記憶はマイクロカセットのテープ、ディスプレイはモノクロ液晶で4行しか表示できなかったが、プリンタが付いていて、レシートのようなロール紙に印字できた。

 OSなんてものはなくて、ROMにモニタープログラムとBASICが入っていた。よくあれで、BASICが学べたなと思うが、とりあえずテープにデータを記録するだけのプログラムを書き上げた。

 勿論は日本語は使えないし、テープドライブのR/Wは遅く、たぶん記憶容量も貧弱だったと思うが、個人がキーボード越しに打ち込めるデータなんて、たかが知れており、気にはならなかった。むしろ、自分が書いたプログラムと操作に従って、テープが早送りされたり巻き戻されたり、プリントアウトされたりというのは見ていて面白かった。

 実務にも、少し使ってみたが、残念な事に業務効率化には結びつかなかった。プログラミングは初心者だったし、なにより操作していると、人が集まってきって仕事にならなかった。

 HC20が16βⅡになって、日本語が使えるようになった。テープの代わりにフロッピーディスクが使えるようになり、実用的な用途が見えてきた。オフィスオートメーションなんてコトバも普通に聞かれるようになった。

 知り合いから、外付けのハードディスクを安く譲ってもらった。定価40万が半値の20万。容量は20MB。GBではなくMBだ。フロッピーディスクに漢字フォントを入れて使っていた時代に、20MBとはいえハードディスクの威力は絶大だった。

 ハードウェアの進化を眺めているのは楽しかった。新しいデバイスが導入する事で、今まで出来なかった事が出来るようになる。進化は早かった。

 

 そんな頃に読んだビットかインタフェースかの記事の一説が記憶に残っている。どこかの大学の先生の文章だったと思うが、「ハードはどうでもいい。待っていればそのうちどうにでもなる。しかしソフトはそうはいかない。」というような内容だった。

 その時は、研究者としての立場から経費面も含めての話だと、深く考えなかったが、今になって思えば、そんな矮小な話ではない。デバイスはリプレースで済むが、ソフトは積み重ねだ。

 テープは過去のデバイスだが、テープデバイスのシークェンシャルファイルの考え方はコンソールやプリンターと共通で、その延長線上に現代のネット社会がある。

 ソフトウェアは具体的なデバイスを抽象化し、それを実装し、組み合わせてシステム化し、運用するプロセスだ。実装は具体的なデバイスに依存するが、抽象化されてしまえば、基本的にはテープもインターネットも変わらない。

 システム化のレベルで一対一ならコンソールだし、一対多ならクラサバ、多対多ならインターネットになる。

 考え方の転換で、現実のシステムの在り方が変わる。云ってみれば、ルールを少し変えれば、サッカーがラグビーやアメフトに変わるようなものだ。

 

 ニワトリが先か卵が先かで云えば、ソフトがハードに先行するべきだ。

 

 ソフトウェアの進化はハードウェアの進化に較べて地味だ。一見派手に見える成果も過去の成果の焼き直しである場合が多い。

 ハードウェアの進化に伴う新たなデバイスのドライバの開発とセキュリティ確保に大半の労力を奪われているのかもしれない。バザール型の開発が進む以上、仕方がない事なのかもしれない。

 1990年に開発が始まったGNU Hurdは、まだ正式版がリリースされていない。日本発のTRONBTRONは政治的理由で頓挫してしまったが、工業用の組み込みOSとしては一定の成果を上げており、その後も地道に活動は続けているようだ。残念ながら、情報は限られている。

 

  ソフトウェアのトップレベルは、総論的な「考え方」「捉え方」で、そこから段階的に具体化される。現実世界での具体的な動作が目的となるので、ソフトウェアはレトロスペクティブな構造になる。それはアプリでもOSでも変わらない。

 

 で、結局、何が云いたいかといえば、ハードウェアを入手するには、費用もかかるし、場所も取る。抽象化レベルでソフトウェアを弄り回すのであれば、費用も場所もかからない。ハードの入手は、実装レベルでの稼動が必要になった時に考えればよい。

 M.2対応のSSDとか16スレッドのCPUとか魅力的なハードウェアは多々あるが、使うあてがないのに導入しても仕方がない。

 つまり、ハードウェアはソフトウェアに追いつかないくらいの方が、夢があって楽しいという言い訳めいた結論になる。