tech
ハッカーの遺言状──竹内郁雄の徒然苔
第37回:マーフィーの法則
元祖ハッカー、竹内郁雄先生による書き下ろし連載の第37回。今回のお題は「マーフィーの法則」。
ハッカーは、今際の際(いまわのきわ)に何を思うのか──。ハッカーが、ハッカー人生を振り返って思うことは、これからハッカーに少しでも近づこうとする人にとって、貴重な「道しるべ」になるはずです(これまでの連載一覧)。
文:竹内 郁雄
カバー写真: Goto Aki
「マーフィーの法則」とは、マーフィーの法則を前提に何か書こうとしたら、そもそもマーフィーの法則を知らない人のほうが多かった、ということを意味する法則である。
それほど(?)有名なのがマーフィーの法則である。マーフィーの法則について書かれた本は意外に少なく、現在簡単に入手できるのは、
「21世紀版 マーフィーの法則」(アスキー、2007/7/12)
アーサー・ブロック(著)、松澤 喜好/松澤 千晶(翻訳)
ぐらいだろう。これは
「マーフィーの法則 ― 現代アメリカの知性」(アスキー出版局、1993/7)
アーサー・ブロック(著)、倉骨 彰(翻訳)
の増補新訳版であり、実際、ページ数が100ページほど増加している。付帯情報も豊富なのでお薦めする。それにしても、マーフィーの法則の系がもう1600個を超えたとは驚きだ。オリジナル版の原書は1977年の出版なので、散発的に知られ始めてから完全翻訳まで15年以上も時間がかかったことになる(写真1)。
思い起こすに、私はマーフィーの法則に関する記事を過去に2回も翻訳していた(写真2、図1)。
ジュディス・ストーン「重力の法則、軽力の法則、そしてマーフィーの法則」(「生命の不思議、宇宙の謎」桜井ほか訳の中の1編、白揚社、1994/12)。
(写真2)
ロバート・マシューズ「マーフィーの法則を科学する」(日経サイエンス、1997年7月号)。
(図1)
マシューズの記事は、一見都市伝説のようなマーフィーの法則に科学的な裏付けがあるという議論で、とても面白い。一番すごいのはマーフィーの法則には宇宙定数が絡んでいるという話だった。
1600個もマーフィーの法則の系や発展形があるのだが、その元となったポピュラー版マーフィーの法則:
If anything can go wrong, it will.
つまり、「悪いことが起こる可能性があれば、それは必ず起こる」(アスキーの最新版の訳では「失敗する余地があれば、失敗する」)という法則である。しかし、上記のストーン女史の記事の出だしが面白い。
マーフィーの法則の最も力強い例は「悪いことが起こる可能性があれば、それは必ず起こる」がマーフィーの法則であることである(※1)。
つまり、マーフィーは正確にはこんなことを言っていない。マーフィーの意図に反して、彼の発言のポピュラー版が普及してしまったのである。実際の発言である、「本家」マーフィーの法則はこうだ。
「何かをするのに何通りかあり、そのうちの1つがうまくいかないものであるとき、誰かがそこに行き当たってそれを試してしまうものである」
どこが違うって? 確かに微妙な差なので、ここはじっくり両方を読み比べて比較していただきたい。
マーフィー、正確にはエドワード・アロイシャス・マーフィー・ジュニア大尉は爆撃機のパイロットであり、エンジニアでもあった。第2次世界大戦のあと、空軍の研究センターの構造研究室長になり、飛行機の試験や耐衝撃シートの開発を行った。
話が突然飛ぶが、つい最近(11月16日)見たNHKの「ためしてガッテン、NASA直伝! 魅惑のアンチエージング術」は無重力に曝される宇宙飛行士の「老化」が話題になっていた。無重力状態だと、内耳にある、姿勢変化による重力方向のずれに敏感に反応する耳石からの信号が激減し、それが体の各種機能の低下を招くという。宇宙から帰環した直後の宇宙飛行士が自力で立てないのはそのためだ。
ついでだが、地球上でも30分座ったままで仕事すると、耳石からの信号が減るので22分寿命を縮めるのだとか。私はずっと座ったまま、いつ死ぬか、いつ死ぬかと、遺言状などを書き続けているので、もうだいぶ寿命が縮まっているはずだ。ところが、NASAの研究によると、ともかく30分に1回立つだけでも、宇宙飛行士もしばらくリハビリするだけでも(寿命が伸びるという話はなかったが)、耳石の本来機能は回復するらしい。安心されたし。
で、この番組の中で、とても印象に残る映像があった。それは人がどれくらいの加速度・減速度に耐えられるかといういまどきでは考えられない壮絶な実験のモノクロ映像だった。これはどう見てもマーフィー室長に関係した実験だ。実験は、レール上を走るロケット駆動のソリの上のシートに座った人に対してマッハ1(時速1030km)から1.3秒で停止しても人が生存できるかどうかを試験するのが目的だ(実際にはマッハ1は出ていない)。「生存できるか」だって? それだけでもヤバイ実験だ。これがクルマの衝突実験で使われるダミーの開発につながったという。
軍の研究なので、実験が大っぴらになることはなかったのだろうが、NHKで見た映像はそれが解禁されたあとの映像だったに違いない。猛減速度で急停止したあとの屈強な大男の顔や体にアザがあったりして、ものすごい衝撃だったことが窺えた。
調べたら、YouTubeにそれと思しき映像がいくつかあった。モノクロでないものもあるが、1949年の実験なのでその年号を手がかりに「John Stapp Murphy's law」といった検索をすれば映像にたどりつくことができるだろう。
この実験を提案・主導したのは上の検索キーワードにあったジョン・スタップ(John Stapp)空軍少佐である。しかも彼自身がこの無茶苦茶なソリに乗った。あの屈強な大男がスタップ少佐なのだろう。NHKの番組でいろんなことが急に分かってしまったような気分である。
さて、話は元に戻る。このソリに乗るために事前チェックをしていたスタップ少佐がある異常に気がついた。安全ベルトにかかる力を計測する加速度計が動作していなかったのだ。スタップは設計者だったマーフィーを呼んだ。調べた結果、測定用のゲージの電極が逆向きに取り付けられていた!
この事件に対してのマーフィーの発言が、上記の「本家」版である。まさに状況を正しく言い表している。実験が終了したあと、スタップは記者会見で、マーフィーの法則のお蔭で実験を安全に進めることができたと発言した。記者に「マーフィーの法則とは何か?」と質問されたスタップが答えたのがポピュラー版のマーフィーの法則である。これは航空機産業の広告のキャッチフレーズに使われ、またたく間に全米に広がった。
上の短い紹介から推し測れるように、本家マーフィーの真意は、システムを開発するときには常に最悪のことを考え、それに対処できるような「防衛的な設計(defensive design)」(例えば、複雑すぎるシステムは作らない、逆向きでも入るようなデバイスを作らない、など)をすべきだということである。というわけで、マーフィーの発言は大いに誤解されたままになってしまった。
このことを十分に理解した上でも、やっぱりポピュラー版マーフィーの法則は楽しい。
遺言状第23回で紹介した情報処理学会のプログラミングシンポジウム(プロシン)は、昼の発表セッションだけではなく、夜の自由討論がアルコールも入って大いに盛り上がる。もう20年以上前になるが、1994年のプロシンの夜の自由討論で、プロシン版マーフィーの法則を作り出そうということで盛り上がった。私が座長だった。
当時の時代状況の解説などを加えないと意味の分からないものがあると思うので、適宜注釈をつけながら、そこで収集された「マーフィーの法則」を紹介しよう(※2)。どう見ても「これ、マーフィーの法則?」と思わせるものもあるが、それはご容赦。
虫
この虫は秘書が作りました。
[系] この論文は秘書が書きました。
[願望] こう言ってみたい。
[解説] 当時、政治家の不正資金事件が相次いだが、そのときの政治家の発言は決って「このお金の流れは秘書がやりました」だった。
使わ[れ]ないソフトにバグはない。
松本教(1):この虫があればこそ今のあなたがあるのです。合掌。
松本教(2):このあなたがあればこそ今の虫があるのです。
松本教(3):すべてのバグは意義深い。
[解説] このプロシンではヤリイカの軸索の研究で高名な電総研の松本元氏による、生命の尊厳に関するありがたい招待講演があり、ニワカ松本教信者が増えた。
バグのあるプログラムはない。それは独立した別のプログラムだ。
NECの原則:バグは仕様にします。
[解説] この固有名詞っぽい英字に対して筆者は責任を負えない。
バグのない人生はさびしい。ペーパードライバーのようなものだ。
1バイトのバグにも4ビットの魂。
[系] 一寸の虫にも五分の言い訳。
[解説] 時間の5分と読むべきか。
バグは友を呼ぶ。
ポケベルは虫の知らせ。
[その対策] ポケベルが必要になりそうなときには古い電池を入れておけ。
[解説] 当時はバグが発生すると、エンジニアはポケベルで呼び出された。
ソフトウェア工学的帰納法:1つ目のバグが発見された。n 個目のバグのあとに n +1 個目のバグが見つかった。よって……。
バグは開発期間に比例して増加する。
松本の法則:真のバグは周りをみんなバグだと思っている。
出ないバグはいいバグ。見つからないバグはもっといいバグ。
忘れたいと思うバグほど記憶に残る。
デバグが完了するまではディスクはクラッシュしない。
[簡単な結論] デバグが完了すれば、ディスクはクラッシュする。
出たバグは叩かれる。
[重要な系] バグが出なくても私は叩かれる。
プログラムの生産性に関するもの
開発ワークロード削減のためのCASEツールは、使用法の修得に最も時間がかかる。
プログラムの下手な人ほど生産性が高い、つまりコーディング量が多い。
現場の日常プログラミング法則
SEが来たときには問題はすでに解決している。
消したファイルは1週間以内に必要になる。なぜなら、消したことで存在を思い出すから。
[系] 消したファイルは大きい。
計算機を使おうと思うと、スクリーンセーバーが働く。
プログラムが動いたときのことしか憶えられない。なぜなら、動かないことは多過ぎて憶えられない。
バックアップのときに壊す。
[系] 修理中に壊す。
バックアップの必要性を感じたころにダウンする。
1つの楽をするためには、10の労力を惜しまない。
しまったと思ったときにはreturnを押している。
[系] returnにはbackspaceが働かない。
未定義変数は悪意のある値しか持たない。
ゲーデルの不完全性定理:整数計算能力を持つすべてのシステムは不完全である。
コストダウンのためのダウンサイジングはコストアップに終わる。
プログラムはあと1週間すれば完成する。
ディスクの空き容量は常に3%である。
OA化が進めば進むほど、紙の量が増える。
[対偶] 書類をたくさん作らないとOA化できない。
[発展] これからはOA化トイレだ。
[解説] OA = Office Automation
デモを見せようとした瞬間にダウンする。
電子メールを出したよと口頭で伝える。
システムが安定するのではなく、ユーザが慣れるだけ。
ユーザインタフェース
よくできたシステムは人見知りする。
CPUはインタフェースのためにある。
インタフェースに凝ったものほど、肩は凝らない。
ユーザを調教できるユーザインタフェースが生き残る。
苦労して開発したインタフェースは、翌日某社の商品になっている。
年増は厚化粧する。
[系] 成熟産業製品としてのコンピュータはインタフェースに凝る。
マウス関係
メニューのあるところにはねずみがいる。
[解説] レストラン。
ねずみも歩けばバクダンに当たる。
[解説] 昔のMac。
ウィンドウの切り替えはねずみ探しから始まる──単に机上が乱雑すぎなだけ。
[発見] ウィンドウは机と同じくきたなくなる(デスクトップメタファーの原理)。
論文や研究開発に関する法則
論文は書くと忘れ去られる。
学位は3σ内の人が取る。
内容のある論文は(字がきたなくて)読めない。
締切りは重なる。
Art is not science、but science is Art。
ソフトウェア工学は論文を書く役には立っても、ソフトウェアを書く役には立たない。
アイデアは書くもの(筆記具)がないときに浮かぶ。そして書くものを手にしたときには忘れている。
研究テーマは解決する必要のあるものからではなく、解決できるもの(論文になるもの)から選ばれる。
副産物のほうが役に立つ。
ゴミ集めの専門家は掃除がきらいだ。
100倍速いマシンの開発には、それよりさらに10倍速いマシンでのシミュレーションが必要である。
机の上の状態は頭の中の状態に比例する。
[反論とその証明] いや、反比例する。なぜなら、まず補助線OAを引く。すると接線との交点cが見つからない。よって証明された。
[反論のフェルマーによる別証] しかし、証明を書くスペースが机の上にない。
白濱の嘆き:アイツが何かをしたら、すべてがオシマイだ。
[その定式化] ∃x(xが何かする ⊃ ∀y(yがオシマイになる))
用意した機能の90%は使ってもらえない。
[補強] 必要な機能の900%余計な機能が作られる。
本屋さんの恨みツラミ(プロシンには出版関係の人も参加する)
版権を売った本はよく売れる。
売れるはずの本ほど売れない。
いい言語(原稿)ほど遅い。
下巻は出版されない。
その他
クヌースのテーゼ:書こうと思ったらまず清書系を作る。
天は正規分布に従って n 物を与ふ。
酒の90%は10%の人が飲む。
相部屋の法則:いびきの大きい人ほど早く寝つく。
夜が更けてくるとなぜか次のような問題も出てくる。いわく
「問題コーナー:「女」という字形を含む計算機の専門語を見つけよ」
マーフィーの法則探しに疲れた頭をしばしこれで転換して、また新しい法則の発見に勤しんだ人も多かった。
しかし、意外にこれが頭を使う。ちなみにそこで挙がった答えの例:安全性、接続性、数値[計算]、プログラム始動、……。と、またまた発展してしまうのであった。けだし、マーフィーの法則は驚くほど副産物に富んでいる。(つづく)
※1:これは私の手元に残っている原稿だが、出版された本では、これがなぜか次のようになっている。
マーフィーの法則の中で最も説得力のある「悪いことが起こる可能性があれば、それは必ず起こる」はそれ自体がマーフィーの法則である。
どちらも完全には真意が伝わりにくいとしても、不思議なことが起こるものだ。これもマーフィーの法則かもしれない。
※2:これはコンピュータサイエンス誌「bit」に掲載したもののリニューアル版である。記事の最後のほうに、原稿料は財政の厳しいプロシンに寄付すると書いてあった。
竹内先生への質問や相談を広く受け付けますので、編集部、または担当編集の風穴まで、お気軽にお寄せください。(編集部)
SNSシェア