プログラミングしようぜ!

 
 みんなもっとプログラミングしようぜ!
 
 俺がガキの頃,パソコンは「マイコン」なんて呼ばれてな。ソフトなんて少なくて高くてカセットテープで,MSXのROMを挿すだけってのは斬新でな。
 基本的に「マイコン」ユーザは,プログラマーだったんだ。
 だってソフトがねーんだもん。作らなきゃ仕方ないんだよ。
 月間マイコンポプコム,PIO,忘れちゃならねぇマイコンベーシックマガジン。プログラミング雑誌が毎月山のように売られてた。
 今みたいにDVD-ROMなんて添付されてない。ちょっと前のCDでもない。ソースコードがそのまんま印刷された本だ。信じられないだろ?シューティングゲームソースコードのまま載ってるんだ。
 だから改造もできる。自機をカッコよくしたり,一発で死ぬのをライフ制にしたり,もっと簡単に無敵状態にしたり。敵のキャラ絵や動きを変えたり,マップもいじれたなあ。
 時はアドベンチャーゲーム華やかなりし頃。謎解き系のゲームなのにプログラムがそのまま載ってる!なのに謎解きが楽しめる!
 暗号ってやつだ。マップやアイテムのデータが暗号化されてるってわけ。
 まだまだあるぞ。プアーな音源をミュージックマクロランゲージなんて文字列で演奏するんだ。
 サウンドカードがついてない機種じゃあビープしか鳴らない。そのビープ音を操って,単音だけど音程を出すテクニックとかあったなあ。
 
 みんなプログラマーだったんだ。
 BASICから始めて,マシン語をやって,アセンブラ書いて。逆スクロールができたときは大喜びしたね。
 目の前でテレビにつながれている「マイコン」が,俺の自由になる。ハイテクが指先で踊るんだぜ。サイコーじゃないか。初代PASOPIA,Z80CPU4MHz,64KBメモリ。俺の初恋の相手だ。
 
 時が下って学生の頃。
 PC-9801RX2。忘れもしない。MS-DOS3.1D。世界標準の「OS」が動くんだ!
 夢中になったね。当時はまだあった中古ソフト屋で Turbo C なんて買ってきてさ。古いけど MS-DOS2.11 システムコールリファレンスなんて買ってきてさ。「ベーマガ」だって現役だ。N88-BASIC(98) でベーシック書ける。TurboCでC言語もかじる。MASMでマクロアセンブラかじる。おもしれーのなんの。四角い箱に乗っかったCRTディスプレイの真っ暗な中をMASMで書いたドットが降ってくる。たったそれだけで感動したね。
 そしてTurboC!ガキの小遣いで買えるギリギリの五千円!奮発したね!
 BASIC とはちょいと違うんだぜ。コイツは関数型言語っていうんだ。BASICのサブルーチンなんて目じゃねーぜ!
 もちろんゲームもしたさ。たくさんしたね。中古ソフトで買ってきてプロテクト外し。こいつがまた楽しいんだ。プロテクトをどうやって外すか。メーカーとの知恵比べだ。フロッピーの特定セクタだけNULLで埋める?それともわざとコピー失敗するセクタを作る?うまくいけば元のソフトは速攻で中古屋に転売。そんな時代だった。
 プロテクトをやっと破ったと思ったら,ゲームの途中で滝の中に取り残されたりしてな。しまった!コピー失敗だ!って思ったときはもう元ソフト売っちゃってたりしてな。
 プロテクト破った!って思ったら,「こんなことしてるヒマがあったら履歴書書いて送って来い!」なんてメッセージが出たりしたっけな。
 
 さらに時代が下って社会に出る頃。
 やってきたのが Windows ってやつだ。こいつは手強いね。コンソールでしかプログラミングしたことなかったから,画面が作れねーんだ。オブジェクト?なんだそれ?C++?クラスって何だ?
 しばらくプログラミングから離れた時期だな。俺はオヤジと一緒に土建屋やってた。ノートパソコン持って出張に行って,公衆電話から音響カプラとポケットモデムつないでニフティサーブパソコン通信ってやつだ。楽しかったなあ。プロバイダの企画を提案して,「ネットスケープvsインターネットエクスプローラ 業界人覆面対談!」みたいなことが実現してな。
 ネットってすげー!って思った時期。
 
 それから,俺はプログラマーに戻った。
 ちょっとしたソフト屋に転職してな。そこで始めて,Visual Basic ってのを触ったんだ。
 こいつはすごいぜ,VB4ってやつだ。なんたって画面がすぐできる。イベントプロシージャってやつに処理を書けば,ボタンを押したときに反応する。ああ,なつかしの関数を .bas モジュールに書く日々!
 VB5になってクラスの概念がやってくる。Quick-Cなんてコンパイラ使ってFAもやった。VB6を使いこなせるようになった頃,俺はずっとしまいこまれていたPC9801RX2に,FreeBSD(98)ってのを入れた。はじめてのUNIX系OS
 まだ洗練されていなかったPerl4でちまちまツール書いたなあ。IRCデーモンをインストールして同僚とチャットしたっけ。BSDじゃあgccがフリーでついてくるんだぜ!こいつぁすげぇ!
 
 やがて俺は独立してフリーランスになる。新しい開発環境,Linux環境。Perl,C,VB,VC,Java。設計して書いてデバッグして結合テストして・・・
 プログラマーがいつのまにかSEになって。で,今の会社にもぐりこんだときはコンサルタントだ。
 仕事で書くことはほとんどなくなった。
 
 でも俺は書いている。
 
 こんな楽しい遊びを知ってもらいたくて書いている。
 
 ハッカージャパンの後ろのほうで,ひっそりと,だけど,いつのまにかもうすぐ十年。
 手にとってくれたら嬉しいな。
 そして一緒に遊ぼう。WindowsだってUNIXだって遊べる。Visual Studio はなんたってタダで初級版が手に入るんだ。知ってるか?今じゃJavaだってVisualStudioみたいにEclipseってのでサクサク書けるんだぜ?
 IIS入れてASPならVBScriptかな。ブラウザでリッチな動作をさせるにはJavaScriptも書けたほうがいい。LinuxApache入れてCGIならPerlで充分かな。PHP?あれはちょっと苦手。本当はASPも苦手。データとコードが混在するのはちょっとね。
 
 おまいさんの目の前にあるコンピュータは何で動いてる?
 Windowsかい?Mac OS Xかな?それともLinux?渋めにOpenBSDとか選んじゃったりした?
 どんな環境でも大丈夫。一緒に遊べるさ。
 
 楽しもうじゃないか。そこにあるコンピュータは,もっと自由に動かせるんだ。
 手を伸ばそう。インターネットにアプローチしよう。ほんの数年前まで夢みたいなことが今ならできる。知ってたか?そのコンピュータは世界に向かって手を伸ばせるんだ。ブラウジングするだけじゃない。ブラウジングされる立場になってみないか?世界中ともっと深く確かに繋がろう。さあ,開発環境はそこにある。WindowsならWSHが。MacLinuxBSDならもっとリッチな開発環境が最初から揃ってる。ちょっと手間をかければたいていのものが準備できる。俺たちが遊ぶのに小遣いはいらない。こんなエキサイティングなゲームがほとんどフリーで遊べるんだ。さあ,キーボードに手を乗せて。少し深呼吸しようか。吸って,吐いて。準備はいいかい?今までとはちょっと違う,アクティブなコンピューティングの世界が待っている。
 
 さあ,プログラミングしようぜ!