「OSSのコードが綺麗」という先入観

先週、Twitterでまるっきり別のクラスタの知人が全く別個の「Open Source Softwareのコードは綺麗。業務のコードは汚いが動くコード」みたいな誰かのtweetをRTしていてちょっとそれ違うよなーと思った次第。

Open Source Softwareのコードが綺麗かどうかというのは非常に大雑把かつ間違った先入観で、 仮にそう思っているのであれば、それはその人がロクでもないコードや大雑把な単位のコミットを普段から見すぎているか、 運よくめちゃくちゃコードの出来がいいプロジェクトのコードを読んでいるだけだと思った方がいい。

Open Source Softwareのコードが綺麗になるとするならば、

  1. コードを公開する側にとっては綺麗なコードを公開したいという気持ちが生まれ、せめて見せかけだけでもと頑張っている(恥の概念)
  2. 綺麗なコードを書けるプログラマーが参加している・集まっている
  3. プロジェクトのcheck-in policyが(時には潔癖なまでに)しっかりしている

のどれかでしかない。

Open Sourceだろうがプロプラだろうが先ず重要なのは問題を解いていることであって、 コードが綺麗かどうかは重要じゃない(クソコード無罪と積極的に言っているわけではないので悪しからず)。

それに、パッと見は設計もスタイルも綺麗だけど全然問題に適してない設計だったり、 そもそもインデントが揃っててて綺麗なだけで全部グチャグチャとか、コミットログがロクでもないとか、 設計やAPI designが腐ってるとか、そういうコードはOpen Source Softwareを多数探せばいっぱいあるし、 逆にプロプラでもメチャクチャしっかりしたコードと出会うこともある。

Open Source Softwareに期待するべきなのは、コードが公開されているとか再利用可能とか困ったら自分で修正できるとかにすべきで、 コードの綺麗さを期待してはいけない。

仮にそういうことを褒めたいときは特定のプロジェクトを名指しで褒めるべき。OSS一般が綺麗というのは幻想もいいところ。

そもそも綺麗なコードって何だよっていう話ではある。