Fork me on GitHub

Dynamic Language Runtime 微软打出的王牌

      Dynamic Language Runtime(DLR)。DLR和IronPython全部开源,如果你微软这样的动作吃惊,请看看Microsoft 的 OpenSource Licence,可以到codeplex下载。新的动态语言运行时(Dynamic Language Runtime,DLR)向CLR中加入了一小部分核心特性,使之得到显著改善。它向平台中加入了一系列明确为动态语言需求所设计的服务,包括同享的动态类型系统、标准托管模型(Standard Hosting Model),以及轻松生成快速动态代码的支持。有了这些新增的特性,要在.NET上构架高质量的动态语言实现就变得信手拈来了。更重要的是,这些特性使得所有使用DLR的动态语言可以随意与其它动态语言,以及平台上现有强大的静态语言,比如VB.NET和C#,共享代码。有了DLR,在.NET上开发动态语言的工作可以简化许多。目前DLR支持Python, Ruby, ManagedJScript ,和VB,这里的ManagedJScript 不是浏览器上微软的JScript哦,使基于DLR实现的Ecma Javascript,Microsoft ASP.NET Futures May 2007 有IronPython for asp.net和ManagedJScript  for asp.net 都是基于DLR实现的。Mono之父Miguel de Icaza 参会微软Mix 07大会,估计不久就开始忙活DLR在Mono上的支持,DLR是开源的,这么好的东西哦,有兴趣看看Silverlight for linux 和 DLR(Dynamic Language Runtime),微软的CLR已是一流的运行时,有一流的GC,高效的JIT,完整的类型系统,和相对强健的安全机制。DLR在CLR的基础上又加入对动态类型的支持。在DLR上开发的动态语言可以共享这些基础功能。这非常重要。光开发高质量的GC和JIT就需要好几代程序员和计算机科学家忘我工作,而现在牛人们不用再为这些基础设施耗费额外的精力,可以专注于语言的设计。DLR上的动态语言编译成IL的字节码后,可直接在CLR上运行。动态语言们能够共享.NET庞大的类库。Python/Ruby+LINQ,多爽啊!一门语言光有炫目的功能是不够的。语言背后的平台本就是语言的一部分。功能完善、运行稳定的一整套类库向来是做大型系统开发的老大们考虑的重点。而流行类库背后是一大票程序员。有了数量,才有质量。有共同的类库分享,才有很多人一起分享心得。人多了,社区才热闹,遇到问题才有人帮忙解决。

A Dynamic Language Runtime (DLR)

First DLR talk video from MIX
The One True Object (Part 1)
The One True Object (Part 2)

PS: John Lam (IronRuby的作者)的blog一篇Silverlight: do you love it or hate it? 可以看到很多Silverlight的资源,社区的反应。

posted @ 2007-05-06 09:21  张善友  阅读(3927)  评论(3编辑  收藏  举报