天天看點

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的資源,社群的反應。

自由、創新、研究、探索……

繼續閱讀