代码之家  ›  专栏  ›  技术社区  ›  johnc

Python还是IronPython

  •  30
  • johnc  · 技术社区  · 15 年前

    或者,IronPython(不包括.NETIL编译类)是否有任何优点可以让它成为更具吸引力的选项?

    8 回复  |  直到 15 年前
        1
  •  32
  •   zweiterlinde    15 年前

    1. 与其他.NET语言的互操作性。例如,您可以从IronPython应用程序中使用其他.NET库,或者从C#应用程序中使用IronPython。随着.NET4.0对动态类型的更大支持,这种互操作性正在增强。有关这方面的详细信息,请参阅 these two 在PDC 2008上的演讲。
    2. 使用Python C扩展的能力有限。这个 Ironclad 该项目正朝着改善这一点迈出重大步伐——他们几乎已经取得了进展 Numpy 工作
    3. Mono . 不过,Mono给人留下了深刻的印象,它可以在许多平台上运行——他们已经实现了Silverlight,名为 Moonlight .
    4. 特性滞后:因为CPython是参考Python实现,所以它具有“最新和最好的”Python特性,而IronPython必然落后。许多人并不认为这是一个问题。
        2
  •  13
  •   Epcylon    15 年前

    在编写代码的方式上有一些细微的差别,但最大的差别在于可用的库。

    有了IronPython,您就拥有了所有可用的.Net库,但我认为这是以牺牲一些尚未移植到.NETVM的“普通”python库为代价的。

    基本上,您应该期望语法和习惯用法是相同的,但是如果您尝试将为IronPython编写的脚本提供给“常规”Python解释器,它将无法运行。另一种方式可能更可能,但我认为你也会发现不同之处。

        3
  •  5
  •   TraumaPony    15 年前

    嗯,一般来说比较快。

    无法使用模块,并且只有库的子集。

    Here's a list of differences.

        4
  •  3
  •   John D. Cook    15 年前
        5
  •  2
  •   Christian Witts    15 年前

    Python就是Python,唯一的区别是IronPython被设计为在CLR(.NET Framework)上运行,因此,可以交互操作和使用用其他.NET语言编写的.NET程序集。因此,如果你的平台是Windows,你也使用.NET或者你的公司,那么应该考虑IrPython。

        6
  •  2
  •   Rafał Dowgird    15 年前

    在标准的Python实现中,线程在每个对象访问时获取GIL。这限制了并行执行,特别是当您希望充分利用多个CPU时,这一点尤为重要。

        7
  •  2
  •   Andy Dent    15 年前
        8
  •  0
  •   Christopher Mahan    15 年前

    这还取决于您是否希望代码在Linux上工作。不知道IronPython是否能在windows平台以外的任何平台上工作。