2019-05-139171989年の「ネットワーク」というのは、パソコン通信のことだった。パソコン通信が提供するサービスは掲示板とチャットサービスなのだが、その提供方法は中央にあるホストサーバに対して、公衆回線(電話)を使って接続するというやり方だった。クライアントはパソコンなのだが、当時はPC-9800シリーズ全盛期で、他にもメーカーごとに特色のある色々なパソコンが発売されていた(そして相互に互換性がなかった)。パソコンにはモデムを接続し、ファクシミリのようにピーヒャララと音を立てながらデータをアナログ信号に変換してホストと通信していたのだ。このころのモデムは非常に遅くて、普及していた帯域が2,400bpsだった。最終的にモデムの帯域は38,400bpsぐらいにはなったと思うが、それはもっと後の話である。1988年~1989年ぐらいのパソコン通信のスピードは途方もなく遅かった。2,400bpsで掲示板を読むとどれほどのスピードかというと、1画面文の文字(80×25文字分)を表示するのにギリギリ目で読めるか読めないか、ぐらいなのだ。こんな環境だと、動画なんぞのやり取りなんてもちろん夢の話で、そもそも画像データですらめちゃくちゃ時間がかかってしまう。パソコンのメモリ、ディスク、描画性能すべてが小さかったこともあって、画像データそのものが小さかったにも関わらず、画像1枚をやり取りするのに5分も10分もかかってしまうのだ。プログラムのソースやバイナリのやり取りも同様である。通信速度がネックであらゆる事に時間がかかっていた。いう環境でもっとも重要な事は、データ圧縮技術だった。パソコン通信を始めるに当たっては、パソコンとモデムとターミナルエミュレータの準備はもちろんだが、圧縮ソフトをそろえることもまた重要だった。当時の圧縮ソフト界隈は非常に賑わっていて、さまざまなソフトが圧縮率と動作速度を競い合っていた。オープンソフトウェアの定義もまだ完成しておらず、ライセンスや特許の問題も未解決で、色々な問題が生じたり訴訟になったりしていた。企業開発のソフトと個人プログラマのアプリが鎬を削りあっていた。よい圧縮ソフトを使ってデータを少しでも小さくしないと、電話代が莫大になって大変だからである。いう自分も月の電話代が6万円を超えてしまい、お米だけで何日も過ごしたりしたものだった。いう時代にあって憧れのプログラミングの題材といえば圧縮ソフトということになる。LHarcのようなプログラムが作れたら最高だ。圧縮技術というのは結構難しく、ちょっとかじったぐらいですぐに作れるほど甘くはない。いうフロントエンドを作ってしまおう」というネタだった。この話をプログラミングの師匠にしてみたところ、さっそく「だめだな」というお言葉をいただいた。情報理論をまじめに勉強していればすぐに分かるが、現代の圧縮技術というのは、冗長な部分をなくすことによって達成されている。したがってAというソフトが圧縮した後のファイルをBというソフトに渡したとしても、それはすでに冗長部分がなくなってしまっていて、圧縮の余地ははほとんどない。世の中にはたくさんの種類の圧縮ソフトがあるが、基本原理はみな同じなので、この方法ではより小さなファイルを得ることはできないのだ......。それにだね、と師匠は続けた。仮に圧縮を繰り返すことでどんどんファイルが小さくなるとしよう。最後には1バイトにまで小さくできるとする。1バイトの情報と言えば256通りの組み合わせしか表現できない。圧縮というのはそういう風には働かないんだよ。