社会構造とプログラム

バグの無いプログラムは無い。在ったとしてもそれはプログラムと呼ぶのもおこがましい"HelloWorld"のようなものだ。
プログラムにバグが生まれる理由はいろいろとあるが、その内の一因として複雑化した設計やコードに人間が追いつかないという点が挙げられる。順次進行、状態判断、繰返し。たったこれだけの要素しかなくても、これが200も300も累積すると、それを図示するフローチャートなりUMLなりは複雑肥大化し、一目で理解することが不可能になる。そうすると作っている本人もそのコードが論理的に絶対に正しいのとは言えなくなる。一人で作っていてもそうなるのだから、プロジェクトで複数人が関わったらもう手におえない。
そのためにテストする。単体、結合、統合と各段でテストする、デバッグする。それで初めて「目立ったバグがない事」が確認される。でも実はバグは消えないし、コードがエレガントになる事はない。利便のために複雑化した代償なのだ。
社会構造も同じで、始めはツガイ、それから家族、そして親族、一族、部族、民族、国家ってな具合で複雑高度化していく。なにが複雑化するかといえば、社会を社会たらしめるシステム…立法や司法や行政が複雑化する。よりよいシステム、誰もが享受できる幸せのためのシステムが複雑高度化する。
だが複雑化するにつれて、誰も知らない抜け道やバイパスや矛盾が生まれる。それを悪用する者が生まれる。悪用とまでは行かずとも、うまくやる奴できない奴、色々と不平等が生まれてくる。
そして不思議なことに、人間社会という「システム」はテストされない。もしかしたら出来ないのかもしれないし、あるいは常にテスト中なのかもしれない。どちらにせよテストが終わらないから、穴が見つかってから塞ぐしかない。とにかく泥縄式のパッチワークを受動的に続けていくはめになる。見て見ぬふりをする事すらある。そうなったらチェルノブイリの石の棺と同じ、上塗り上塗りで原型を留めない、逆にいえば中身のない形骸化したシステムになってしまう。
そうしてシステムが不全になってから、みんな、はたと気付く。「あぁ昔はよかったな」と。それは社会が幸せを求めて続けている事、そしてそれ故に時間経過とともに複雑化していく事の証明なのではなかろうか。