megamouthの葬列

長い旅路の終わり

プログラマをクソコードで殴り続けると死ぬ

ここにクソコードがある。

誰が作ったかはわからぬ。それが、どのような経緯でクソコードとなったのか、
あるいは、最初からクソコードであったのか、それらは全てクソコード自身が知るのみである。

ファーストコンタクト

ある日、営業からシステム案件を打診されたので見積もりして欲しい。というメールが来る。
とある企業の既存システムに機能を追加する簡単な案件ですが、なななんとソースや仕様書をご支給いただけます!
と、それはサンタにプレゼントが貰えると信じて疑わぬ子供のような真っ直ぐなメールである。

ソースコードが入った圧縮ファイルを受け取ったプログラマは、早速、コードを読んでみる。

そのシステムが本当にいいコードで書かれているかを判断するには時間がかかるが、
クソコードであるかはおおよそ30分でわかる。

インデントがタブとスペースどちらかに統一されていないとか、フレームワークの誤用があるとか、またはフレームワーク自体が独自のものであったりすれば、じんわりと汗が滲み、異様に長大な関数やファイルがあったり、コピペが横行しているところを発見すればほぼ確実である。

クソコードだ。

プログラマは呟く。その言葉は誰に聞かれることもなく、ただ虚空に響く。


ソースコードに、仕様書などのドキュメントが添えられていたりする。
ほとんどの場合、画面キャプチャに無数の丸番号を貼り付け、これはボタンです。これはテキストボックスです。と書かれた、見ようによっては哲学的なExcel方眼紙ドキュメントや、気の利いたツールを使えば、5秒で吐き出せるような、データベース定義(DDL)をExcel表にしたものである。

それらの文章の体裁がどれほど秀逸であろうと、クソコードを生み出した連中の印象が変わることはない。
コードを見ることができない人間を騙す方法など無数にあるのだ、とただ感じ入るのみである。

さて、クソコードであることを確信したプログラマは、こんなものの面倒を見るなんて冗談じゃないぞと、営業にその事を伝えるが、
「ほうほう、それはそれは」
とこちらの深刻な声色と違って、彼は嬉しそうである。
その時、彼は、受注の確度が高まったことを喜び、継続的な改修業務の受注が見込めそうだと、笑みを浮かべて算盤を弾いているのだ。
悪質なリフォーム業者が床下に無数の換気扇を設置できる家を見つけたような、それは会心の笑みである。

そう、一度、クソコードを見てしまえば、すでにクソコードに関わらないという選択肢はプログラマには残っていない。
それはそういうもので、この国ではいつのまにかプロフェッショナルであるということは、如何なる理不尽にも忍従できるかどうか、ということで判断されるようになってしまっている。

熊を素手で殴る

やがて営業が、受注の成功を告げる。納期はさしあたり2週間といったところです。
営業の秘訣は恋人に接するようにすることですよ。とかつてその営業は飲み会の席で宣ったことがあるが、お前が連れてきたのは誰にも相手にされないドブスだということを彼自身は気にしないし、いずれにせよ彼女と添い遂げるのはプログラマである。

さて、プログラマは不味いプティングをスプーンの先で突くように、気乗りしない表情で、開発環境を整え、クソコードを展開し、追加要望が書かれたExcelシートを漫然と眺めたりする。

不幸なのは、これからの作業が如何なるものになるか、プログラマにはだいたいの見当がついてしまうことだ。

クソコードには独特の匂いがある。コメントなど一切なくとも、そこに無力な兵卒が強大な化け物と戦い、爆発四散したような跡がある。
あるいは迫り来る時間と膨れ上がった仕様との絶望的なせめぎあいが見える。
その戦場の跡であるクソコードは、あたかも枯れ木が点在する荒れ地を思わせる。おそらく地面の下には無数の死体が埋まっているのだろう。

それでも、彼は、開発環境でシステムを動かしながら、コードをいじくって、コードと動作の対応を見たりして、クソコードの、そのカオティックなロジックを自身の感覚に落としこもうとする。

クソコードは、プログラマの体内にじわじわと侵食して、彼の中にあるTDDとかDIとかデザインパターンといったような煌めくようなプログラムパラダイムの美しいものを押しのけ、代わりに居座ろうとする。
まるでコピー&ペーストと、場当たり的にViewに埋め込まれた複雑なロジック、膨れ上がったコントローラー、複雑怪奇なSQLである我々こそが、机上の空論でない、実際に動作する、プログラムの本質であるとばかりに。

あるいはプログラマはそれに抵抗するかもしれない。回帰テストがないのなら、今からテストを書けばいい。それができたらリファクタリングができる、クソコードをもっとまともなコードに変更するのだ、といった具合に。
しかし、その思いは早々に打ち砕かられる。無数の副作用を及ぼす2000行からなる関数のテストをどう書けば良いというのか?
先にリファクタリングする?一箇所でもしくじれば、「以前動いていたものをなんで動かなくするんですか!」という営業の罵声が響くだろう。

やがてプログラマは首を振って、全てを諦めることにする。

クソコードが内包しているメソッドは単純明快だ。とにかくその場しのぎということだ。
自分もそうすれば良い。大きく書き直すのは、リプレース案件が来て充分に人手と時間がとれてからでいい。と。

その様子は、猟銃や罠をしょった若き狩人が、それら全てを投げ打って、素手で熊に殴りかかるようなものだ。
人々はずっとそうしてきたし、これからもそうするのだ。森に残された踏み込まれた足跡をたどり、何もかもをかなぐり捨てて、彼は熊に挑みかかる。

牢獄

最初の改修案件を終えたプログラマは熱いコーヒーを飲みながら一息ついている。
やれやれ、不愉快な仕事も終わった。このクソコードの事は金輪際忘れてしまおう。と彼は口内に広がる心地よい苦味とともに考えている。

しかし、内線電話がかかってきて、営業の弾んだ声が言う。
「今回の案件が好評でしたので、継続的に取引できそうです!」

そして、要望のExcelシートが前回の2倍ほどの長さになってやって来る。
今度は誰がするのだろう?ではない、彼がするのである。なぜなら彼は一度クソコードを制覇したし、他の誰もそんなことをしようと思わないからだ。

クソコードという牢獄に囚われた彼が、解放される日はおそらくやってこない。
クソコードは常にこういった人を探しているし、一度誰かを捕まえることが出来たなら、絶対に逃さないのだ。

囚われ人の黒々とした頭髪は白くなっていくか、抜け落ち、Tシャツからはすえたような匂いが漂い、鼻毛は飛び出てくる。彼の面相は体内を汚水で満たしたように、でっぷりと膨らむ。

死んだ目でキーボードを叩き続ける彼の姿に、何も事情を知らない新入社員が顔をしかめる。
まるで絶望的な塹壕戦を戦う歩兵のようだ。ああはなりたくないものだ。彼はきっとTDDとかDIとかデザインパターンの勉強をしなかったのだろう、と。

しかし、クソコードが注入される前、プログラマの中にあった、理想のパラダイムが、依存と複雑性をできるだけ排すことができた夢のプロセスが、花開く場所がある。

彼はtwitterにクソコードの悪口を書き込み始める。そしてQiitaや自身のブログを開き、そこに最新のテストフレームワークの使い方を、家で使ってみたクールなフレームワークの情報を、あるいはアンチパターンから離脱する冴えたやり方を、書き込む。

それらは元々彼の中にあった煌めくような未練の塊であり、現実とは乖離している。
そして、だからこそ、美しい。

何も知らぬ者がそれらを見れば、なんと恵まれた環境でこの人は働いているのであろう、やはり、世の中には優れた制作会社があるのだ、と思い込むだろう。

そうした情報が煌めく星となって、この業界にまた新たな若者を引きつけるのだ。



星を求めて、彼の会社に入社した社員は、困惑する。

肝心の彼がいないのである。

他のスタッフに聞いてみると、「彼は退職したよ」と言葉少なげに語る。
その様子は、キャリアアップや、東京で消耗したくない、といったような明るい理由で彼が退職したのではない、ということを雄弁に物語っている。

上長がやってきて、新人の席を案内する。
「君にはこのコードと仕事を引き継いでもらいたい。」




ここにクソコードがある。

誰が作ったかはわからぬ。それが、どのような経緯でクソコードとなったのか、
あるいは、最初からクソコードであったのか、それらは全てクソコード自身が知るのみである。


リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

id:JavaBlackさんお勧めのこちらもどうぞ!(なんか絶版っぽいので、中古で購入する場合は状態に注意してください

改訂新版 Cプログラミング診断室

改訂新版 Cプログラミング診断室

誰も勃起してはならぬ

勃起することは男にとって全ての諸悪の根源である。

勃起、言うなれば、男性の性の発露が陰に陽に、女性に対するセクハラとして、さらには暴行事件などとして顕在化することは改めて述べるまでもないだろう。

それ以外にも勃起の害悪は社会に蔓延している。

特定の個人に関わることについて具体的な例示は避けるが、
仮定の話として、国内のITエンジニアとして最高の地位と年収とストックオプションを手にした男が、女子大生に一度勃起してしまったばっかりに、
リベンジポルノされ、その性癖と射精に至る時間までも暴露されてしまい、自分のブログで、彼女の言い分では付き合い始めたのは2014年からとなっておりますが、それはセフレ期間を含んでおりますので、正確には2015年からとなります。という何言ってんだお前感溢れる釈明に追われてしまうといった事態も考えうるのである。

また勃起は女子大生とラブホテルにいる時だけ発生するものではない。
意中の異性、または不特定多数の異性が自分に好意を抱くのではないか、という予測が成立している状況、端的に言えば、「今俺すっげえイケてる」と考えている場合においてすら発生する。


昔、私はあるアートイベントの会議にオブザーバーとして呼ばれたことがある。
そこではアートイベントの方向性について白熱した議論が行われているのだが、どうも様子がおかしい。
どういうターゲットを想定するのか、集客の為にどのような行動が必要か、などという現実に立脚した議論が全く行われず、
抽象的で、しかし、聞き心地だけはいいアート論、理想論が飛び交い、誰かが話だす度、議論が、たちまち上空かなたに飛翔していくのである。
私は訝しんで、ふと、熱弁をふるっているどこぞのアートディレクターの股間を見てしまった。

勃起していた。

なるほど、こういう議論をする時、人は軒並み勃起しているものなのだ。と、私は深く感心した。
そして、その後アートイベントは意味不明のコンセプトと、よくわからない内容で、不評に終わった。
ただ一度の勃起が一つの機会を台無しにすることがあり得るということ、これはおおっぴらに語られることはないが、事実である。


あるいは、このエピソードから勃起が本来有能であった人を無能にすることがある、ということが読み取れるかもしれない。

そしてそれが、この社会に男性諸氏を巧妙に「勃起」に誘導せんと、あらゆる仕掛けが蔓延している理由である。
まるで今すぐ関係を結べそうな女性の写真を、通販カタログが如く並べる出会い系広告、
性に積極的すぎる少年とその叔母との情事を、アパートの上階から陰茎めがけて落下する女性を、あそこは地獄穴ですだよに落ちた田舎のブスを描いたWeb漫画広告、
ビールのCMで、何かいかがわしいものを飲み干す珍妙なかけ言葉を連呼する女性たち。
これら全ては「勃起」を通じて冷静な判断力を失わせ、購買意欲を高めんとする闇のマーケティング理論を元に行われており、そこには女性の尊厳を全く無視しているばかりか、良いものを作って、消費者に正当に判断してもらおうという、真っ当な商道徳すら欠片もない。
これらの企画もまた、勃起したマーケティングディレクターによって発案されたことが、明白なのである。


見てきたように、勃起がもたらす害悪は様々である。しかし、なぜ男性諸氏は勃起をやめようとしないのであろうか。

かつて、精力が減退した老人は、「長老」として敬われ、その判断には一目置かれたものだ。
言うまでもなく、老人は勃起しないからである。

しかし、現代においては、バイアグラの密輸などで、当の老人までが勃起能力を手に入れようと必死になっている。
(念の為注釈するが、不妊治療など正当な目的での勃起不全治療薬としてのバイアグラを否定するものではない)

なぜ彼らは卵子に向かって泳動する精子のごとく勃起をやめないのであろうか。
疑問を抱いた私は、かつて山本夏彦翁が言った言葉を思い出した。

新聞や雑誌の本文は読むに値しない、広告を見よ。

私もそのようにしよう。センテンス・スプリングとゲス勃起カップルに称された雑誌の広告などを漫然と眺めていると、果たしてそこに答えはあった。

マムシドリンクやスッポンサプリメントの広告に踊るコピーがそれだ。

「男性の自信回復」
「毎日の活力」
「生涯現役」

逆に言えば、世の男性は自信と活力を失い、いつ自分が若い人間にとって変わられるか、戦々恐々としているということだ。
そういう時、勃起は彼らに偽りの万能感を与えてくれるらしい。

なるほど、これは覚せい剤中毒のメカニズムとほぼ同じである。

精神的並びに肉体的に、最早超人と化した彼には如何なる離れ業も可能と感じさせるのです。彼にとって、人生などほんのマンガです。そしてスピーダー(覚せい剤乱用者)は快感の敷き詰められた道路をひた走るのです。

この無意味に詩的な文章は公益財団法人 麻薬・覚せい剤乱用センターからの引用であるが、
まさしく、勃起も同様の感覚を引き起こしていると考えられる。

勃起こそは社会の害悪である、という私の論理は、図らずも、男性諸氏によって、独占され、秘匿され続けた合法ドラッグの一手法を見つけてしまったようだ。

繰り返し言う。勃起は諸悪の根源である。全ての男性は今すぐ勃起をやめるべきだ。
伊藤直也の死を無駄にしてはならない。


マイ アイアン ラング

徹夜明けの朝、つけっぱなしのテレビから、朝のワイドショーから、ヒステリックな女の声がTVから流れてくる。
それはある女代議士の声で、部下の無能さを車の中で罵っているのだ。

その声には単なる叱責とは異なった、病的で狂気を帯びた響きがある。

それが白日の下にさらされた時に醸しだされる滑稽さも含めて、私はこれをよく知っている。

母の怒鳴り声と同じなのだ。

昔、母は常軌を逸した怒り方をした。その矛先は主に父であったので、つまりはよく夫婦喧嘩をしていたということになる。

母の怒りの原因は父そのものに起因するというよりは、祖父(彼女にとっては舅)を代表する父の親族にあった。また、父も言い返すというよりはじっと母の罵声に耐え続けていたので、厳密にこれが夫婦喧嘩と呼べるかはわからないし、夫婦仲が悪い、という表現も当たっていないように思う(このあたりが家族というものの謎めいたところだ)

子供の頃の思い出のほとんどに「夫婦喧嘩」をしている二人の姿がある。
私達兄弟はその度に、子供部屋の薄暗がりに身を潜めて、ドアの隙間から差し込むおぼろげな蛍光灯の下で怒鳴り散らす母の怒声に身をすくめるのだ。


母があれほどの剣幕で怒りを表現するのだから、きっと父とその親族は母に対して非道な仕打ちをしているのだろう、と私は子供心に思った。
母に同情的であった私は、それを解決する力が自分にあれば、とも考えていたが、幼い自分にはそれはひどく非現実的なことのように思えたし、年上の兄の諦観したような表情を見ていると、そんなことは到底無理なことなのだろう、と思う他なかった。


兄は大学進学を期に家を出ていき、私もまた分別のつく年頃になった。
そうなると母とそれをとりまく、我が家の事情というものも薄々わかってくる。

結論から言うと、母の怒りは、結婚当初から今に至るまで、父の親族にいじわるをされたり、金銭的に迷惑をかけられたということから構成されていた。
もちろん母に分のある話もあったが、ほとんどはさっさと忘れてしまったほうがいいような事であったり、または適当な第三者を介在させれば解決できそうな問題ばかりだった。

しかし、母は、それらを解決しようとはしなかったようだ。むしろ、繰り返し繰り返し、過去の問題を思い出しては自分の怒りのボルテージを釣り上げ、父に罵声を浴びせ続ける方法を選んでいた。

同じことを繰り返しながら違う結果を望むことを狂気という。


そういう意味ではまさしく彼女のそれは狂気であった。
兄は家を出る時、私に何も忠告はしなかったが、彼が母を見る目はぞっとするほど侮蔑と冷淡さに溢れていて、全てをわかっていたように思える。そして実際、それ以来兄は、家に帰ってくることはなかった。

しかし、私はどうにも母を放っておく気にはなれなかった。年を追う毎に母の狂気は暴力的な色彩を帯びるようになっていて、物に当たったり、父に手をあげることも多くなった。
一度は、学校から帰ると、台所中に米粒が散乱している時もあった。
黙ってそれを箒とちり取りで片付けている父の後ろ姿を見ていると、家族が所詮は一つの幻想に過ぎないとわかってはいても、自分が、関与せずにはいられないような心持ちになったものだ。

私は時々、父に代わって、母の話し相手を務めるようになった。
夫婦の場合とは違って、母の声のトーンは穏やかだったが、新婚当初に父の親戚に嫌味を言われたというようなエピソードを、3度めであろうが、5度目であろうが、まるで、自分は初めてこの話を私に打ち明けたのだという調子で語るのだ。

私は父が耐えてきた苦痛を思った。そして、その話が直接自分とは関わりがないということの幸運を噛み締めた。


だが、その幸運すらも長くは続かなかった。

私が大学を辞めたからである。

母の標的は私に移った。

栄光のエリートの安定した生活を捨て去り、莫大な学費をドブに捨て、さらには母の自尊心を踏みにじった大罪人として、私は裁かれることになった。もちろん刑罰は決まっている。永遠の、終わりなき罵倒である。


大学を辞めた私が、IT業界に潜り込んで生計をたてようが、少ない給料の中から幾らかを捻出して母に返そうが、そんなことは何の解決にもならなかった。

何度も書くが、彼女は解決を望んではいないのだ。損なわれた自尊心の償いを求めているのだ。


だから、私はあのヒステリックな声の裏側に潜むもののことをよく知っている。同時に、それに対処する最善の方法も知っている。
できるだけ速やかにその場を立ち去り、あの声の主から遠くへ逃げることだ。


私は、実際にそうした。


しかし、逃げ込んだ先で、かつての家族を思い出さないこともない。

ずっと昔、radioheadのMy Iron Lungの序盤のフレーズが頭の中を流れた時、ふと幻想を見たことがある。

それは、玄関のドアを開けると、よく晴れた初夏の日差しの中に、私の家族が立っているというものだ。
父も、兄も、母も、皆がにこやかな表情で立っているのだ。
正常な、狂気のない、暖かで、穏やかな家族の一人として、私を迎える為に。

それはかすかに残った家族の欠片が見せた幻だったろうか。
理知的に生きてもなお残っていた、私の魂が密かに望んでいた物なのかもしれない。


私の家族は悲惨だったのだろうか?と思う時がある。
母が悪かったのだろうか?父が悪かったのだろうか?
今に至っても私にはわからない。

ただ、そこに、ぽつねんと狂気があり、そしてそれこそが私達家族であった、としか言いようがないのである。


The Bends?[国内盤 / 解説・歌詞対訳付] (XLCDJP780)

The Bends?[国内盤 / 解説・歌詞対訳付] (XLCDJP780)