我知道IronPython是.NET平台上的Python实现,就像IronRuby是Ruby的实现一样,F#或多或少都是OCaml.
我无法理解的是这些语言是否更接近他们的"祖先",或者更接近C#这样的速度.例如,IronPython是否以某种方式"编译"到C#使用的相同字节码,因此运行速度一样快?
IronPython和IronRuby构建在DLR(动态语言运行库)之上 - 并且可以动态编译为CIL(.NET使用的字节码).它们比C#慢,但比非.NET的同类产品更快.据我所知,没有任何体面的基准,但你会看到差异.
IronPython实际上是最快的Python实现.对于某些"最快"的定义,至少:例如,与CPython相比,CLR的启动开销很大.此外,优化编译器IronPython在代码执行多次时才真正有意义.
IronRyy有可能成为同样快速的IronPython,因为许多使IronPython变得快速的有趣功能已被提取到动态语言运行时,IronPython和IronRuby(以及托管JavaScript,动态VB,IronScheme,VistaSmalltalk等)建成了.
一般而言,语言实现的速度几乎与实际语言特征无关,并且更依赖于进入它的工程人员年数.IOW:动态与静态并不重要,金钱也是如此.
例如,Common Lisp是一种比Ruby或Python更具动态性的语言,但是有一些Common Lisp编译器甚至可以让C运行它的钱.Good Smalltalk实现的运行速度与Java一样快(因为主要的JVM,Sun HotSpot和IBM J9,实际上只是略微修改过的Smalltalk虚拟机)或C++,这并不奇怪.在过去的6个月中,主要的JavaScript实现(Mozilla TraceMonkey,Apple SquirrelFish Extreme和新版本的Google V8)已经取得了巨大的性能提升,10倍甚至更高,使JavaScript与优化C.