目前也能够在.Net Framework上执行动态语言,诸如Ruby、Perl、PHP和Python。然而微软花了几个月的时间,力图让.Net对于动态语言开发者来说更具有吸引力。
“目前有一些Ruby CLR项目,但是它们都还没有完成,而且它们非常不同。” Dion Almaer对Ajaxian.com表示。“Ruby社区都会欢迎可靠的CLR执行的。Ruby是我喜欢的语言。我爱它。用它来开发现在只能是一种梦想。现在的Ruby执行太慢,使用起来非常痛苦。JRuby开始在JVM上运行良好,如果在CLR上也能这样就太棒了。”
“关键的问题是Rails能运行在它上面吗?”如果他们在这个选项上打了勾,那就甚至应该有更多的宣传。Almaer继续表示。“PHP?则没有那么多喧嚣。PHP目前运行很好,所以对它不像对Ruby的需求。”
最近几年,微软雇佣了两名动态语言先锋——Jim Hugunin(IronPython的作者)和John Lam (RubyCLR的创造者)。在去年微软组织的Lang.Net论坛上,Hugunin、Lam和其他微软的官员们毫不犹豫地表示了微软对将.Net打造成一个更好的动态语言平台的兴趣。
Hugunin告诉Lang.Net与会者们微软计划在CLR基础上发布一套库,这将为动态语言提供更好的兼容性。在eWEEK关于该活动的一篇报道中,Hugunin是这样解释微软的意图的:
“我们正在努力做的,并不是做一个动态语言规范,而是提供一个动态语言库,并指导如何去使用它,因为我坚信如果你能够在代码而不是文本中找到什么的话,那么这就是最好的方法。所以我们试图尽可能多地在代码中找到这样的指导方针。”
eWEEK还引用了Lam在同一次会议上的另外一句话。他相信“相当大一部分的动态语言很相似。”所以支持的整数长度就变成了Python和Ruby都要支持的问题,他表示,“这些事情你都必须自己完成。”
Hugunin是2004年加入微软的,他在开发IronPython的过程中,不得不自己在.Net的核心完成大量的Python和Common Language Runtime(CLR)集成的工作。当微软在去年发布IronPython 1.0的时候,Hugunin回忆道:
“IronPython努力同CLR紧密结合在一起。这是件了不起的事情,因为它让我们可以利用其他语言中高度调和的组件,例如just-in-time compiler、垃圾收集器、调试支持、反射、动态载荷等等。这种集成对于IronPython开发者来说也非常有价值,因为这让他们能够用他们的Python代码,很容易地使用任何或者所有为.NET而建设的库。”
一名微软发言人拒绝提供任何关于微软所谓的DLR的信息或者时间计划。
有没有Ruby或者其他动态语言开发者对微软提供的这种.Net层感兴趣呢?这样一个层的存在是否让你更有兴趣为Windows开发——微软还可能瞄准了其他什么平台吗?