次の方法で共有



May 2016

Volume 31 Number 5

ちょっとひと言 - 技術者の資質

David Platt | May 2016

David Platt近頃は、アポロの宇宙飛行士たちの回想録を読むのがお気に入りです。中でもとても面白かったのが、Michael Collins 著の『Carrying the Fire』(Rowman & Littlefield、2001 年) で、そこでは司令船シミュレーターの誘導コンピューターへの苛立ちがぶちまけられていました。

「怒りを抑えられなかった。"オペレーター エラー" のランプが点滅したのを目にして、愚かでどうしようもないコンピューターめと、ぶつぶつと不満を漏らすと、(シミュレーション オペレーターの) 声がイヤホン越しに聞こえ、彼らの大切なコンピューターにどれほど無礼な振る舞いをしているかを、諭すように淡々と説明されたものだ」

この文章に興味をそそられ、最も初期の頃の宇宙船のコンピューターについて調べてみることにしました。そう、昔の戦友を訪ねたのです。1987 年、ある新興企業に私を誘ったのが Hugh Blair-Smith です。この企業は 2 年後に破綻することになります (彼のせいではありません)。彼は、ハーバード大学の公開講座で私が初めて行った Windows の授業の生徒でもあります (授業は C 言語の 16 ビット SDKです。皆さんが気になるようなので書いておきます)。それよりもずっと前、彼は MIT の Instrumentation Lab (後の Draper Lab) に勤めていて、アポロ誘導コンピューターのハードウェアとソフトウェア両方の開発に協力していました。より進化した "Block II" 構成では、司令船と月着陸船に同じ誘導コンピューター (bit.ly/1RDrUj4) を使用し、ソフトウェアを変えていたそうです。

10 年前に『Why Software Sucks』(Addison-Wesley Professional、2006 年) を執筆して以来、Blair-Smith とは話をしていませんでした (彼もこの書籍にかかわっていましたが、名前は出ていません)。彼はつい最近、アポロに携わっていた当時のことを綴った『Left Brains for the Right Stuff: Computers, Space, and History』(SDP Publishing、2015 年) を出版しました。この書籍では、フェライト コア ROM を備えたコア ロープ メモリ (bit.ly/1pBCtGk) などのハードウェアや、除算命令のマイクロコードにまで及ぶソフトウェアついて取り上げています (オタク向けの巻末には、乗算命令のナノコードについても触れています)。

また、こうした技術トピックだけでなく、ここで使われているエンジニアリングすべてを生み出した、宇宙開発競争の社会的、政治的背景についても取りあげ、美しい言葉で綴っています。彼は、1968 年のクリスマス イブにテレビ放送された「アポロ 8 号」で、人類が始めて月への軌道に乗った場面について語っています。

「宇宙船は、空気のない影だけの世界が生み出す暗闇に向かって進んでいく。『それでは、アポロ 8 号の乗組員より、すばらしい地球上のすべての皆さんへ。おやすみなさい、幸運を祈ります、よいクリスマスを、そして神のお恵みを』私は思いました。Frank、Jim、Bill、君たちもね。そして、愛しいコンピューターも」

私が特に興味を引かれたのは UI の話です。宇宙飛行士はテンキーを使って、動詞と名詞を入力していました。たとえば、「動詞 88 Enter」は、コンピューターに VHF 距離計からの入力を無視するように指示しています。「動詞 87 Enter」は再び入力に注意を向けるように指示します。

「これは、もっと優れた UI を考案するまでの間に合わせだった」と Blair-Smith は話してくれました。「しかし、宇宙飛行士たちは、これを気に入ったようだ。アポロ 15 号の船長 Dave Scott が『これなら操縦士も使える』と言ったことから、これが使われ続けることになった」(Scott の記事『The Apollo Guidance Computer: A User’s View (アポロ誘導コンピューター: ユーザーのビュー)』(英語) は bit.ly/1pLV5V5 から PDF 形式でダウンロードできます)。

コンピューターは宇宙飛行士たちに行動を促すことはできましたが、ロケット エンジンを燃焼させることはできませんでした。Blair-Smith はこう話しています。「乗組員による明確な指示がなければ、重要な動作は行わないという考え方だ。宇宙飛行士たちは、もし自分たちが死ぬことになったら、それは自分たちのせいであって、コンピューターのせいではないと断言できる」

当然、もっと話を聞きたくなります。Blair-Smith は親切なことに、MIT 近くのケンブリッジで 3 か月ごとに行われる当時のアポロ技術者の昼食会に私を招待してくれました。

もちろん、熱心な宇宙オタクの私の娘、Annabelle も連れて行かなくてはなりませんでした。彼女はまもなく迎える 16 歳の誕生日 (まったく信じられませんが) のプレゼントとして、Buzz Aldrin の "Get Your Ass to Mars (火星へ行こう)" T シャツを欲しがるほどです。アポロ技術者たちは、この若き新入りに喜んで話をしてくれました。色あせないプライドを持ち、紳士的態度を崩さずに、「私はアポロ 12 号の Rope Mother だった」と話す技術者もいました (ちなみに「Rope Mother」とは ROM の最終責任を負う唯一のエンジニアのことです)。

それから数日後の夜、Annabelle と私は自宅近くにある塩沼の向こうに昇る満月を見ました。ミスリル色に明るく輝いていましたが、とても孤独に見えました。あれから 50 年、だれも足跡を残していないからでしょう。「私たちにもできるよね」と Annabelle が私に言いました。彼女は刺激を受けたようです。

アポロのベテラン技術者たちは、この月を見て何を思うでしょう。いつものように、Blair-Smith はきびきびと話します。「何か気づいたことはあった? アポロと共に生きてきた私たちには、アポロに関することは今でも現在形なんだ」

しかし、例外が 1 つありました。仲間内で話すとき、私や Annabelle に話すとき、彼ら自身のことを話すとき、使っていた言葉です。その言葉を、読者の皆さんに贈りましょう。これは彼らから私たち全員への挑戦状であり、彼らの碑文に刻まれる言葉でしょう。「自分たちに何ができないかもわからなかった。だから、とにかく前へ進むしかなかった。それがうまくいった」


David S. Platt は、ハーバード大学の公開講座や世界中の会社で .NET のプログラミングの講師をしています。『Why Software Sucks...and What You Can Do About It』(Addison-Wesley Professional、2006 年) や『Microsoft .NET テクノロジ ガイド』(日経BPソフトプレス、2001 年) などの、11 冊のプログラミング関連の書籍の著者でもあります。2002 年には、マイクロソフトから Software Legend に指名されました。David は、8 進法で数える方法を学べるように、娘の 2 本の指をテープで留めるかどうか悩んでいるところです。連絡先は rollthunder.com (英語) です。