Skip to content

近代プログラマの夕5 #2 いまこそ「マーフィーの法則」を読む

いまこそ「マーフィーの法則」を読む

アスキー総研のエンドウです。
2カ月ほどあいてしまいました。その間に世の中をひっくり返すような大事件が起きて、どうも日本人の性行というのが問い沙汰されている。

ちょうど、先日、NHKで『みんなのうた』の総集編みたいな番組をやっていました。私も、「あ~なつかしいなぁ」と楽しませてもらったのですが、『クラリネットこわしちゃった』とか『森のクマさん』、これがなんともシュールで日本のいまの状況を大予言してしまっているようなところがある。

パパからもらったクラリネットは、最初は「ド」「レ」「ミ」の3つの音が鳴らないのだが、やがては「ド」「レ」「ミ」「ファ」「ソ」「ラ」「シ」の音が出な~いとなる。不協和音が凄い。

ある日、森の中で熊さん出会った女性は「おじょうさん、お逃げなさい」と言われて、はじめてスタコラサッササと逃げ出す。ところが、最後は、ララララ~ラ~ラ~ラ~と、熊さんの前で楽しそうに歌っていたりする。

悪い冗談を言っているつもりはなくて、どちらも本当にみんなが好きで楽しまれた曲なのですよね。高度経済成長下にあって、日本人は、技術を信じ切っていたわけでもなかったんだとも思えるし、相変わらず忘れやすい性格なんだなとも思ったわけです。

ところで、世の中は、おもちゃから社会システムまで、コンピュータが重要な役割を果たすようになってきてます。で、現実の世界とコンピュータをつなぐ「霊媒」のような存在といえるのがプログラマではないかと思うのです。

つまり、このAPIみたな職業がちゃんとしていなと、大変によろしくないことになると思うのです。そこで、プログラマのみなさんだけは、いまこそ『マーフィーの法則』というものを、再認識してほしいと思ってこれ書いています。


『マーフィーの法則』って何か?

このコラムの前身である『近代プログラマの夕(ゆうべ)』で詳しく紹介したことがあります(『月刊アスキー』1990年7月号掲載)。それが元になって『マーフィーの法則』(アスキー刊)が、124万部というミリオンセラーになりました(ご興味のある方は『マーフィーの法則』を探すか、『21世紀版マーフィーの法則』をご覧アレ)。

「失敗する余地があれば、失敗する」
If anything can go wrong, it will.

要するに、バグが出るな~と思ったら、必ず出ると思ったほうがよいということです。あまりに有名なこの基本法則のほかに、『マーフィーの法則』では、次のような「補足」があげられています。

「見かけほど簡単なものはない」
Nothing is as easy as it looks.

ふだんからバグに付き合っているプログラマの方々なら分かりますよよねー。

「何事も思ってるよりも時間がかかる」
Everything takes longer than you think it will.

これも、最近のニュースを見てれば分かりますよね。

「いくつかの失敗が起こりうるとき、最悪な失敗が起こる」
If there is a possibility of several things going wrong, the one that will cause the most damage will be the one to go wrong.

こうはなって欲しくないわけですが、そう思ってかかれとういことでありますね。

「4つの問題点をつぶすと、すぐに5番目の問題が発生する」
If you perceive that there are four possible ways in which a procedure can go wrong, and circumvent these, then a fifth way will promptly develop.

そういうこともあるでしょう。がんばるしかないときがあるというものです。

「すべての解決は、新たな問題を生む」
Every solution breeds new problems.

エンバグという奴ですな。

 

『マーフィーの法則』は、1977年に米国で最初の版が出版されてベストセラーとなり、続編2冊を経て、日本版の原著が刊行されたものです。マーフィーの法則に類似するさまざまな分野で発見された法則も収録しているのですが、コンピュータに関する記述が多いのが特徴。有名な「ムーアの法則」も、いまのようにビジネス誌が普通にあつかうようになるはるか前にすでに掲載されていたんですね。

ムーアの法則(単純化)
「18ヵ月ごとにコンピューターの性能は2倍になり、価格は半分になる」
Computer power doubles and prices halve every eighteen months.

『マーフィーの法則』の原著は、ちゃんと出典が『Datamation』などのコンピュータ雑誌にあることをあげながらこれら法則を紹介しています。しかし、本来「半導体の集積密度が2倍になる」というムーアの法則を、このベストセラー本が「性能が2倍になり、価格が半分になる」と言ってしまったことが、その後、少しばかり誤解を生んだ可能性があると思います(日本語訳を出そうとした頃には米国では何百万部も出ていた)。

私が、好きなのは、次の法則です。

「プログラムには1つ以上のバグがある」
Any non-trivial program contains at least one bug.

レイモンド・スマリヤン(『タオは笑っている』であまりにも有名な)の世界に突入してきそうです。

「システムがある複雑さを越えると、設計が終わる前に組み立てられ、テスト終了前に実際の運用にまわされ、デバッグ完了前に旧式になる」
If a system is of sufficient complexity, it will be built before it is designed, implemented before it is tested, and outdated before it is debugged.

これって、「すべてがベータ」を見通してたとも言えますね。

「プログラムの複雑さは、それをメンテしなければならないプログラマの能力を越えるまで拡大する」
Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.

人間とコンピュータの競争が、システムとういことかもしれません。

「過ちは人の常。しかし、本格的に台無しにするにはコンピューターが必要である」
To err is human, but to really foul things up requires a computer.

やはり、コンピュータのほうが断然強い。

マーフィーは、けっして悲観論者ではないのですよね。モノは壊れること、最悪の事態がありうること、そのコトをプログラマは知っておくべきではないかと思うわけです。ところで、私が、マーフィーの法則に最初に興味を持ったのは、プログラマ時代に同僚に次の法則を教えてもらったからです。

「バターを塗った面を下にしてパンが落ちる確率は、カーペットの価格に比例する」
The chance of the bread falling with the butter side down is directly proportional to the value of the carpet.

「重力の選択の法則」に対する「ジェイニングの補足」という名前のついているこの法則は、マーフィーの法則に収録された法則の中でも有名なものの1つ。「ディスカバリーチャンネル」でやっているアダムとジェイミーの超人気の実験番組『怪しい伝説』をはじめこれを検証するテレビ番組や書籍は数え切れなくらいです。

しかし、いま読み返してみると、この「バターを塗った面が下になる確率」というのが、まるでピンとこなくなっている。

それは、どうも単純にバターの面が下になってカーペットを汚すくらいでは許してくれない世の中になってきているからかもしれません。パンはバターの面を下にして不思議なことにカーペットの上で3回弾んで、それを拾おうとした人がトースターのコードを引っかけ、カーペットに修復不可能な焼けこげを作りかねません。

@hortense667

このエントリーをはてなブックマークに追加
はてなブックマーク - 近代プログラマの夕5 #2 いまこそ「マーフィーの法則」を読む
Post to Google Buzz
Share on GREE

No related posts.

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*