IronPython和IronPython Studio的优缺点

时间:2009-01-23 02:49:32

标签: python ironpython ironpython-studio

我们已准备好在公司内部将所有内容转移到Python而不是C#,我们是一家咨询公司,我们通常用C#编写小项目,我们不做大项目,而且我们的工作更多地基于复杂的数学模型而不复杂软件结构。所以我们相信IronPython对我们来说是一个很好的平台,因为它在Windows上提供标准的GUI功能,并且可以访问所有.Net库。

我知道Ironpython工作室不完整,实际上我很难添加我的参考资料,但我想知道是否有人可以为我们列出这种迁移的一些优点和缺点,考虑到Python代码更易于阅读我们的客户和我们通常提供概念验证原型而不是全功能代码,我们的客户通常会自行实施应用程序

3 个答案:

答案 0 :(得分:17)

我的公司Resolver Systems开发了可能是IronPython中最大的应用程序。 (它叫做Resolver One,它是一个Pythonic电子表格)。我们还主持了Ironclad项目(在IronPython下运行CPython扩展),这很顺利(我们计划很快发布一个Resolver One& numpy的测试版)。

我们选择IronPython的原因是.NET集成 - 我们的客户希望在Windows上实现100%集成,而现在最简单的方法就是.NET。

我们在Visual Studio中设计我们的GUI(没有行为),将其编译成DLL并从IronPython中继承它以添加行为。

我们发现IronPython在某些情况下更快,而在其他情况下则更慢。但是,IronPython团队非常敏感,每当我们报告他们修复它的回归时,通常会将其反向移植到bugfix版本。如果您担心性能问题,可以随时在C#中实现关键部分(我们还没有这么做)。

如果你有使用C#的经验,那么IronPython对你来说很自然,比C#更容易,特别是对于原型。

关于IronPython工作室,我们不使用它。我们每个人都有自己选择的编辑器(TextPad,Emacs,Vim& Wing),一切正常。

答案 1 :(得分:8)

你有很多理由想要从C#切换到python,我最近自己做了。经过大量的调查,以下是我坚持CPython的原因:

  • 表现:有一些文章指出,总有一些情况下铁蟒比较慢,所以如果性能问题
  • 拿原文:很多人认为新功能等总是首先集成在CPython中,你必须等到它们在ironpython中实现。
  • 许可:有人认为这是一个定时炸弹:没有人知道如何在不久的将来改变铁质/单声道的许可
  • 扩展:python的优势之一就是CPython可以使用的数千个扩展,正如你提到的数学问题:numpy可能是一个合适的快速包,可能无法在IronPython下按预期运行(尽管{{ 3}})
  • 特别是在Windows下,你有一个带有wxPython的原生GUI工具包,在其他几个平台上看起来也很棒,还有pyQT和很多其他工具包。他们有很好的设计师,比如wxGlade,但这里的VisualStudio C#Designer更容易使用。
  • 平台独立性(如果这是一个问题):CPython被移植到很多平台上,而ironpython只能在主要平台上使用(最近读过一个开发人员很遗憾他无法单声道运行他的AIX)

Ironpython是一项伟大的工作,如果我有一个特殊的.NET库我将不得不使用,IronPython可能是选择,但对于一般目的问题,人们似乎建议使用原始的CPython,除非Guido改变主意

答案 2 :(得分:6)

你描述事物的方式,听起来你是公司为了Python而转向Python简单。您是否有某些特定原因要使用Python?是否需要更具动态性的语言?功能编程是否会对你有所帮助?如果你在C#中拥有一套非常好的工具,为什么还要转换呢?

如果您正在进行切换,则可能需要考虑从标准Python开始,除非您特别依赖于.NET库。您可以使用许多不同的框架来编写跨平台GUI,例如wxPython,pyQt等。也就是说,Visual Studio有一个非常出色的GUI设计器,几乎可以用于创建Python窗口布局的任何工具。