20年以上昔の話.
その頃は,大学や会社でするプログラミングは家ではできなかった.コンプライアンス規定でソースコードを家に持ち帰れない? いやそんなことじゃない,というか「コンプライアンス」なんて日本語は,その頃は存在しなかった.
もちろん「パソコン」は当時もあったし,そこではBASICもTurbo PascalもオモチャのようなCコンパイラも,もちろんアセンブラも使えていた.でもなぜか大学の研究室や会社でのプログラミングはUNIX上でCやLISPやその他諸々を使ってやるもので,個人のパソコンでのプログラミングとの間には,大きな隔たりがあった.
UNIXマシンは大学や会社にしかなかった.ネットワーク? モデムは確かにあった.だが(以下略).
とにかく,プログラミングができるのは大学や会社のVT-100コンパチ端末かワークステーションを使っているときだけ.じゃあどうするかというと,その日の最後,帰る直前に必要な部分のソースコードをプリントアウトして持って帰る.プリンタはラインプリンタだったりレーザープリンタだったり.
そして家に帰るとそのプリントアウトを見ながらデバッグする.修正したコードはその紙に書き込む.もちろん手書き.紙上デバッグ.家で新しいコードを書き始めるときは,まっさらの紙にプログラムを手書きで書いていく.紙上プログラミング.
次の日,デバッグ済の紙や新しいコードを書いた紙を持って行き,それを見ながら,キーボードで紙のコードを入力していく.やったデバッグ完了!
まっさらの紙に書かれた新しいコードは,新規ファイルに入力し,そしてコンパイル(make)する.たまに一発でコンパイルが通ったりする(もちろん一発で通らないときの方が多い.紙上プログラミングの間違いだったり,打ち込むときの入力ミスだったり).さらにたまに,コンパイルしたコードが一発で思い通り動いたりする.そういう時は,ひょっとして自分は才能あるんじゃないかと思ったりする(←勘違い).
若い人どころか今や中年の人にとっても何を言ってるのか分らねーと思うが,要するに,紙とペンでプログラミングをしていた,という話.
————
友人達のNPOが「ビスケット塾」という表現や創造や論理やプログラミングを教える活動を始めた.そこで使われているのがViscuitというビジュアル・プログラミング言語.
塾でレッスンをうける子供たちが,ビジュアル・プログラミング言語の「プログラム」の「設計図」を紙に描いている,その様子を見ていたら,自分が20年以上前にしていた本物の紙とペンでのプログラミングを思い出した.
omakeで継続監視ビルドも,継続的インテグレーションも素敵だ.でも,寝る前にプリンタ用紙をもう一度見ながら,このプログラムで動くかなー,と思う気持ち.それも充分に素敵なものだったと思う訳だ.
(この文章は,お分かりかとは思いますが,よしおかさんの「我が青春の東急東横線渋谷駅改札。」にも一部触発されております,が,あの勢いには到底及びません……)