創造力・発想力は大切だけれども…

 近年、コンピュータによる人工知能は、私たち人間の頭脳ができる様々な活動に刻一刻と近づきつつあると言われています。そして、私たち人間のやってきた仕事を次々と、機械である人工知能が肩代わりしていき、私たち人間は失業してしまう、とも言われてきました。私たち人間に残されるであろう仕事は、より高度な頭脳労働、すなわち、創造力や発想力を生かすような仕事ばかりになってしまう、とまで言われてきています。
 確かに、そのような予測が現実となって来つつある、私たち人間の今の状況は、危機的と言ってよいのかもしれません。チェスや囲碁や将棋などのゲームの世界では、人工知能は、プロの名人たちにも勝てるようになってきました。自動車の自動運転の実用化も、時間の問題なのかもしれません。人工知能は、医療や対話や芸術などの各分野でも、私たち人間がそれをするのと同等か、それ以上の実績をあげそうな気配がしています。
 そのように、私たち人間は、創造力や発想力を発揮していくしか生き残る道がなくなってしまう、そういった未来を受け入れるしかないと、言い聞かされています。けれども、本当にそうなってしまうのでしょうか。と、私はそのことに疑問を抱いています。そこで、私なりの意見を、そのことに関して今回は述べてみたいと思います。
 現代の私たちは、人工知能などの中核となるコンピュータ・システムについてどれほど理解していると言えるのでしょうか。そう私が問いかけるのには、それなりの理由があります。確かに、私たちは、一般的な知識としてそれをおおかた理解していると考えられます。これこれこういう機械の仕組みとして、コンピュータの動きをおおまかにわかっているのだと思います。
 また、オブジェクト指向という考えについても、コンピュータのソフトウェア・システムを成り立たせる上で大事な知識や技術がまとめられています。現在のそうしたIT技術を実務としている若い人たちから見れば、「これからは俺たちの時代だ。」ときっと思っていることでしょう。
 もちろん、彼らは、日本の伝統で世間一般に相変わらず根付いているタテ社会にいることもなく、横綱の地位にいる先輩から平手打ちを食らわされることもありません。それどころか、彼らは、人工知能にしても、オブジェクト指向にしても、ウェブ(WEB)の技術にしても、そして、スマホの技術にしても、そうしたIT技術が、最近ひょこっと現れた最先端のモノ、すなわち、数十年前の先輩たちが全く触れることのできなかったモノのように見ていると思います。
 今から30数年前に、20代の前半だった私も、今の若者と同じように、そんな『若さ』に浮かれていました。それで、会社の同じ部署の、面倒見の良くない先輩に、「今のコンピュータの技術って、呪文を唱えると何でもできる魔法みたいで凄いですね。」と言ってみたことがありました。すると、理工系大学出身のその先輩は、「こうした技術は、すべて過去の知識の蓄積に過ぎないよ。」と何の感動もなく平然と答えるのでした。けれども、当時のわたしには、コンピュータの技術が、その先輩の言う通りの、そんなつまらぬ知識の寄せ集めであるとは到底思えませんでした。コンピュータのために四苦八苦してきた過去の人々の努力や苦労なんかは、全く理解できませんでした。
 しかしながら、20代の後半を過ぎた私は、プログラマとしてはやや行き詰ってしまっていました。会社の実務に没頭しすぎたために、コンピュータに対する興味というものが薄らいでしまい、かつ、視野が狭くなってしまっていたのです。プログラムやシステムを開発することへの困難さばかりが目に付き始めて、こうしたIT技術全般に共通した根本的なことがわかっていませんでした。つまり、こうしたコンピュータのプログラムやシステムを作るのに大切なことは、私たち人間に構成力があることだ、ということを完全に忘れていたのです。
 アセンブラやCやBASICなどのいかなるコンピュータ処理言語においても、共通なものがあります。それらのプログラミング言語には、いずれも種類が無限でない言葉(あるいは命令)が使われています。そうした種類の限られた言葉(あるいは命令)をどう組み合わせるか、あるいは、それらをどういう順番で並べるのか、名前の付いたメモリの領域をどういうふうに使うか、といった、コンピュータ上にあるモノを使ってもろもろのことを行うためには、創造力や発想力よりも、構成力のほうが大事だと言えます。
 コンピュータという機械は、いかなる人工知能(AI)的な振る舞いをしようとも、それらのプログラミング言語によるコントロール(制御)が必要です。言い換えると、自律して動いているいかなるコンピュータであっても、私たち人間によるコントロールは必要だと言えます。また、そういったプログラムやシステムが誤動作した時は、私たち人間のコントロールによってそれを正しく動作するように直さなければなりません。つまり、そのプログラムやシステムが、正確に動こうと間違って動こうと、どちらにしても、私たち人間によるコントロールが何らかの形でかかわっていると言えます。もしも、自動運転のできる車の中で、私たち人間がハンドルから手を離せたとしても、ハンドルに代わるもっと効果的な制御方法(例えばテレパシーとか)を、私たち人間は獲得する必要があると思われます。
 一般的に、コンピュータという機械は、動いている途中で急に停止してしまうことよりも、正確にスムーズに理路整然と動くことが求められます。私たち人間が、コンピュータに抱くイメージは、正確無比でスムーズかつスピーディ、そして完全無欠なのです。航空システムや鉄道システムなどのコンピュータ・システムが、誤動作を起こしてダウンすると、「何てことだ!」と私たち人間は、怒ってしまいます。
 しかし、コンピュータという機械が、上に述べたように、あくまでも私たち人間のコントロールを反映させたプログラムで動くものであるとするならば、むしろその機械自体は不完全なモノとみなしたほうがいいように考えられます。したがって、そのプログラムやシステムは、私たち人間の手で正しく動くように直されなければなりません。そういった意味でも、他人と違った創作や発想をすることよりも、コンピュータ上の要素のつじつまを合わせる構成力のほうが役に立つということがわかると思います。
 実は、そのようなプログラムやシステムの一部を構成することは、コンピュータによる自動化が既に出来ています。コンピュータ処理言語のコンパイラやリンカーや仮想マシンなどは、その例の一部と言えましょう。ただし、そのようなプログラム全体やシステム全体を構成することを、コンピュータによって完全に自動化することはできません。どうやっても、それが無理であることを、ここで私は重ねて述べておきたいと思います。限られた数の言葉(あるいは命令)を組み合わせて、プログラムやシステムを作るためには、その全体を見渡してプログラムやシステムを構成することができる私たち人間の手がどうしても不可欠なのです。たとえ、その方法をコンピュータに模倣させることが出来たとしても、そのすべてを模倣に頼ることはやはりできないと思います。仮に、誤動作が起きたとして、それを自らの責任のもとに直せるのは、やはり私たち人間だけなのです。
 おそらく、今日までそうやって私たち人間が、コンピュータのプログラムやシステムの不具合を一つ一つ全体の整合性に気をつけて直してきたのです。だからこそ、コンピュータは「速く正確に動く機械だ。」という信頼を勝ち得てきたのだと思います。もしも、このコンピュータという機械が、いつも故障だらけで、まともに動くことが少ないシステムだったのならば、今日これほど私たちが頼りにしているようなモノにはなっていなかったと思います。それを支えて来れたのは、やはり私たち人間が構成力というモノを発揮して、誤動作の少ないプログラムやシステムに直してきたからに他ならないと、私は思うのです。