InfoQ

新闻

动态语言运行时公布

作者 Jonathan Allen译者 Jason Lai 发布于 2007年5月3日 上午5时0分

社区
.NET,
Ruby
主题
.NET框架,
动态语言
标签
CLR,
Visual Basic.NET,
RubyCLR,
IronRuby,
Mono,
IronPython,
DLR

微软刚刚宣布他们正在为公共语言运行时构建一个新的扩展,成为动态语言运行时(Dynamic Language Runtime,DLR)。设计该扩展的原因是为了保证动态语言之间的互操作性,能和原有CLR支持的静态类型语言间的互操作性一致。

目前,动态语言的互操作性存在的最大问题是缺乏统一的对象模型。即便运行在同一个底层平台(如CLR或JVM)的情况下,每个动态语言都必须独立扩展自身的类型系统,以支持在运行时修改类。这些实现生来就互不兼容,使得在IronPython和RubyCLR之类的语言共享对象成为一件困难,甚至不可能的事情。

动态语言运行时提供了一个共享的动态类型系统,希望能在CLR平台上削除Ruby和Python之间存在的壁垒。理论上,用不同语言编写的不同程序中存在的对象是可以被自由共享的。

除了动态类型系统(Dynamic Type System)以外,DLR计划提供其它功能,来使开发新的语言和将已有语言移植到CLR的变得更加容易。Jim Hugunin写道

DLR所要做的是为你提供你喜欢的语言的最佳体验——对语言本身、其上优秀的工具、性能,以及和丰富的程序库集平台进行无缝整合都是一样的。DLR带来的核心优势就是共享,它使得语言实现者共享标准特性,而无须从头开始从新构建它们。这使得他们能够专注于研究语言的新特性,使一门语言变得更加独一无二,而不是在重新发明另一个GC系统上劳神费力。

此外,Jim还列出了四个在DLR初期就将支持的语言。一旦它们完成并且整个平台稳定下来之后,微软将配合希望支持DLR的其它语言开发人员开展工作。

  • Python
  • JavaScript(EcmaScript 3.0)
  • Visual Basic
  • Ruby

之前微软已经声称VB将引入更多的动态特性,但之前从未有过任何暗示,说VB将达到Python或者Ruby的程度。这对VB意味着什么,目前尚无从知晓。

值得特别注意的是,DLR是以开源的形式发布的。正如Miguel de Icaza所说的,对于Mono团队来说,这是一条利好消息。

DLR是根据微软许可授权(Microsoft Permissive License,MsPL)的条款发布的,该许可无论从哪个角度说都是一项开源许可。这就意味着我们可以将DLR做为Mono的一部分使用和发布,而不需要从头开始构建它了。微软下了一着妙棋。

查看英文原文:Dynamic Language Runtime Announced

没有回复

回复

深度内容

Flex与JSON及XML的互操作

平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。

用Qi4j进行面向组合编程

本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。

系统开发——新学科,新教育

一门新的计算机学科——“系统开发”,强调人性化、匠艺、设计、创意、创新和新事物的涌现,并建议用被称为“bottega”的工作室替代乏善可陈的教室。

图书聚焦:Visual Studio 2008 揭秘

Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。

BPEL为何不是BPM的圣杯?

Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。

基于范型的多语言编程

你是否仔细思考过,为什么人们总在讨论“要正确的语言做恰当的事情”?在这篇文章中,Sadek Drobi向你解释了为什么应该在系统内部混合使用多种语言。

采访与书摘《Pro Web 2.0 Application Development with GWT》

Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。

时刻准备着,迎接IT业的春天

我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!