我们已经准备好在我们公司将所有东西都转移到Python而不是C#,我们是一家咨询公司,我们通常用C#编写小项目,我们不做大项目,而且我们的工作更多地基于复杂的数学模型而不是复杂的软件结构.所以我们相信IronPython对我们来说是一个很好的平台,因为它在Windows上提供了标准的GUI功能,并且可以访问所有.Net库.
我知道Ironpython工作室不完整,事实上我很难添加我的参考资料,但我想知道是否有人可以为我们列出这种迁移的一些优点和缺点,考虑到Python代码更容易被我们的客户阅读和我们通常提供概念验证原型而不是全功能代码,我们的客户通常会继续自己实施应用程序
我的公司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),一切正常.
你想要从C#切换到python有很多原因,我最近自己做了.经过大量的调查,以下是我坚持CPython的原因:
性能:有一些文章指出,总有一些情况下铁箍速度较慢,所以如果性能问题
拿原文:很多人认为新功能等总是首先集成在CPython中,你必须等到它们在ironpython中实现.
许可:有人认为这是一个定时炸弹:没有人知道在不久的将来,铁箍/单声道的许可可能会如何变化
扩展:python的优点之一就是CPython可以使用的数千个扩展,正如你提到的数学问题:numpy可能是一个合适的快速包,可能无法在IronPython下运行(尽管Ironclad)
特别是在Windows下,你有一个带有wxPython的原生GUI工具包,在其他几个平台上看起来也很棒,还有pyQT和很多其他工具包.他们有像wxGlade这样漂亮的设计师,但这里的VisualStudio C#Designer更易于使用.
平台独立性(如果这是一个问题):CPython被移植到很多平台上,而ironpython只能在主要平台上使用(最近读过开发人员很遗憾他无法在他的AIX下运行单声道)
Ironpython是一项伟大的工作,如果我有一个特殊的.NET库我必须使用,IronPython可能是选择,但对于一般目的问题,人们似乎建议使用原始的CPython,除非Guido改变主意.
你描述事物的方式,听起来你是公司为了Python而转向Python简单.您是否有某些特定原因要使用Python?是否需要更具动态性的语言?功能编程是否会对你有所帮助?如果你在C#中拥有一套完美的工具,为什么还要烦恼切换呢?
如果您正在进行切换,则可能需要考虑从标准Python开始,除非您特别绑定到.NET库.你可以使用许多不同的框架来编写跨平台的GUI,比如wxPython,pyQt等.也就是说,Visual Studio有一个非常优秀的GUI设计器,几乎可以用于创建Python窗口布局的任何工具.