遅延最適化社会

しみじみ感動するのは「こんなにいい加減でも先進国が運営できるんだ」ということ。そして、このいい加減さで社会がちゃんと機能するのは「現場レベルでの個々人の独自の判断」があるから。

このエントリは、最後に「アメリカいい加減話」リンク集もついていて、そこも含め必読。

「現場レベルでの独自の判断にまかせ、なるべく一般解を導かない」という、アメリカ社会全体を貫く特質は重要だと思う。

日本は、その逆を行っていて、言葉の使い方からマナーから教育から冠婚葬祭から電話のかけ方からスピーチの仕方から、いろんな所に最適解が最初から用意されていた。だから、現場レベルの個別の判断がなくても回るように社会ができていた。

しかし、最適解は、状況が変わると往々にして全く使えない解になってしまう。

ソフトウエア開発でも、「いつどの程度最適化するか」というのは永遠の難問である。

多分この問題は、Lisperの臆病さに根ざしているような気がします。ここで言う臆病さとは「いつだって、予見不可能な問題に出会うことがあり得る」という警戒心です。「今理解されている範囲の問題に最適化した構文を導入して、もしそれが新たに現れた問題に対応できなかった場合、困るじゃないか」、ということをつい考えてしてしまうのがLisp脳の典型的症状なのです。

プログラマの中でもとびきり頭のいい Lisper と呼ばれる集団がいて、この人たちは、普通のプログラマと違うモノの考え方をする。この文章は、そういう Lisper 独特の思考法の代表例である、「S式」という特殊なプログラムの書き方の意味について解説しているものだ。

上で述べた、Lisperの「未知の問題への適応性を最重視する」というマインドからの派生なんですが、Lisperは「よく知らない人間の直観」というものをあまり信用していない気がします。/どんな記法が自然に感じられるかを含めて、言語を深く知らない人が「自然に」期待する構文やセマンティクスというのは、その人がそれまで触れて来た他の言語や記法、つまり既知の世界の中での一貫性を保つように培われてきたものです。(中略)結局、何が「自然」なのかは、その問題を深く理解するまではわからないし、その問題を深く理解するためには記述してみなければならない、従って、「自然な記法」というのをアプリオリに定義することはできない、というのがLisperの立ち位置のように思えます。

「自然なふるまいは、個別のケースの中にしかなくて、最適な一般解はめったに存在しない」というこの発想が、アメリカ社会の成り立ちと似ているような気がする。

本当に複雑な問題と毎日格闘していると、結局、そういう結論に至るのではないだろうか。

未来に発生する「ノード」、「使い方」、「応用への提案」等を「受け入れる」為にインターネットは大きなコストを払っているのです。

「インターネットを改良する」という話は、未来の為にみんなが払っているそのコストを削減しようという話で、それによって、今すぐ困ることはなくても未来が閉ざされ未来が固定されてしまいます。

インターネットの通信手順も同じ哲学で設計されている。

IPというインターネットの基盤となっている通信手順は、アメリカ人のようにいい加減だ。忙しくなったら好きなだけパケットを捨てていいし、捨てたことを誰かにいちいち報告しなくてもいいことになっている。よほど機嫌がいい時だけ、ネットワークは気紛れのようにデータを向こう側に届ける。両端にある端末とサーバが四苦八苦して、いい加減なネットワークの中から、ちゃんとした文書を拾いあげて、あなたの目の前に提示しているのだ。

こんなにいい加減でも先進国が運営できる秘密、こんなシンプルな記法でも大半の問題を記述できる秘密、こんなデタラメな通信でも買い物や送金ができる秘密。

その鍵は全て「遅延最適化」である。

最適化は慎重に、具体的な問題を見てから範囲を限定して行うべきであるというこの知恵が、人間がかかわる問題は人間の脳より多様で複雑である、ということを示していると思う。