2009年03月05日

言語の声がとても良く聞こえる

疲労が割とピークに達してきたせいか、最近、言語の声がとてもよく聞こえます。

実装をしている時に、この処理はどう書くのかなぁと思ったりしたら、私はとりあえず言語に聞くことにしています。そうすると、言語はいろんな答えを返してくれます。

それが誰の声なのかは分かりません。ヴァンロッサムかもしれないし、ゴスリンかもしれないし、ラリー・ウォールかもしれません。(たぶん全部違う)

プログラムは同じ処理を100通りの方法で書くことができるけど、どのパターンが正解かは、人ではなく、言語自体が答えを持っているのだと思います。

そんなわけで、今日は朦朧としながらJavaのコードを書きつつ、プログラマというのは言語を操る存在のようでいて、実は言語によって操られているのかもしれないなぁと思いました。

あと、いい感じで意識が危険水域にいる状態で、私の両手はなにやら変な文章を書き始めました。プログラマの日常を純文学風に書いたそうな。長い……。ていうかこんなもの書いてる暇があったら仕事しないと……。





今年最初の雪は、風が春の準備をし始めたこの時期になってようやく訪れた。忘れ去られることを拒むように降る雪は当然のように長続せず、徐々にみぞれへと変わっていった。
「かっこわるい」
灰色の空を見上げながら、バッタたちは口々に言った。彼らの複眼には、もがくように痕跡を残そうとする雪が滑稽に見えるようだ。
私は「彼らも頑張っているんだから」とフォローしてみたが、その声はバッタたちには届かなかった。
それで私は、今日何度目かのため息をついた。
時計に目をやるとちょうど正午。9時に出勤したので働き始めて既に3時間が経過している。にもかかわらずディスプレイに並べられたコードの羅列は、今朝から何の変化も見せていなかった。
私は出勤してからいくつかのコードを打ち込んでいたのだが、どれも思ったような結果を導き出すことが出来ずに破棄することになった。
「かっこわるい」
ディスプレイの前で途方に暮れる私に、バッタたちが言った。
私は「これは本当に難しいことなんだ。実現するだけなら楽だけど、それを300ミリ秒以内に動かさないといけなんだ」と言った。けど、もちろんその言葉もバッタたちは聞いてはいなかった。彼らは小さくて細い体からは想像できないような脚力で飛び跳ねながら、口々に「かっこわるい」と言った。
それで私は、今日何度目かのため息をついた。

私は考えをリセットさせようと思い、席を立った。
自販機で出来るだけ甘そうなホットのミルクティーを買い、その場でプルタブを開ける。砂糖の入った温かい液体を身体に流し込むと、少しだけ心が落ち着いた。
深い息をつきながら天井を見上げると、小人が2人、蛍光灯にぶらさがっているのが見えた。
小人たちはSmallTalk(何世代も前のプログラミング言語)が現在の言語にどれだけ息づいているか話していた。
「なぁ、おまえたち」私は小人に声をかけた。「私が席に戻るまでに、私のコードを動くようにしておいてくれないか。実行時間は300ミリ秒以内で」
プログラマの世界にはいくつかの伝承がある。
夜眠っている間に小人たちが現れて、動かなかったソースを動くように書き換えてくれたという逸話はかなり有名なものだ。
もちろん私はそんな迷信は信じてはいなかったけど、今、目の前に小人がいるなら、頼んでみて損はないと思った。
小人たちは一度ちらっとこちらを見て、2人で何かをささやきあった。
ミルクティを飲み終わった私は、自販機の前でいつまでもウロウロしているわけにもいかず「よろしく」と言って立ち去った。
小人たちは立ち去る私をじっと目で追っているようだった。

はたして席に戻ると、そこには動かないままのソースが鎮座していた。
「小人は信じないことにしよう」
私はそう呟いた。
「ああ、あいつらは信じない方がいい。確かに助けてくれることもあるが、邪魔をすることもある」
隣の席に座っていたクマのぬいぐるみがそう言った。
「小人を知っているのか?」
「そりゃ、知っているさ。プログラマなら誰だって知っている。ヤツらはプログラムを玩具だと思ってる。そりゃ、ヤツらは凄いさ。アセンブラだろうがマシン語だろうが、なんだって自分の手足のように操っちまう。俺にはとても真似できない。でも、ヤツはただ操ってるだけなんだ。目的がないんだ」
「目的がないって。じゃ、なんで彼らは人のコードを夜中に触ったりするんだい?」
「さあね。少なくともヤツらはバグを潰そうとしてコードを触ってるんじゃない。何かを作ろうという意志すらない」
クマのぬいぐるみはそう言うと、不機嫌そうに鼻を鳴らした。
私は最初から小人がなんとかしてくれるなんて信じてはいなかったので、まじめにディスプレイとにらめっこをしながら頭に浮かんだ手法を片っ端から試す作業を再開した。
「そんなに見るなよ。照れるじゃないか」
ディスプレイが不満を漏らしたが、無視することにした。見られることを不服に思うようなディスプレイの相手をするほど私は暇人ではなかった。

時間があまりなかったので、昼はパサパサした口触りの携帯色を牛乳で流し込みながら、可能性がありそうなコードを打ち込み続けた。
そのうちのいくつかが良い反応を示し、ようやく目的の機能が300ミリ秒以内で実装できる感触を得られた頃、柳に呼ばれた。
時刻は滑るように過ぎ去っていたようで、時計を見るといつの間にか16時を過ぎていた。
柳は風もないのにふらふらと揺れながら「ミーティングをしよう」と言った。
「何に関するミーティングですか」
「何か問題がないか洗い出す為のミーティングだ」
柳は私以外にも何人かのプログラマを呼びだして、会議室へ連れていった。私はミーティングの必要性などこれぽっちも感じていなかったが、立場上、出席しないわけにも行かず席を立った。
「かっこわるい」
背中からバッタの声が聞こえたが、今度は私が聞こえないふりをした。
頭の中で脳外科医が「わかってる。よくわかっている。これが社会人というものさね」と言った。

長いミーティングを終えて会議室を出ると、空は墨のように真っ黒になっていた。時計に挨拶をすると「もう20時だよ。よく頑張るね」という答えが返ってきた。
ミーティングは問題点管理表にあがっている項目について、どうするべきか議論をするだけで、大した収穫もないままに終わった。それでどうして20時までかかったのかはよくわからない。
おそらく処理効率に問題があるミーティングだったのだろう。無駄にループの中で分岐している。妙な場所で誰かがgotoと言って、流れが何度も寸断される。処理効率をあげれば10分で終わるようなことに何時間もかけてしまう。
私は目の前で繰り広げられる非効率なループに辟易して、会議中ずっと、脳外科医が平家物語を朗読するのを聞きながらぼんやりとしていた。

席に戻ると、今日1日格闘していたソースに見知らぬ一文が書き加えられていた。
「これ、誰が書いた?」
私は隣の席に座るクマのぬいぐるみに話しかけた。
返事はなかった。よく見るとクマの背中のチャックが空いていた。
「ああ、そいつならさっき返ったよ」
ディスプレイが言った。
私は「そう」と答えてもう一度コードに向き合った。ディスプレイが何か言いたげに身をよじったが、私が少し強めに咳払いをすると静かになった。
書き加えられたコードは実にシンプルなものだった。そして意味のないものだった。
メモリのコピーも発生しなければ、参照先の書き換えも発生しない。路傍の石のように、それはただ在るだけの処理だった。
試しに私はその状態で処理速度を計測してみた。
……154ミリ秒。
予想しなかった数値がディスプレイに現れた。
私は眉をしかめた。何度か咳払いをして、首をひねった。
ミーティングに出る前は、確か400ミリ秒弱かかっていたはずだった。
「ふむ」
私は目を閉じて2度呼吸をしてから、もう一度実行してみた。
……125ミリ秒。
はて、これはどうしたことか。メモリにキャッシュされているのだろうか。
PCを再起動して、もう一度実行してみた。
……168ミリ秒。
書き加えられたと思われるコードを削除して実行してみた。
……159ミリ秒。
あの妙なコードは、当然のようにこの処理速度改善には意味をなしていなかったようだ。消した後でも処理速度は変わっていない。

よくわからなかった。なぜその速度になっているのか、よくわからなかった。
しかし首をかしげていても仕事は進まないし納期も待ってくれないので、私は2時間ほどかけていくつかの検証を行い、いくつかのバグを見つけ、いくつかの修正をして、コードをサーバに載せた。
最後にもう一度実行時間を計ってみたが、処理速度はやはり速いままだった。
「ふむ」
私は椅子に体を深く預けて、自分が会議室に入る前にどこまで実装を終えていたか思い起こしてみた。が、正確に何をどこまで書いたという記憶は残ってなかった。
目で追った限りでは、最初に見えた妙な一文以外は、全て自分が書いたコードのように思えた。
「おまえ、小人がやったとでも思ってるんじゃないだろうな」頭の中の脳外科医が言った。
「まさか。バタバタしていたからね。たぶん私は最後に正しいコード書いて、試す前に席を立ったんだよ。もしくはPCに少し負荷がかかった状態で実行していたのかもしれない」
言い訳がましくそう言って、私はPCを落とした。
CPUクーラーとハードディスクが「がるるるる」と唸りながら、ゆっくりとその音を止めた。
「今日の夜、今度は動かないように小人が書き換えちまうかもしれないな」
頭の中で脳外科医が何かを言っていたが、私は返事をしなかった。私は小人のことなど信じていないのだから。
「今日は早いんですね」
コートを羽織ろうとする私を見て、ハンガーが言った。
「早くなんかないよ」
私はそう言って、軽く会釈をしてから職場を後にした。
外に出て空を見上げると、真っ黒な空から細く短い雨がいくつか落ちてくるのが見えた。傘をさす必要も感じないくらいの、糸くずみたいな雨だった。
「雪は元気かい?」と私は雨に聞いた。
「元気……ではないわな」雨は眉をハの字にしながら、か細い声でそう答えた。
「そうだよな。変なことを聞いた」
「気にしてないよ」
そう答えたあと、やがて雨も消えた。
posted by MW at 00:45| Comment(2) | TrackBack(0) | 文学 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
いつもお世話になります。
適度な疲れがただよっていらっしゃるみたいですね(^_^;)

自分はトラックドライバーからシステム会社に三月から転職いたしました。
慣れないスケジュール管理や、突然知らない言語解析を頼まれて、やべぇとこ来ちゃったと冗談ぽく思っております。
お互いほどほど頑張りましょう(^_^;)
Posted by hp_rc at 2009年03月06日 19:08
どもです。自分も「やべぇところ」にハマってます。早くほどほどに戻れると良いっすなぁ。
Posted by MW at 2009年03月09日 02:47
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。