IronPython如何从python.org堆叠到Python的默认Windows实现?如果我正在学习Python,我是否会使用IronPython学习一种微妙的不同语言,以及我将不使用哪些库?
或者,IronPython的任何专业人士(不包括.NET IL编译类)是否会使其更具吸引力?
有许多重要的区别:
与其他.NET语言的互操作性.例如,您可以使用IronPython应用程序中的其他.NET库,或者使用C#应用程序中的IronPython.随着.NET 4.0中对动态类型的更大支持,这种互操作性正在增加.有关此很多的细节,看到这 2个演讲在2008年PDC.
由于缺少GIL,更好的并发/多核支持.(请注意,GIL不会抑制单核机器上的线程化 - 它只会限制多核机器的性能.)
使用Python C扩展的能力有限.在铁甲工程对改善该---他们已经得到了几乎使显著进步NumPy的工作!
减少跨平台支持; 基本上,你有CLR和Mono.然而Mono令人印象深刻,并在许多平台上运行---他们已经实现了Silverlight,称为Moonlight.
虽然我没有仔细研究过这方面的改进表现.
功能滞后:由于CPython是参考Python实现,它具有"最新和最好"的Python功能,而IronPython必然落后.很多人都没有发现这是一个问题.
编写代码的方式有一些细微差别,但最大的区别在于您可用的库.
使用IronPython,您可以使用所有.Net库,但是我认为还有一些"普通"python库没有移植到.Net VM.
基本上,您应该期望语法和惯用语是相同的,但是如果您尝试将其提供给"常规"Python解释器,则为IronPython编写的脚本不会运行.反过来可能更有可能,但我也会发现你会发现差异.
嗯,它通常更快.
不能使用模块,只有库的子集.
这是一个差异列表.