IPA(独立行政法人 情報処理推進機構)の事業で「未踏ソフトウエア創造事業」というのがある。2000年度よりソフトウェア関連分野で優れた能力を有する「スーパークリエータ」を発掘支援することを目的に作られたものである。その若年層向けで「未踏ユース」というのもあって、10代から20台前半ぐらいのひとたちが応募してくる。
その2003年度「未踏ユース」で、「イーサネットのソフトウェア実装とトンネリングシステムの開発」というタイトルでスーパークリエータに認定された、当時18歳の筑波大学の学生だった、登大遊君という若者がいる。その時のプロジェクトマネージャであった電通大の竹内先生がこの子は天才だと絶賛していた。年齢や能力とともにこの技術であるSoftEtherも相当話題になった。その後起業もしている。同じ時にうちの社長が準スーパークリエータに認定されたのでよく覚えている。
その、登君が大学を卒業することになって、自分のブログで面白いことを書いていたので今から書く。脳科学のことに若干ふれている程度だが、本人も脳科学を勉強し始めていると言っているので、そうしたことに関係していると思う。
「論理的思考の放棄」と題して、プログラミング作業のほぼ全てにおいて、論理的な思考は必要ないと言い切っている。作業の邪魔だとさえ言っている。
彼は、驚くことなかれ、1日に少なくとも3,000行程度、多く書くときで10,000行以上のプログラムを書くことができ、多い月で10万行/月くらい書いてしまうそうである。普通の開発者の作業能力は、1ヶ月数百行程度、多い人でも1ヶ月で3,000行程度というから、驚異の能力である。普通のプログラマーの1ヶ月分を1日で書いてしまうわけで、しかもバグの発生率も少ないのだそうだ。
この違いについて彼が言っているのは、ついプログラミングは「論理的な仕事」であるというように思ってしまい、プログラミング作業の全部において、人間の側が論理的な思考でもって作業を行ってしまうが、実はそれが非常に効率が悪い作業なのだそうだ。なぜか。彼の書いたところをそのまま引用する。
人間のアーキテクチャは感覚的思考によって動作し、その処理能力はとても高い。そのため、人間は、努力すれば、感覚的思考の機能の上に、普通のコンピュータが行っているような論理的処理を行う環境を仮想的にエミュレーションし、その上で色々な論理的プログラムを実行することができる。だが、人間の感覚的思考機能の上でエミュレー ションされた論理的処理機能は、所詮エミュレータ上のようなものなので、実マシン(人間本体)と比較すると、とても処理が遅い。オーバーヘッドが大きすぎるのである。あらゆる方式の処理を瞬時に同時実行することができる人間の頭脳がせっかくあるのに、論理的処理用の仮想環境を脳の中で構築し、その上で物事を考えるから、効率が悪くなる。
う~ん、分かるようで難しい。しかし、以前ぼくもプログラミングは理系の人じゃなく文系、例えば文学部出身のひとなんかがむしろいいプログラムを書くというようなことを言ったことがある。それは、“美しいコードだ”といった言い方もされるので、これは工学ではなく文学だ、芸術だと思ったということに通じるのではないだろうか。
こういったことって、確か将棋の羽生さんも言っていたような記憶がある。いかにも論理的であるような将棋の世界でも実は理詰めではなく感覚的にやっていたのだ。(長島茂雄もこれにあたるのかな?)でも、こういうことができるのは天才だからなのかとも思ってしまう。なぜって、「感覚的な思考」の感覚は、みんなに備わっているものだとは思えないし、みんながピカソになれないわけで、要するに“センスいいよねえ”と言われる人は少ないのである。
とここまで書いてみたら、おっと、そんなことを言っているやつに批判を浴びせたことも書いてあった。
論理的に考えないほうがうまく行くと聞いても、それが正しいかどうかやってみずに、論理的な正誤判断をしようとして、「論理的に考えた結果、まさかこんなことはないだろう」という論理的な考えに従い、いつまで経ってもやってみないということがある。それはとてももったいないことである。
まいった、ぼくも彼の言うことをよく聞いておこう。それにしても、登君の脳の中を覗いてみたいものだ。