幼少期のコンピューティング
(susam.net)- 幼少期のコンピューティングは、1992年に8歳で転校した学校のコンピュータ室から始まり、小さな工業都市の学校にコンピュータ室があること自体が特別だった
- コンピュータ室のIBM PC互換機はシリカ工場から譲り受けた古いマシンで、月に約2時間だけ5¼インチフロッピーでMS-DOSとLogoを実行できた
- ハードディスクがなく、保存領域も貴重だったため、作業は電源を切ると消えてしまい、プログラムを残すことはノートに手で書き写すことに近かった
- 実際のコンピュータ時間が少なかったため、Logoプログラミングの大半は家でペンと方眼紙を使って行われ、友人たちはコードを書き写して改変した後、再入力していた
- Moon Bugs、Space Invaders、Digger、Grand Prix Circuitのようなゲームは、いつか自分で作りたいという気持ちを残し、30年後になっても音や匂いまで鮮明に記憶に残っている
コンピュータ室から始まった幼少期のコンピューティング
- Susam Palの幼少期のコンピューティングは、1992年に8歳で転校した学校のコンピュータ室から始まり、小さな工業都市の学校にコンピュータ室があったこと自体が当時は特別だった
- コンピュータ室のマシンは、町の中心だったシリカ工場から譲り受けた古いIBM PC互換機で、使えるのは月に約2時間だけだった
- コンピュータ室に入る前には靴を脱がなければならず、教師は高価な機械をほこりのない状態に保つ必要があると説明した
- ほとんどのコンピュータはモノクロCRTモニターを備えており、ハードディスクはなく、RAMも数百KB程度しかなかった
- 毎回5¼インチフロッピーディスクでMS-DOSをメモリに読み込んだあと、別のディスクで
LOGO.COMを実行し、小さなLogoプログラムを書いてタートルを動かしていた - ハードディスクがなく、保存領域も貴重だったため、作業は保存されず、コンピュータの電源を切るとすべて消えてしまった
- プログラムを残す方法は、コードをノートに手で書き写すことであり、初期のLogoプログラミングに関する別の記録は FD 100 に残されている
紙の上のプログラミングとゲームの記憶
- 実際にコンピュータを使える時間があまりに少なかったため、Logoプログラミングの大半は家でペンと紙を使って行われ、方眼紙に結果をなぞってプログラムを「テスト」していた
- こうして準備したプログラムは、コンピュータ室で約30分だけ実際に実行できた
- 記憶に残っているLogoプログラムは、家の形の輪郭に沿って動くアニメーションの点線を描くもので、友人たちはコードを書き写し、細部を変えて自分なりのバリエーションを作っていた
- このプログラムは、実質的に最初の「自由なオープンソースソフトウェア」のように受け止められ、「好きなようにしていいけれど、面白い修正をしたら見せてほしい」という非公式ライセンスが付いていた
- 配布方法は完全にアナログで、友人たちは鉛筆でコードをノートに写し、それをコンピュータ室で再入力していた
- Logoの課題を無事に終えると、教師はコンピュータゲームを遊ばせてくれたが、最初に遊んだゲームはMoon Bugsだった
- 好きだったゲームにはSpace Invaders、Bricks、Grand Prix Circuitがあった
- Space Invadersは自分でもゲームを作ってみたいと思わせたが、当時知っていたGW-BASICと限られたコンピュータ利用時間だけでは、単純なテキスト入出力プログラムより複雑なものを作るのは難しかった
- 2022年になって大人になってからようやく、Invaders風のゲーム Andromeda Invaders を作り、5秒待つと自動でプレイされるモードも含めた
- Windmill Software製のDiggerは専用のブートディスクで提供され、先にDOSディスクを入れる手順なしでそのまま起動して実行できた
- Accolade Inc.のGrand Prix Circuitは
GPEGAコマンドで実行し、オープニング音楽を待たせるゲームだった - LogoやGW-BASICで基本的な2次元図形しか描いていなかった時代には、キーボード入力で探索できる3次元の仮想世界の投影をコンピュータプログラムが作り出すという事実が驚きだった
- 30年以上たった今でも、コンピュータ室の機械音、POSTのビープ音、閉め切った空調室の独特の匂いが鮮明に残っている
- 思いがけない場所で似た匂いに出会うと、幼少期のコンピューティングの最初の記憶へと引き戻され、その体験は驚きと探求に満ちた、最も強く鮮やかな記憶として残っている
1件のコメント
Hacker Newsのコメント
1985年にC64を買った。今ではエミュレータやYouTubeでグラフィックやサウンドを見返せるけれど、電源を入れた直後にケースから漂ってきた温まった回路基板の匂いをいつも思い出す。
一緒についてきたカセットプレーヤーはテープヘッドの調整がずれていて、インターネットのない時代だったので、なぜほとんどのゲームがロードできないのか誰にも分からなかった。それでもプログラムの保存と読み込みはできたので、ユーザーマニュアルや図書館で見つけたプログラミング本のゲームリストを見ながらBASICプログラムを打ち込み、自分のカセットに保存し始めた。
マニュアルにはBASICチュートリアルだけでなく、グラフィック、スプライト、サウンドのようなハードウェア機能も載っていて、特定のアドレスに特定の数値を
POKEすればスプライトを画面に表示して動かせることを知った。カセットプレーヤーを直してバンドルゲームをロードできるようになったころには、もうすっかりプログラミングにのめり込んでいて、それらのゲームも結局は誰かが座って作ったものなのだから自分にも学べるはずだと感じた。その後もずっとプログラミングを続けているLOAD "*",8,1のようなちょっとしたプログラミングを覚える必要があったそれでもApple IIやSinclair、Ti99のような競合機と比べれば、機能の割にかなり安かったと思う
学校にはWindows 3.1が入った古いコンピュータがあり、タッチタイピング用プログラムしか使えなかった。
最初の家庭用コンピュータは1995年に買ったもので、記憶が正しければ166MHz Pentium / 16MB RAM / Windows 95で、当時の価格は3,500〜4,000ドルくらいだった。3年後、Half-Lifeの発売直後にコピーを手に入れたが、専用グラフィックカード付きのそのマシンでもギリギリ動く程度だった。あの時代にゲーマーとして最新グラフィックを追いかけるのは本当に高くついた。
その前には電動タイプライターがあり、コンピュータの主な用途も文書作成や仕事だった。最初のプログラミング体験はHTMLファイルの編集で、図書館でプログラミング本を探してみたものの、人口3,000人の田舎だったのでPascalかDelphiの本が一冊あるだけだった。
近所に「コンピュータがものすごく得意だ」という数歳年上の天才少年がいると聞いて会いに行ったところ、部屋の棚には大きな**Borland C++**の箱があり、自作中の3DフライトシミュレータのクローンやDoomっぽいものを見せてくれて圧倒された。彼はドットコムブームの時期に大成功し、大学には行かずそのまま就職した。
数年後に高校へ入ったとき、半ば引退した開発者が町に引っ越してきて学校と協力し、Javaプログラミングの授業を開いてくれた。彼は素晴らしい先生で、そのときコンピュータの仕事をしたいと決心した
一つ目は、1990年代初頭に父が自営業の出版業を手伝うためPCを買い、当時のPCらしくQBasicやGORILLA.BASのようなゲームソースコードが最初から入っていて、ひとりで過ごす時間の多かった内向的な子どもだった自分が思う存分いじれたこと。
二つ目は、比較的予算のあるコンピュータ室ととても開かれた考え方のコンピュータ教師がいる高校に通えたこと。信頼できると分かれば、ほとんど何でもやらせてくれた。学校は全体としてはMac中心だったが、自分は高校時代にMicrosoft系が好きで、卒業するころには学校新聞向けのWindows NTファイル・Webサーバーを立てて運用できるようになっていた。別の友人はLinuxに夢中で、RedHatを使って製図室に似たようなものを導入する許可をもらっていた。
気質と機会がうまく噛み合い、そのままその後25年間ずっと技術分野で働くことになった。
今心配なのは、あまりに多くの技術が閉じられていることだ。今ではああいう自由を与えてくれる学校は珍しいだろうし、スマートフォンにはIDEが最初から入っていないし、「承認されていない」アプリのインストールでさえ攻撃の対象になっている。
子どもたちのためにも、業界、ツール、OSはもっと開かれているべきだ。触って直せることで、いちばん意欲のある子どもたちは学ぶ。どこかのヘッジファンドの利回りを最大化するために何もかも閉じてしまったせいで、優れた才能が育たなくなっている。アメリカの金融化は大きな過ちだった
もちろん、思春期だった当時の自分にとって笑えたという意味だけど
9歳ごろ、RPG Makerで突然変数を理解した瞬間を覚えている。それ以前にもHTMLのようなものはいじっていたが、変数を理解したことで世界が開け、VB6のプログラムも作れるようになり、すべてが突然つながった。
仕組みの基礎を一度理解すると、子どもやティーンエイジャーはその後とても速く伸びやすいと感じる。自分の子どもにもできるだけ早い時期にコンピューティングの基礎を理解させてあげたいし、そうすれば世界がどうつながっているのか分かるようになると思う
もちろん後になってまた悟りを開いたので、今はクラスを避けている
1980年代半ばの Tandy 1000 SX がきっかけで、自分の人生全体が技術中心になった。
正確に何歳だったかは覚えていないが、一桁の年齢のころに父が家に持ち帰ってきたもので、父は地域小売チェーンの初期のコンピュータベースPOSシステムとオフィスのメインフレームを管理していた。
筆記体の書き方を覚えるより先に、ゲームを動かすためにサウンドカードやグラフィックカードの IRQ割り込み を設定するバッチファイルの作り方を覚え、8〜9歳のころにはコンピュータキャンプでBASICを使ったゲームの作り方を学んだ。TandyNetで初めてオンラインを体験し、90年代半ばにはHTML 0.9で最初のWebサイトを作った。慌ただしい時代だったが、それが今では約30年になるITキャリアにつながっている。
最近のコンピュータに対する大きな不満は、コーディングを「学ぶ」ことがどんどん難しくなっている点だ。Commodoreのような機械では、インターフェース自体がプログラミング言語であり、ある意味では使うためにも多少のプログラミングを学ぶ必要があった。iOSデバイスは長い間ローカル開発ができなかったし、初期よりは多少ましになったとはいえ、今でもJITは許可されていない。
自分にとっては ソースを表示 の時代が出発点だった。2001年ごろ、GeocitiesのページのHTMLをコピーしてNotepadで修正していた。プログラミング言語が何なのかは分からなかったが、背景色を変えたり
marqueeを追加したりする方法は知っていた。保存して、Alt-Tabで切り替えて、更新する。その即時のフィードバックだけで夢中になるには十分だった。
においの話には強く共感する。大学教授の子どもだったので、大学の計算機室にある程度出入りできたのだが、教授室のにおいはプラスチックとほこり、そして少し焦げたゴムのようなにおいだった。
そのにおいは自分にとってひとつの世界であり、すばらしいゲームだけでなく、その機械を扱える大人たちの 魔法のような世界 に近づけることを意味していた。
12〜13歳のころ、父が平方根の方程式を計算するTurbo Pascalプログラムの出力を渡してきて、入力して実行してみろと言った。それが自分のプログラミング歴の始まりだった。
子どものころにコンピュータに触れる幸運はなかったが、こういう話はとりわけ 音 のせいで郷愁を誘う。限られたリソースの中でも、あの時代の人たちは良いものを作り上げていた。
ゲームを動かすために MS-DOSの起動設定 を最適化して空きメモリを確保していたあの技術を覚えている人はいるだろうか。
gorillas.basをのぞき込んでいたことも覚えている。自分にとっては、たぶんそれがもっと学び、実験してみたいと思うきっかけだった。息子にも似たような創造的探究を勧めたいが、今の世代がゲームや動画に引っ張られていく環境の中で、それをどう実現できるのか分からない。
DEVICE(HIGH)の行をいじり、FILES=やBUFFERS=を調整し、MEMMAKER.EXEを何度も走らせれば何か変わるのではないかと期待していた時間は、認めたくないほど長かった。でも本当の核心は、メーカーが望むことではなく、自分がやりたいことを機械にやらせること にあった。今の子どもに勧めるなら、ちゃんとしたモッディングAPIがあるゲーム、たとえばLuaのようなスクリプトが使えて、マルチプレイで作ったものを友達に見せられるようなものを探すと思う。
その次は、Luaを使い続けながらゲーム全体を制御できる LÖVE のようなパッケージに移り、実際に何かを作るために必要なことを探り、扱えるようにしてあげるのがよさそうだ。もっと低レベルな部分に興味を示すなら、さらに深く掘り下げるのを手伝うだろうが、出発点としてはモッディングとスクリプティングがいちばん良さそうに思える。
Himem.sysだったと思う。config.sys、autoexec.bat、EMS、HIGHMEM、初期のSound Blasterドライバ、マウスドライバ、ネットワークドライバはどれも悩みの種だった。いちばん動かすのが難しかったのは Quarantine だった気がするが、間違いなく最高のゲームのひとつでもあった。あの時代としては想像力がすごく、オーストラリア産のゲームで、後に有名になるバンドの音楽も入っていた。
https://www.youtube.com/watch?v=QwO8XWbB1Pk&list=PLA5hK1g6CN... https://www.playdosgames.com/play/quarantine
自分も子どものころからコンピュータを使い始めて好きだったし、Nintendoも持っていたが、最近の 反スクリーンの風潮 には複雑な思いがある。
息子はまだとても小さく、妻はスクリーンをまったく使わせたくないと思っている。TikTokやFacebookを使わせたいわけではないが、Apple IIを買うか、Raspberry Piのエミュレータを用意して、オンラインではなかった昔の小さなゲームを一緒にやってみようかと考えている。
頑なな「スクリーン禁止」という考え方は、子どものウェルビーイング分野の非技術系リーダーたちが握っている大ざっぱなレバーのようなものに見えるし、その背景は理解できる。
でも、幼いころに技術に触れて自由に試せたおかげで生計を立てている人間としては、もっとバランスの取れたアプローチが見える。インターネットから切り離した Linuxマシン を用意して、子どもたちが好きなように触れるようにしてもいい。WindowsはXP時代以降かなり進歩したが、完全に間違った方向へ進んだと思っている。
こうすれば、Big Techの心理的な反復ループや、YouTubeのけばけばしいドーパミン装置にはまり込まずに済むし、実際のところ「スクリーン禁止」の動機もそこにあるのだと思う。適切に管理された接触は不可欠だ。
当時のグラフィックプログラミングの良かった点は、画面に何かを描くと、プログラムが消すまでそのまま残っていたことだ
そのおかげで、すばらしいグラフィックを簡単に作れた。たとえば円の点を計算して1つずつ打っていくと、画面には円が描かれていく様子がそのまま見えていた
「現代的」なグラフィックライブラリは、おそらくSDLも含めて、毎フレーム画面全体を描き直すようになっていて、こうしたやり方を難しくした。同じ効果を出すには、プログラムが以前に描いたすべての点を覚えておかなければならない
昔の作業フローはグラフィックプログラミングを本当に楽しいものにしていたが、現代の高速レンダリングパイプラインは退屈で面白みに欠ける。そういうものが1つずつコンピューティングの楽しさを吸い取っていった
80年代初頭にIBM PCが登場したとき、HerculesのグラフィックカードはCGAより優れた驚くべき代物だった。父の友人の家でそれを使って円のようなものを描いてみたら、そのコンピュータではグラフィックがそのまま保持されていた。画面の消し方を見つけなければならなかったが、自分のコンピュータにはHerculesカードがなかったので保持されなかった。今まで何が起きていたのか分からなかったが、ようやく理解できた