adish intelligence

アディッシュ株式会社のエンジニアブログです。

◯◯にはエンジニアの大切な全てのことが詰まっている。

井上です。Gaiax Advent Calendar 2016の16日目の記事を書きます。 書くんですが、何の話をしようかずっと悩んでいました。もう16日目当日です。

私もエンジニアの端くれ。何か実装例のような話だったりを書き連ねてみたいと思わないわけではないです。しかしながら丁度よい塩梅のネタが思いつかず、ひとまずえいやっと筆を走らせてみようと思います。(実際はキーボードを叩いているんですが!)

と、こうした独白めいた文章が、今まさに読んでいるアンディ・ウィアー「火星の人」の文体に似ていると思ったので、この辺の話をしようと思います。
ジャストアイデア。閃きって大事ですね。

「火星の人」って?

今年2月に公開されたSF映画「オデッセイ」の原作小説です。 火星DASH村と言ったほうが通りが良いでしょうか。 火星で芋を作る話という認識をされている方も多いかもしれませんが、実際はそうではありません。後述します。

なんで「火星の人」?

私は個人的にSF小説やSF映画が好きで、よく映画館に行く方です。スペースファンタジーやスペースオペラより、実直なサイエンス・フィクションや、"すこし不思議"なSFが好きです。「ゼロ・グラビティ」や「インターステラー」なども非常に良いSF映画でした。小説では「戦闘妖精雪風」。漫画では今井哲也さんの作品が好きです。

ちなみに私は「オデッセイ」を観てから原作小説である「火星の人」を読んだ派になるのですが、現在「火星の人」は上下巻分冊で発行がされています。しかし私は敢えて1冊に納めた旧版で購入して読んでいます。ああ、こういう話は不要ですか。不要ですね。と言いますか「なんで?」の説明に全くなっていないですね。

「オデッセイ」公開初日に、面白いらしいぞという話を見かけ、それ以上ネタバレを見ないよう細心の注意を払いつつ映画館へすっ飛び観た結果、 「困難に際して知識と技術と諦めない心で乗り越えていく、まさにエンジニアのための映画だ」と感じたのです。 よし、技術開発部のブログ記事らしいちゃんとした理由ですね。

当時「これは2016年最高の映画だ」と思ったのですが、その後まさか「シン・ゴジラ」や「君の名は。」や「この世界の片隅に」で「2016年の最高」をことごとく塗り替えられるとは思っても居ませんでしたが。
はい。余談ですね。
余談ついでに、原作小説作者のアンディ・ウィアーは現役プログラマだそうですよ。

ざっくり「火星の人」あらすじ

有人火星探査中のクルーの一人、マーク・ワトニーが不運な事故によりたった一人火星に取り残されてしまう。不毛な赤い砂が広がる火星の大地で、残された限りある物資で、果たして彼は地球からの助けが来るまで生き延びることが出来るのか!?

作中、火星側の描写は全て「ワトニーが書き残したログ」の体(てい)になっているため、「独白めいた文章」になっています。また、ワトニーがポジティブシンキングのみならずユーモアセンスあふれる性格であるため、文章も痛快で楽しめる作品になっています。

見て見て!おっぱい!─(.Y.)
(実際に作品中に登場する一節です。本当ですって)

「火星の人」とエンジニアスピリッツ

劇中、限られた資源の中で生き延びるため、ワトニーは食料を確保しなければいけません。そこで芋を作ることになります。その描写が「火星DASH村」の評に繋がるのですが、芋を作るために必要なものが何か。彼は計算に計算を重ねて必要なものを用意しきります。

まず耕作をする場所が必要です。火星の大気は薄く、ほぼ真空であるため水分はあっという間に蒸発します。つまり外で耕作はできません。クルーの生活する場所であるテント(ハブと言います)しかありません。しかしハブは狭く必要十分な耕作地が得られません。彼は実際に助けが来るまでに掛かる日数から必要なカロリーを計算し、取りうる複数パターンの農法から生産量を算出、可能な限り最大の効果が得られる手法を選択します。
耕作地が出来たとしても、植物が育つにはバクテリアの活動がなくてはなりません。しかし火星の大地にバクテリアは存在していません。しかし彼は"あるもの"を使って解決します。
さらに水が必要です。植物を育てるため必要な水の量を計算し、ハブに備えられていた水では足らないと判断。この課題について化学反応で水を生成すれば良いとし、必要な元素を確保し、危険マージンを"可能な限り"取った上で反応させて解決します。

芋を作るために水素と酸素を化学反応させる。これぞエンジニアリング。
いえ、そこではありません。課題に対して一つずつ対処をし、乗り越え、目的を達する。これこそが素晴らしいエンジニアリングだと思います。

他にもワトニーは、200キロの資材をローバー(大型トレーラーみたいなものです)に載せるために、岩を積み上げ斜路を作って積み込んだり。
地球と交信するために、地球側が操作できる360度回転してパノラマ撮影するカメラを活用したり。(さぁこれはどうやるか想像できるでしょうか!?)
ローバーで長距離移動をするため、まずテストとして近隣を走り、バッテリーを持たすために暖房を切っていると冷えすぎてしまい重ね着をしても耐えられないという問題点を見つけては、車内を暖める方法を検討し、対処をした上で再びテストを実行する。今度は暖まりすぎるため、ローバー内の断熱材を削り剥がしたりもします。この時もテストを繰り返して調整をするのです。

目的のために必要な課題解決をするため取捨選択をする。使わないものは取り外し、バックアップを考慮した上で必要なものだけを機能させる。
どうでしょう。制限された状態で、手持ちの道具を使って、必要であれば道具を作り出して、最終的なゴールにたどり着く為に乗り越えるべき課題を解決するために、様々なものを組み合わせて解決する。まさにエンジニアリングですね!

この他にも「行き詰まったらあえて寝る」といった教訓とすべきポイントだったり、エンジニアあるあるな話だったり・・・。そう、システムをハックするシーンなんかもあるんです。

如何ですか。エンジニアのための作品だと、お分かりいただけたでしょうか。

まとめ

「火星の人」にはエンジニアの大切な全てのことが詰まっている。

ぜひ映画「オデッセイ」を観て下さい。
もしくは「火星の人」をぜひとも読んでみて下さい。
エンジニアでない方も、面白いので是非観て読んで下さい。