さっきまで、さいころTownの掲示板の、あっちゃんさんの書き込みを読んで、どんな返信をしようか考えていたのですが、

そもそも.NETにおいては、
プログラムファイルという存在が、一つのアセンブリ(というとアセンブラを連想しますが、それとは違うものです)というもので、
これは今までのような関数やコードの集まりではなく、複数のクラスや列挙型などの集まり として成り立ってるからこそ、
このような仕組みができるんだと思います。半分インタプリタ、半分コンパイル言語という曖昧な立場の強みですね。

 プラグインを実装したことを説明しようとして、こんな風に書こうとしてたんですが、そこでふと気づきました。
.NETって、今までのオブジェクト指向言語とは違う世界の言語なんですね。
 なんというか、今までのオブジェクト指向言語って、言語での開発中はもちろんオブジェクト指向ですが、コンパイルしてからはただの機械語、オブジェクト指向ではない…という感じですが、
.NET系言語では、そうではなく、コンパイルしても(実際にはコンパイルというわけじゃないですが)オブジェクト指向としての構造が保たれているのです。
なんだかこれって、すごく面白いことだと思うんです。言語としてこのような違いがある言語が生まれたというのは、すごいことなのかもしれません*1。
ただ、今は明らかに他の言語の方ができることが多いのも事実。なにしろクラスが貧弱だし、わざわざAPIをインポートしてまで使うよりかはDelphiを使った方がマシ。それを我慢してまで.NETでやろうという気は、まだまだ起こりませんね。

*1:まあ、JAVAがファイルに一個のパブリッククラスを作って、その固まりで一つのプロジェクトとしてきたことを、.NETが一つにまとめただけ…といえば、そうなんでしょうけど^^;