在语言兼容性方面,Python 的 C 实现(来自 python.org 的主要版本)和 IronPython 之间有什么关系?它是同一种语言吗,我是通过学习一种语言,就能顺利过渡到另一种语言,还是从 Java 到 JavaScript?
相同的语言(目前为 2.5 级别——IronPython 还不是 2.6 AFAIK)。
IronPython 库的当前状态是什么?它落后于 CPython 库多少?我最感兴趣的是 numpy/scipy 和 f2py。IronPython 可以使用它们吗?
标准库在今天的 IronPython 中处于很好的状态,巨大的第三方扩展,就像你提到的那些远非如此。 由于ironcladnumpy
,开始变得可行,但不是 IronPython 的生产级别(正如, &c 的 0.5 版本号所证明的那样)。它庞大而庞大,充满了 C 编码和 Fortran 编码的扩展:我没有第一手经验,但我怀疑在除 CPython 之外的任何实现下,只有不到一半可以运行,更不用说完美运行了。numpy
ironclad
scipy
从 Python 和其他方式访问 VB 的最佳方式是什么(确切地说,将一些 python 库连接到 Excel 的 VBA)?
IronPython 应该通过 .NET 方法使其变得更容易,但通过win32all中的 COM 实现,CPython 并没有那么远。
最后但并非最不重要的一点是,一定要看看IronPython in Action这本书——正如我每次推荐它时所说,我是有偏见的(因为我曾是它的技术评论员,并且与一位作者建立了友谊)但我认为这是客观上是 .NET 开发人员对 Python 的最佳介绍,同时也是 Pythonistas 对 .NET 的最佳介绍。
如果您需要所有scipy
(哇,但那是一些“文艺复兴时期的人”计算科学家!-),CPython 确实是当今唯一真正的选择。我确信其他大型扩展(比如 PyQt 或 Mayavi)也处于类似的状态。然而,对于与当今 Windows 的深度集成,我认为 IronPython 可能具有优势。对于通用用途,CPython 可能更好(尤其是由于 2.6 中的许多新功能),除非您真的热衷于在单个进程中使用多个内核,在这种情况下 IronPython(即 GIL-更少)可能再次证明是有利的。
一种或另一种方式(甚至通过 Jython 在 JVM 上,或通过 PyPy 在特殊环境中)Python 无疑是一种很棒的语言,无论您为给定的应用程序选择什么实现!-) 请注意,您不需要坚持使用一个实现(尽管您可能应该选择一个版本——2.5 以最大限度地与 IronPython、Jython、Google App Engine 等兼容;如果您不关心任何部署选项,除了“我自己的机器上的 CPython 或虚拟控制”;-)。