世界について

僕は世界について考えるのが好きなのですが、世界を扱えるような枠やタームを持っていないので、最近はコンピュータやプログラムに模して考える事が多いです。特に、オブジェクト指向言語は世界を考える時にしっくり来ます。これは元々オブジェクト指向言語がシミュレーションのために利用されていた事を考えると自然な事であるように思います。ちなみに、僕が言う世界ってのは宇宙より大きいので、もう、全てについてです。他の宇宙とかも含めて。世界一高い山、とかって時の世界ではないです。
オブジェクト指向言語はヒープで状態を管理するのが凄い所だと思う。コンピュータはガーガーピコピコって一生懸命演算して世界の真似をしてるんですが、そういう演算、処理とは切り離された所で世界の状態を管理しているのが良い。複数の処理、視点から同じ状態を参照するので、当然参照が必要だし、参照されるオブジェクトは勿論同じ物なので、これは世界の有り様に近くて素晴らしい。だから、非オブジェクト指向言語でも実際のファイルや、ユーザとのインタフェースに関わる部分には特別な機構が必要になるのだと思う。この辺は完全にフィーリングで書いてますのでよろしく。
ヒープで状態を管理するのは面倒。スタックにあるものは処理から抜けたら消えちゃうので楽チンなんですが、ヒープにあるのは全部残ってしまう。世界は無限の演算能力を持ってるのでそういうのがあっても全然平気なんですけど、コンピュータはその辺かなり劣っているのでそういうのはゴミ集めして消してしまうわけなんですよ。そういう意味でコンピュータ的には誰も見ていない木は倒れない。というか、僕が見ていない木は倒れない。ルート参照は僕参照だけなので。保守的なマークアンドスイープで世代別にやってます。そういうゴミ集めされて折り畳まれちゃったところはカオスでやるのが良いと思います。あと、継承、っつーか多態、動的結合は便利だけどどうでも良いと思います。テクニックなので。継承は分類学*1とか言語と関係が深いと思います。でもそういうのには余り興味が無いので、やっぱ世界がどうなっているかの方が気になるので長生きしたい。

*1:そんな学問があるなんて知らなかったよ