見出し画像

ハッピー ハッキング ライフ

前回まで2回、MS-DOSの通信環境 Program of the air の技術的な内容について書きました。生成AIを使うことで、ソースコードを短時間に解読できるようになったというのが大きいです。本当は本一冊分の情報量なので、2回の記事では無理もありましたが。

書きながら、引っかかっていたことがあります。あれはいったい、何がそんなに面白かったんだろう、ということです。友人である玉城絵美さんの言葉を借りるなら、ハッピー ハッキング ライフ、ということになるのかもしれません。


あり合わせで作っていた

Air Virtual Machine(AirVM)は、コンピューターのハードウェアを直接制御するような非常にローレベルな部分から、それをラッピングするミドルレイヤー、仮想記憶やEMSメモリーを利用したページスワッピングなどの仕組みまでを積み上げて、最上位に1970年代のPascal Pコードをベースにしたバイトコードの仮想マシンを載せる、という作りでした。このレイヤー構造にすることによって、PC-9801だけではなく、当時登場しつつあったIBM PCの「DOS/V」に対する互換性を持たせることができました。もともと通信言語「CUE」をMacやUnixに移植してほしいという要望があったので、仮想化することを思いついたのです。

Air C Compiler のほうは、また全く違う技術的な要件でした。当時登場しつつあったオブジェクト指向の考え方をC言語に取り入れて、なおかつキーボード入力やタイマー、通信による入出力といったリアルタイムのインタラクションに対して、アプリの挙動を書きやすくする機能や制御構文を導入する。ほかにも文字列処理を強化したり、正規表現の扱いをネイティブレベルで対応したり、あるいは、OSやマシン本体へのアクセスを行うネイティブコールを仮想コードと透過的に呼び出せるような仕組みを用意しました。

考えてみれば、これらの仮想マシンにしてもコンパイラーにしてもそうですが、情報科学の教科書であったり、MINIXのような当時登場しつつあったオペレーティングシステムの知見であったり、あるいはパソコン通信を通して得られたアイデアや、他のソフトウェアの作り、あるいはMicrosoft Cの出力するコードを逆アセンブルして解読したりといった、泥臭いパッチワークのような、この連載でいうところの「ブリコラージュ」のような実践の成果だったともいえます。


世界はもっと良くなるはずだった

そのモチベーションははっきりしていて、電話代の節約もそうですが、当時一般的だったVT100ターミナルエミュレーターではなく、それを脱構築して、パソコン通信というものの使い方を全く違う体験に作り変えたいというUI/UX側の要請もあったからです。

コンピューターに詳しくない人でも自由に通信をできるようにしたい、子供からお年寄りまで老若男女を問わず使えるような通信ソフトを作りたい、そうすることによって世界はもっと良くなる。そういう願いや希望のようなものがあったのだと思います。

air craft を作っている時に、あるユーザーさんからこんな要望を言われました。片手しか使えないので、操作を片手だけで完結できるようにできないかと。また、別の方からは色の見分けが難しいので、できれば文字に緑は使わないで欲しいと。作っている僕は思いもしませんでしたが、本当に色々な方に使っていただいていて、少しの工夫でその方々の生活が良くなると気づかされました。バリアフリーの走りの頃です。僕自身もインドア派の人間なので、よりよい通信環境が自分の人生を変える。それと同時に、世界を少しだけ良くするかもしれないという実感がありました。


カスタムバイクを作っていた

MS-DOS上のこのプログラムは、OSやハードウェアを直接制御して、それらの機能を拡張するような働きをしていました。コンピューター全体を自分のものとして取り扱っていたのです。

これは、昔のオートバイをいじることに似ています。タイヤやハンドル、マフラーを変えるだけではなく、キャブレターのセッティングを詰めたり、スプロケットの歯数を変えたり、サスペンションを固くしたりして、自分の乗り方に合わせていく。中がどうなっているか全部見えていて、工具さえあれば手が届く。そうやって分解して自分好みに組み直したものを、大勢の人と共有することが出来たとも言えます。

自由自在にコンピューターを操れる、そんなプログラマーはハッカーと呼ばれていました。

余談ですが、この言葉はその後、まったく違う顔を持つようになります。先日、古くからの友人に勧められて、ブルース・スターリングの『ハッカーを追え!』を買いました。カバー写真の本ですが、まだ読んでいません。僕がPC-9801の中を覗いていたのとほとんど同じ頃、海の向こうでは同じ言葉が令状と一緒に使われるようになっていた、その顛末を追ったノンフィクション作品です。その話は、いずれ別の回に。


ただ、自由だったわけではない

あの頃は制約なくすべての機能にアクセスできた、自由だった、と書こうとしたのですが、前の記事と矛盾しているようで少し躊躇しました。そんなわけがないのです。

640キロバイト。8086のセグメント境界。フロッピーディスクも現役。シングルタスクのOSモドキ。前の2回に書いたことは、ほとんど全部が制約との戦いの記録でした。

自由だったのではありません。制約が、目に見えるところにあった。手で触れるところにあった。だから戦えた。それだけのことだったのだと思います。

第3回で、電話代が高すぎたからプログラミング言語を作った、という話を書きました。あれと同じことです。制約がなければ、たぶん何も作っていません。


ボンネットを開かせない車

現在のPCやMac、スマートフォンのOSは極めて洗練されていて、誰でもある一定以上のレベルのアプリを作ることができます。ハードウェアも進化していて、処理能力やメモリーは当時の1万倍以上です。

けれど制約がなくなったわけではなく、見えないところ、触れないところに移された。MS-DOSの環境がカスタムバイクを作っていたというものであるならば、現在のスマートフォンやMac、PC向けのソフトウェア開発や利用体験は、「レクサス」に乗り換えたようなもの。ただしボンネットは開かせない。そんな風に僕には思えます。体験としてはよくできているのですが、誰が作っても似たようなものになってしまう。

かつて広がっていたのは、すべてが手作りで何も材料がない中、ただ情熱だけでプログラミングをしていた大海でした。どうやったら漕ぎ出せるんだろうということを、ボートを作るところから始める必要があったのです。いうなれば、ブルーオーシャンに一人で漕ぎ出すような決心です。なにが起こるか分からない。

ただ、これを「昔はよかった」で終わらせるつもりはありません。制約の場所が移動しただけなのだとしたら、いま二十歳の人の目の前にも、僕には見えていない制約と、その向こうの海があるはずです。生成AIがあろうと、海が消えたわけではなく、場所が変わっただけなのだと思います。


そして、生成AI

この記事の前の2回で35年前のソースコードを読み解いてくれたのは、その生成AIでした。似たようなものを割と早く作れてしまう、まさにその道具です。制約を溶かす側の道具に助けられて、制約と戦っていた頃の話を書いている。

ただ、僕自身は自分の身体と感覚で、人と交わりながら、学んだことをブリコラージュのように実践して作っていく、あの体験自体が自分の人生にとって貴重な財産となっています。だからこそ、今もソフトウェアを作り続けていられるのかもしれません。それはとても幸せな経験であり実践でした。

ハッピー ハッキング ライフ。この言葉を作った玉城絵美さんは、人の身体の感覚そのものを研究の対象にしている人です。その言葉を、僕も地で行っていたような気がしています。

いいなと思ったら応援しよう!