代码之家  ›  专栏  ›  技术社区  ›  Brian Rasmussen

Python和Ruby应用程序将如何受到.NET的影响?

  •  5
  • Brian Rasmussen  · 技术社区  · 17 年前

    我很好奇.NET将如何影响Python和Ruby应用程序。

    用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们本质上是特定于平台的?

    如果他们不使用任何.NET功能,那么IronPython/IronRuby与非.NET功能相比有什么优势?

    7 回复  |  直到 17 年前
        1
  •  5
  •   alsuren    17 年前

    关于IronRuby,我不能说什么,但是大多数python实现(比如IronPython、Jython和PyPy)都会尽可能地忠实于CPython实现。不过,IronPython正在迅速成为这方面的佼佼者之一,Python星球上有很多关于它的流量。

    鼓励开发人员编写不同于他们在CPython中编写的代码的主要原因是缺少诸如NumPy之类的C扩展模块(这在Jython和pypypy中也是一个问题)。

    需要关注的一个有趣的项目是Ironcold,它将允许您从IronPython中调用C扩展模块。这最终意味着您可以在CPython下开发代码,使用您喜欢的任何模块,并且它将在IronPython上不经修改地运行。

    http://www.resolversystems.com/documentation/index.php/Ironclad

    因此,要回答您的问题:

    编写同样在IronPython上工作的IronPython应用程序应该很容易,但我的目标可能是反过来:也在IronPython上工作的CPython程序。这样,如果它不起作用,那么它更有可能是一个已知的bug,并且有一个已知的解决方法。

    现有的

        2
  •  2
  •   Orion Edwards    16 年前

    用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们本质上是特定于平台的?

    IronRuby目前附带了大部分核心ruby标准库,并支持ruby gems。


    人们是否选择使用CLR为他们的应用程序创建或使用扩展与人们是否为MRI创建或使用C扩展是同一个问题——一个扩展并不比另一个更具可移植性。

    这是一个次要的问题 “因为在C中创建IronRuby扩展比在C中创建CRuby扩展容易得多,人们会在应该坚持原生ruby代码的地方创建扩展吗?”

    但总的来说,我认为任何使创建扩展更容易的事情都是一个巨大的胜利。


    1. 性能:IronRuby在很大程度上已经比MRI 1.8快了,距离MRI 1.9也不远,将来情况只会有所改善。我认为python在这方面是相似的。

    2. 稳定性:虽然MRI 1.9比1.8好得多,但我认为没有人会不同意CLR比C ruby有更好的垃圾收集器和基本运行时。

        3
  •  1
  •   CalvinR    17 年前

    IronPython/IronRuby是为在.net虚拟机上工作而构建的,因此正如您所说,它们本质上是特定于平台的。

    显然,只要您的程序中不使用任何.net框架,它们就与Python和Ruby兼容。

        4
  •  1
  •   orip    17 年前

    如果您创建了一个库或框架,人们可以在.NET上使用它和他们的.NET代码。这对他们和你来说都很酷!

    在开发应用程序时,如果您随意使用.NET的工具,那么您将失去“跨平台性”,这并不总是一个问题。

    如果使用内部API包装这些使用,那么以后可以使用纯Python、包装的C(用于CPython)或Java(用于Jython)替换.NET实现。

        5
  •  1
  •   icebrain icebrain    17 年前

    根据Mono页面,IronPython与Mono的.Net运行时实现兼容,因此可执行文件应该可以在Windows和Linux上工作。

        6
  •  0
  •   pmlarocque    17 年前

    这样做的好处是,如果你是一个.Net商店,你通常会注意在客户端机器上安装正确的框架等。。。如果您想要python或ruby代码,您现在需要支持另一个“框架”,需要分发安装、解决版本问题等。。。因此有两个优点,在另一种语言中使用.Net framework power+使分发/维护尽可能简单。

        7
  •  0
  •   Matt Briggs    17 年前

    推荐文章