趣味でコードを書くのは、今も悪くない
Chris Kiehl が、コードに真剣になるのはもう無意味だという社会的な圧力と、それでも週末に当たり判定がひどいブロック崩しを手で書き続ける理由を書いている。仕事で手書きコードの採算が変わったのは事実だが、仕事は人生ではない。
日本語
コピー

Hacker Newsを読んでいると、これを書かねばという気にさせられる。プログラミングを楽しんでいても、いいじゃないか。
職場では確かに、企業に価値を生むために金をもらって働く場では、純粋に手で書くコードの経済性は変わった。だがそれは仕事だ。仕事は人生ではない。ネットで一番声が大きい連中こそ、一番不幸で、一番伝染しやすい。
絶望の海に小さな反例をひとつ投げておこう。私は今でも週末にプログラミングをする。楽しいからだ。今はゲームプログラミングを学んでいる。今の腕前はというと、当たり判定がひどいバグだらけの Breakout のクローンだ。楽しいから手で書いている。問題にぶつかって苦しむのは、解けると嬉しいからだ。Claude が一発でやってのけるとしても気にならない。そこが目的じゃないから。
この「ゲーム」の作業から横道にそれて、脈絡のないプログラミングの話題を調べることもある。先週末は、Agdaのような依存型のある言語のアイデアを使って、Java の型安全性をどこまで押し上げられるかを探っていた。何の意味もない。せいぜい「ある問題についての面白い考え方」として引き出しにしまっておく程度だ。仕事で役に立つかもしれないし、立たないかもしれない。探ることが楽しいからやった。1
数週間前の週末は再帰スキームだった。正直に言って、これは楽しくはなかった。何時間も壁に頭をぶつけていた。結局、このアイデアのどこに価値があるのかすら、まだわかっていない2。ただ、プログラミングにおける最も美しいアイデアの多くは、何年も頭の中で寝かせて初めて見えてくるものだということは知っている。Monoid について論文が一本まるごと書かれるのはそのためだ。いつかこれが当てはまる問題に出会うかもしれない。出会わないかもしれない。難しいことを理解するのは報われるから、やった。
これを書くのは、妙な社会的圧力をますます感じるからだ。もうこれを楽しんではいけないかのような。人間として成長し続けることに意味も喜びもないかのような。この終末論の情報を浴びれば浴びるほど、感染していく。ふと「意味なんてない」と思ってしまうかもしれない。だがそれは、接続を切った瞬間に消える。
何かを楽しんだっていい。3 そこに経済的な正当化は要らない。