僕がコンピュータの勉強を始めて間もない頃、「人工知能」という一種のバズワードが流行していた。当時の人工知能は今のソフトウエア技術の水準からすれば未成熟なんてレベルにも達しているものではなく、今考えればRDBとSQLの組み合わせよりも幼稚なことしかできない知能であった。数値ではなくテキストや論理を扱うLispとかPrologのような言語が「人工知能言語」としてもてはやされ、新しいプログラミングパラダイムとしてのオブジェクト指向が芽を出した頃だった。僕はこのバスワードに夢中になって、LispやPrologの書籍を読み漁っていた。人工知能というキーワードに関係する書籍はかたっぱしから読んだりもしていた。誰でもコンピュータを使える時代ではなく、言語も自由に手に入る時代ではなかったから、そのころはプログラミングよりも本を読んでいろいろ考えを巡らせることが主体の勉強だった。そんな僕の頭にふと思い浮かんだのが、以下のような疑問だった。「間違えるプログラムは作れるのだろうか?」もちろんプログラミングされた「間違い」は間違いのうちに入らない。それはプログラミング的に正しい答えを出しているだけのことだ。人間のように間違えるプログラムとはどんなものなのだろう?と思ったのだ。この疑問は今でも頭の隅にあるのだが、要するにプログラムの一種の限界に対する認識なのだと思う。この疑問を言い換えると「計算可能」ということになる。現時点でのITがソフトウエアの囲みの中にいるうちはこの「計算可能」な世界に止まることになってしまう。バーチャルな世界にのみ突き進もうとするIT世界はそこから逃れることはできない。「計算可能」な世界から逃れるためにはどうしたらよいのか。それはITと現実の世界との接点をもっと密接にし、ソフトウエアの世界で常識となっている限界に甘んじることなく現実世界を拡張するITを目指していくことなのだろう。いう意味でITアーキテクトは「計算不可能性」を設計する存在でなくてはならない。技術者は自己完結しがちで、現実との接点が希薄になる傾向がある。