最近、.NET の事情を追っかけていなかったので、今日は少し追っかけていました。最近、Java の世界では JRuby が盛り上がっていますが、.NET の世界でも動的言語の勢いがかなり強いようです。Jython や IronPython の開発者である Jim Hugunin のブログを読んでいたら、.NET における動的言語の取り扱いがなんとなく見えてきました。
Jim Hugunin's Thinking Dynamic
http://blogs.msdn.com/hugunin/archive/2007/04/30/a-dynamic-language-runtime-dlr.aspx
上記のブログで、私が気になった点を抜き出しておきます。
1. CLR(Common Language Runtime)について
上記のブログでは、CLR の利点を二つ挙げています。一つは、プログラミング言語を簡単に作れるようになったことです。これは、CLR が言語を作るうえで技術的に難しい点(GC だとか JIT だとかセキュリティモデルだとか)をすでに実装しているからだそうです。もう一つの利点は、異なるプログラミング言語をシームレスにつなげるようにもなったこととのことです。
2. CLR と DLR
IronPython で示したとおり、CLR は動的言語をよくサポートしています。さらに、CLR 上で動的言語を作りやすくするために、動的型システムなどを実装した DLR(Dynamic Language Runtime)というものを作るそうです。DLR の上で、Python、JavaScript、VB Script、
Ruby を実装するそうです。
3. DLR と Silverlight
DLR は Silverlight にも搭載されるそうです。サーバもクライアントも Ruby で書けるなら、全てを Ruby に・・・と、夢のような世界が!
※ Silverlight とは、MS 版 Flash みたいなものです。
もちろん、DLR だけであれば、Java の世界にも似たような動きはすでにあったのでそれほど驚きはしませんが、Silverlight に乗っかってくるとは知りませんでした。(って、どれだけ世情に疎いんだ私は。orz)
Kodougu を書いているときも、Ruby と JavaScript を行ったり来たりして最悪だったのですが、この世界が実現されればそういうことからも解放されそうです。
技術的なコンセプトはすばらしいので、後は政治的な理由から Linux は仲間はずれ(Silverlight は Mac の Safari にも対応するらしい)とかそういう馬鹿馬鹿しい現象がおきなければ良いのですが。。。