エッセイ
試行錯誤の応用篇
山本貴光

いまにして思えば、小中高という10代の時期にパソコンに接したのは幸いなことだった。それは1980年代のことで、パソコンといっても現在と比べてずっと単純だった。見よう見まねでプログラムを作ってみたり、雑誌に載っているプログラムをせっせとキーボードから入力しては「うーん、動かない」と目を皿のようにして雑誌のページと画面を見比べたりしながら、少しずつ仕組みや使い方を覚えていった。
その体験から誰に教えられたわけでもなく実感したことがある。自分が作ったプログラムにどんなに自信があっても、いざ動かそうとすると必ずなにかしらのエラーが生じる。プログラムの文法的なミスもあれば、命令の手順を間違ったために意図せぬ動きをするとか、プログラム以前の設計がよくなかったとか、それはもう山ほどのミスをする。そしてここが肝心なのだが、1人で行うプログラミングでは、なにかエラーやミスが生じた場合、その原因のほとんどは自分にある。
他人やコンピュータのせいにはできないので、プログラムを確認する。ふむ、合っているはずなんだけどな。ここが拙いのかな。こっちで何か勘違いしているのかな。ああでもないこうでもないと考えたり試したりしながらプログラムを眺めていると、やがて腑に落ちる。「あ、なんだ、そんなことか!」というので、発見したミスを直してプログラムを動かすと、今度はまた別の問題が持ち上がる。以下この繰り返しである。
ここから痛感したのは、ある規模のプログラムを書こうと思ったら、一度でうまく行くことはほとんどないということだった。それより肝心なのは、エラーやミスにどうやって気づけるか、それらをどのように直せるかだ。ちょっとかっこうをつけて言えば、事件の捜査に乗り出す探偵の気分でもある。証拠である結果を前にして、その原因を推論するわけだ。
いま述べたことは、ゲームにも通じる。ゲームとは、与えられた目的に向かって、試行錯誤と失敗を重ねながら物事を進めていく遊びである。ゲームでは、一度でうまくいかないことがむしろ楽しく、失敗するたび発見がある。発見があるから、失敗した直後に、「よし、今度はうまくできるぞ」と再チャレンジしたくなる。失敗を通じて自分を変えていく遊びだ。
万事が同じようにいくわけではないけれど、私は試行錯誤の繰り返しを通じて自分が変わるというプロセスを、勉強や仕事などの場面でも思い浮かべるようになった。例えば、母語ではない異言語を学ぶとき、はじめからうまくできないが、なあに失敗を繰り返すうちに上達していくさと思えば挫折しにくい。ゲーム会社に勤めながら、古代ギリシア語やラテン語を習いに行ったことがある。予習で原文を日本語に訳して授業に臨む。先生の解釈を聞くと、自分がとんだ思い違いをしていたと分かる。では、なぜそのような間違いをしたのかと原因を考える。プログラミング流だ。
面白いことに西洋古典語をしばらく学んでみたところ、日本語の読み方も変わった。それ以前は雰囲気で分かった気になる読み方をしていたと思う。ところが、日本語の文章でも、必要に応じて古典語と同じように多様な要素に注意しながら読むようになった。例えば、込み入った専門書などを読む場合などに、自分が読み間違える可能性を意識できるようにもなった。
後にはこの方法で文章を読む過程を本に書いてみた。幕末から明治期に活動した啓蒙知識人の西周が、いまも使われ続けている学術用語をヨーロッパ諸語から訳しながら、当時の西洋学術の全貌を論じた「百学連環」を読み解く『「百学連環」を読む』(三省堂)や、イギリスに留学して文学(literature)とは何かをとことん突き詰めて考え講義した夏目漱石の『文学論』を読解する『文学問題(F+f)+』(幻戯書房)などがそれである。
また、そうした読み方を繰り返すうちに、文章には何がどのように書かれているかという観点からの読解を思いつき試すようになった。『文学のエコロジー』(講談社)では、文芸作品をゲームプログラマーの目で読むということを試してみている。なにやら拙著のお知らせのようになってしまって恐縮だが、これらの仕事の根底には、安心して失敗と試行錯誤を繰り返しながら物事を理解してゆくというプログラミングの経験がある。10代の頃、楽しみのためにやっていたことが、そんなことになるとは自分でも思っていなかった。
『国語教室』第123号より転載
「この春、なにを始めよう」
文筆家・ゲーム作家の筆者は、失敗を重ね試行錯誤を楽しみながら、さまざまな挑戦をしてきた。新しいことを始めたくなる春、授業開きにピッタリの随想。
著者プロフィール
山本貴光(やまもと たかみつ)
1971(昭和46)年生まれ。文筆家、ゲーム作家、東京科学大学リベラルアーツ研究教育院教授。著書に、『世界が変わるプログラミング入門』『記憶のデザイン』など。
一覧に戻る