趣味でコードを書くのは、今も悪くない

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

日本語
コピー
森林峡谷里一道从岩壁倾泻而下的瀑布,两侧长满常绿的冷杉,左边有一株叶子开始变色的枫树

Hacker Newsを読んでいると、これを書かねばという気にさせられる。プログラミングを楽しんでいても、いいじゃないか。

職場では確かに、企業に価値を生むために金をもらって働く場では、純粋に手で書くコードの経済性は変わった。だがそれは仕事だ。仕事は人生ではない。ネットで一番声が大きい連中こそ、一番不幸で、一番伝染しやすい。

絶望の海に小さな反例をひとつ投げておこう。私は今でも週末にプログラミングをする。楽しいからだ。今はゲームプログラミングを学んでいる。今の腕前はというと、当たり判定がひどいバグだらけの Breakout のクローンだ。楽しいから手で書いている。問題にぶつかって苦しむのは、解けると嬉しいからだ。Claude が一発でやってのけるとしても気にならない。そこが目的じゃないから。

この「ゲーム」の作業から横道にそれて、脈絡のないプログラミングの話題を調べることもある。先週末は、Agdaのような依存型のある言語のアイデアを使って、Java の型安全性をどこまで押し上げられるかを探っていた。何の意味もない。せいぜい「ある問題についての面白い考え方」として引き出しにしまっておく程度だ。仕事で役に立つかもしれないし、立たないかもしれない。探ることが楽しいからやった。1

数週間前の週末は再帰スキームだった。正直に言って、これは楽しくはなかった。何時間も壁に頭をぶつけていた。結局、このアイデアのどこに価値があるのかすら、まだわかっていない2。ただ、プログラミングにおける最も美しいアイデアの多くは、何年も頭の中で寝かせて初めて見えてくるものだということは知っている。Monoid について論文が一本まるごと書かれるのはそのためだ。いつかこれが当てはまる問題に出会うかもしれない。出会わないかもしれない。難しいことを理解するのは報われるから、やった。

これを書くのは、妙な社会的圧力をますます感じるからだ。もうこれを楽しんではいけないかのような。人間として成長し続けることに意味も喜びもないかのような。この終末論の情報を浴びれば浴びるほど、感染していく。ふと「意味なんてない」と思ってしまうかもしれない。だがそれは、接続を切った瞬間に消える。

何かを楽しんだっていい。3 そこに経済的な正当化は要らない。

Footnotes

  1. いつか時間を取ってFinを理解してほしい。美しいから。 ↩

  2. まだそこまで行っていないが、これを学ぶ目的は、プログラムの正しさを代数的に考えるための道具をもう一つ手に入れることにある(この話題は私の本でも扱っている!)。 ↩

  3. バイブコーディングも最高に楽しい。コードを一行も読んだことのないアプリが一揃いある。読んだらぞっとするだろうな、きっと。「プログラミング」をこうやるのも楽しい。しかも極めて楽しいことが多い。ただし、独特な形での楽しさだ。 ↩

出典: chriskiehl.com← ホームへ戻る