近所のスーパーで、これを買っておくべきか、いや買わざるべきかと逡巡していた。もしかしたらそのうち必要になるかもしれないし、まったくそんなことはないかもしれない。 しばらくうろついた挙句、買わずに出てきた。
似たようなことは他にもある。この技術を勉強しないと将来損するかもしれない、とか、この行動を取らないと政治的に良からぬことになるのではないか、とか、そうした将来への悩みの種はいくらでもある。
まあしかし人間は神でもオラクルでもないので、将来を見通すことはできない。しかしソフトウェアエンジニアの性なのか、一般に「長期的に耐えるシステムを作る」ことは良いと考えてしまい、取り越し苦労をしてしまいがちだ。取り越し苦労というのは、不確実な状況下で最適化をすることだ。言い換えると早すぎる最適化のことである。
早すぎる最適化は、早すぎるがゆえに明確な指針を持たず、明確な理由付けもなく、つまるところ明確な内容に欠けてしまう。なのでこれを作り込んでしまった張本人すら、これが早すぎる最適化だと気付かないことがある*1。
早すぎる最適化が北極にあるなら、南極にあるのは局所最適だ。局所最適はエンジニアの鼻つまみ者、とりあえず局所最適と言ってしまえば何かを指摘した気持ちになってしまうものである。もちろん仕事でソフトウェアエンジニアリングをしているなら、これは避けるに越したことはない。それを行っても何も効果がないし、ソフトウェア自体を組み換えることには労力が発生するし、問題領域はある程度見切ることができるからだ。
他方で、暮らしで最適化を追求して社会の勝ち組、人生の勝者になるのは困難だ。ここでのゴールは、自分の人生に責任を持ち、それを自分で演出し、満足して死ぬ、ということである。まずそもそも自分の暮らしと人生には不確定要素が時間軸にまたがって存在しており、死ぬ瞬間になんらかの効用が最大値を記録する、という設計をすることはできないからだ。そして、暮らしはそれを演出することで自分にとっての意味が生じるものなので、局所的に何かに集中しても充分な良さが返ってきてくれる。ソフトウェアと違って、自分の行動を変容するのはいとも容易い。人生でかかわる物事の問題領域はあまりに広い。カオスそのもの。
カオスは日増しによりカオティックになっていく。マスメディアが衰退し、情報の流路が乱流を為し、コミュニティの泡によって見通しというものが不透明になっていく。そうか、世界はこういう感じで動いていくのか、という手触りを誰も持てないまま、技術がどんどん加速していき、宇宙が拡大し、観測可能な宇宙がどんどん狭まっていく。
流行りのアニメを見ることは将来の自分にとって最適ではないかもしれないが、すくなくともその瞬間の自分とシーンにとって最適であればいい。そういう気持ちになってきた。
*1:何を隠そう、これは自分のこと