インメモリデータベース Redis の開発者として知られる antirez さんの文章だが、「オープンソースのパラドックス」とは何か?
誰かも言うように、最高のコードは本来他のことをやるべきときに書かれる。それは例えば、作家は一銭の金にもならない小説に取り組むことで最高傑作を書くようなものである。プログラマというものは、業務時間に愚劣で退屈で無意味と感じるプロジェクトよりも、オープンソースのサイドプロジェクトのほうによりエネルギーを注ぎ込みがちである。
オープンソースは、半年だかでキャンセルされる可能性のある大企業の仕事とは違い、本当にその人がやりたいこと、ソフトウェアがどういうものであるべきか、とにかく楽しみのすべてであったり、場合によってはコーディングで怒りを覚えることの反映なのだ。
だからそのソフトウェアのユーザが声をかけてくるのは、そのコードのある部分がダメだからで、それについて何かしたいと協力したいと思っているわけだ。これはとても手のかかることだが、ユーザが作者にお金を払わないからといって侮辱しているとは考えてはいけない。お金の問題ではないのだ。そうしたいと思えば作者はバグや寄せられる文句をシカトしてかまわない。別に契約を結んでいるわけじゃないからだけど、文句を言うユーザは作者を助けようとしているのであって、作者と同じものに関心があるのだ。それはソフトウェアの品質であり、完成度である。
ソフトウェアのデザインはその作者のみが決めるべき事項であって、それに合わないと判断すれば pull request や提案を却下する資格がある。とはいえ、オープンソースを書いていて、ユーザの要求に気分を害するなら、その時点であなたの仕事は何かしらオフィスワークに近づいていると考えたほうがよいかもね、という話である。
このあたり、今夏に開発の一線から離れることを表明したこの著者の心境が反映されているように思うのだが、ワタシがこの文章で気になったのは、本筋から離れるが以下のくだり。
And you want it to rock, to be perfect, and you can’t sleep at night if there is a fucking heisenbug.
The open source paradox - <antirez>
heisenbug ってなんだ? と調べたら、Wikipedia 英語版に Heisenbug というページができている(日本語版では「特異なバグ」)。
要はヴェルナー・ハイゼンベルクの不確定性原理にひっかけた、デバッガで追おうとしても再現しないような「不確定性バグ」のことを指す。
『ブレイキング・バッド』のファンとしては、もしかしてこの単語もこのドラマの影響で生まれたものじゃないかと思ったが、本棚の『ハッカーズ大辞典』を調べたらちゃんと項目がありました(参考:heisenbug)。ワタシが知らなかっただけで昔からある言葉なんですな。
ネタ元は Hacker News。