言語進化論

Smalltalkでは"Everything is an object."で、クラスやメソッドもオブジェクトだと気がつく時が、メタプログラミングの入り口です。で、以前、Smalltalk(Squeak)の世界を支える最小のオブジェクトは何か考えて、6つのクラスとメタクラスのペアに行き着きました。まあ、実装に依って違いは色々出るでしょうね。
でも、ふと、世界を生み出したと言うには複雑すぎると感じました。知らぬ前にLISPの影響を受けたのかもしれません。確かに、プロトタイプベースのオブジェクト指向言語が簡単な言語仕様で記述できて、メモリの節約としてのクラスも記述できるなら、そちらを原始言語と考えるほうがかっこいい。きっとSelfで Smalltalk実装した人がいるんじゃないでしょうか。
お、それっぽいのがありました。
http://www.cs.ucsb.edu/~urs/oocsb/self/release/smalltalk.html
Selfの言語仕様はSmalltalkより小さいのだろうか。というところで、深入りせずにやめておいて、JavaScript勉強しよっと。
(と言いながらSelfをダウンロードしている私。)