コンピュータとして生きる

市村剛大



汎用コンピュータ、そしてプログラムは、人間の行動や思考をモデル化したものと言えるだろう。コンピュータの仕組みを作ったフォンノイマンなどの人々がどこまで意識していたかは不明だが、結果として現代のコンピュータは人間の思考活動とどこか似た動きをしているように思える。例えば人間は何か考えごとをするとき、使い捨てのメモ用紙や黒板に一時的に思考過程を書きとめ、出た結論は保存用のノートに書く。これはコンピュータのメモリとストレージに対応していると考えられるだろう。

プログラム言語も時代につれて人間が読みやすいよう、つまり人間の言語に近いものへと進化していった。Pythonなどは英語の文章として意味が通るようなコーディングになることもある。元々はただの計算機とその入力として生まれたコンピュータ、プログラミングは、人間の仕事を代替できるよう、より人間の行動や思考に近い動きをするよう変化していっていると言えるのかもしれない。コンピュータ、プログラミングが人間の行動や思考をモデル化したものだとすれば、それは人間の行動や思考の過程を、一般化したものと捉えることもできるのではないだろうか。さらには、自らの行動や思考を優れたコンピュータ、プログラミングを参考に改善する、という試みもあっても良いのではないだろうか。

こういうことを言うと、もうコンピュータがあるのだからコンピュータと同じ考え方をするのは存在価値がない、だったり、コンピューターには意思がないからそんなことをしたら意思がない人間が生まれるだったりと抵抗感を露わにする人が多いだろう。だが自分からするとそういう人こそコンピュータをどこかで人間と同等な思考ができる存在として認めてしまっているのである。猫のように行動する、という言葉にそんなことをしたら・・・と思わない人は猫をみくびっているのである。自分は猫もコンピュータも、行動や思考を参考にしたくらいでは人間の何かが揺らぐようなことはないだろうと思う。それに、鉄は熱いうちに叩け、カエルの子はカエル、など人間は無機物有機物問わずさまざまなものから教訓を得ているのだ。歴史が浅いとはいえ、そろそろ工業の産物からも教訓を得ても良い頃ではないだろうか。FIXMEは早いうちに潰せ、DOMの子はDOM、である。

少し話が逸れたが、ではコンピュータやプログラムのように行動・思考するとは具体的にどういう感じになるのか、一つ考えてみたい。

コンピュータはとても集中力が高い。動画をエンコーディングしている最中に勝手にYouTubeを開いたりしないのでとても偉い。プログラムの話になるが、シングルスレッドで動作するプログラム言語はタスクをある決まった順序でこなす。同期的と呼ばれるタスクであれば、与えられた順番にこなすのだ。(CPUの中の処理の話などをすると、正確ではないきもするが、置いておいこう。)人間(というか自分)はタスクが複数あるとき、優先度や依存などをもっともらしく考えてしまうものだ。だが実は古い順番に一個一個をなるべく早く終えることを考えてやっていくのが一番早かったりするのではないだろうか。タスクが増えてくると、もっともらしく調整した結果やり漏れてしまうタスクなどもあったりする。実は重要でないと思っていたタスクを先にやったことで、気づきや成長があり、重要で時間がかかると思われていたタスクがサクッと終わる、といったこともあるだろう。TODOリストをもっともらしく並べ替えるのはやめて脳死で古い順にやってみよう、というのがコンピュータから得られた教訓ということになる。

この例は少しインパクトが弱いが、実際にプログラミングをしていると自分の行動の教訓になるんではないかと思うことがよくある。が言語化するのは難しいからここではやめておく。とりあえず、こんな考え方はどうだろうか、という提案であった。(終)

目次へ