ぼくと新単位 HW とか

プログラムの仕事量っていうのを考えることにする。定義のしかたはすごく難しいと思うけど、日本には行数で仕事量を数えるという素晴らしい文化があって、それで考えるとゴルフの仕事量っていうのはマイナスなのです。

まぁ行数っていうのはあかんやろ、と、人月くらいのフィーリング単位で考えるとして、例えば Hello, world! の仕事量を 1HW とでもしよう。たぶん GCC で 100GHW くらいとかかなと思う。 1GHW と言ってもよくわからないけど、中国人全員が Hello, world! を書くくらい、と言ってもやはりよくわからない。

それはともかく、この世には仕事量ゼロのプログラムっていうのがあって、何もしないプログラムっていうのは 0HW と言っていいと思う。ただまぁ、労働時間ゼロで仕事量ゼロっていうのは自明なのであまり面白くない。

もう一つ 0HW と言って良さそうなものがあって、 Quine はそうなんじゃないかと思う。というのは Quine はなんか出力があるんだけど、 Quine の定義からその出力っていうのは結局さっきまで書いてたコードそのものなので、まぁぶっちゃけプログラムはなんもしてないのです。

なんもしてないつってもなんかしてる気がするるかもしれないですが、それはまぁたぶん勘違いでして、以下の Quine なんかを見るとなんとなく無駄っぷりがわかるんじゃないかなと思う。

http://shinh.skr.jp/obf/quine.html

これは何してるかっていうと1秒待ってその後に DOM とかで自身を参照することなく自分のコードを表示してるわけだけど、スクリプトソースコード見せたいんなら script タグじゃなくて pre 使えば終わりじゃんとか、そのソースコードどっか別ファイルに置いときゃ Apache はデフォルトで見せてくれるよとか、まぁそんな微妙な気分を味わえるのではないかと思うような気がする。

というわけで Quine は 0HW なのだけど、それなのにそれなりに時間を使ってたりするので、無駄な時間の使い方の極致と言えるかもしれない。そんなわけで「テスト前に俺はこんなに無駄な時間の使い方をしたぜ」という武勇伝を語りたい中学生とかは Quine を書くといいかもしれないなぁ…

とかどうでもいいことを思った。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h