実装あるのみ!の世界 #33

公開日: 2012-03-19


元ハーバード大学教授で今はグーグルでソフトウェアエンジニアをやっているという Mike Welsh 氏がコードレビューについての記事[1]を書いていた。コードレビューは非常に有用だからぜひやろう、という趣旨の内容なのだが、導入部分がなかなか過激でこんな感じのことを言っている。

アカデミック研究コミュニティについて知らない人のために言っておくと、アカデミックの連中はひどいプログラマだってことだ(私もそのグループに含む)。連中はしょぼいコードを書く。ユニットテストもなければ、スタイルガイドラインもなければ、ドキュメントもない。コードは大学院生によっていい加減に書かれた代物で、だいたい、論文の締切りのプレッシャーのなかで、グラフの見栄えをよくするために書かれたものなのだ。他の誰かがそのコードをいつか実行するかなんてことは念頭にも置かれてない。

私もアカデミックなところに少しだけいたことがあるので、この感覚はある程度理解できる。論文のグラフのために手っ取り早くでっちあげたというコードと、製品のために作りこまれたコードでは品質に差があるのは不思議ではない。もちろん、研究から生まれたコードですごいものもあるし、製品のコードでどうしょうもないものもめずらしくないけど。

それはさておき、氏の記事で思い出したのが、その昔、どこかの国立研究所で見かけた「実装あるのみ!」という張り紙だ。たしか魁男塾の江田島塾長のドアップの一こまををもじったものだったと思う。

これを見たときは、こんなところでもそんな人がいるんだ、と思った程度だが、あとで考えてみると、国立研究所のようなところでは優れた研究をして論文で発表するのが第一で、実装は二の次のはずだよな、と疑問に感じたのであった。

では、産業界はどうかというと、こちらも実装あるのみ!というわけには、なかなかいかないと思う。実装以外にもいろいろ必要なことがあるからだ。

そう考えると、実装あるのみ!が通用するのは趣味のプロジェクトくらいといえる。が、趣味のプロジェクトでも公開してユーザが増えると、やりがいは増える反面、実装以外のやることが増えてしまう。

というわけで、実装あるのみ!を追求するにはプログラムを公開してはいけない。その点、研究のためだけに書かれたコードは公開されないことが多いので、ある意味、実装あるのみ!は当たっているかもしれない。

[1] http://matt-welsh.blogspot.com/2012/02/my-love-affair-with-code-reviews.html

Satoru Takabayashi