筆者は30年以上前にトポロジーと言う概念に出会って以来、そのとりこです。前掲エントリーのゲージ問題のひももそうですが、本業のソフトウェアも立派なトポロジーです。研究課題であるひも理論と、本業のソフトウェアを結び付けている(これもひも!)のがトポロジーだったのです。以来、ずっと11次元だろうがトポロジカルなイメージにすべてをおきかえることを、30年間繰り返してきました。
本業世界で膨大なコードを書いてくると、コードが流体であるかのような感覚にとらわれます。流体とはもちろんトポロジーです。流体をどう流れるように設計するかは、ある意味でプラントエンジニアリングと、ハードウェア系エンジニアリングとは接点があるのではないかと、ひそかに(?)考えています。
で、トポロジーとしてのソフトウェアとは。
こう言う話をするときにやっぱり一番にあげないといけないのはアルゴリズムです。実はアルゴリズムとはトポロジーであったりするのです。もちろんクラシックのアルゴリズムだけではなく、GOFもトポロジーです。
ん?
意味が理解できない人は、そもそもこの世界の住民ではない。と言って追い出すつもりは毛頭ありません。ただソフトウェアとはそう言うものだと言うだけです。筆者の長男がこのソフトウェアの道を、この春から歩み始めたこともあって、これからソフトウェアを天職にしようとする後輩たちに、自分なりに獲得した「ソフトウェアとは何か」を伝えたいと、さっき、うだる暑さの中で意識もうろうでテニスをしたあと、思ったのです。
しかし、ここでアルゴリズムもGOFも解説するつもりはありません。そうではなく、もっと上位から見たソフトウェアの正体と言うものを、ここでは書いてみたいと、さっき、思ったのですが、すでにテニスの疲れと、マティーニの効果で、今日はこれにて店じまい。 KAI