查看这两个项目后,发现两者非常相似。两者都运行在 CLI 之上,都具有 python 样式语法,都使用 .NET 而不是标准 python 库。

那么,它们之间有什么区别以及各自的优点呢?

有帮助吗?

解决方案

我认为主要区别在于Boo是静态类型的,这意味着变量的类型是在其第一个赋值时推断出来的并且从那里得到修复 - 而IronPython具有<!> quot; real <!> quot;普通Python代码的动态行为。

IronPython 现在由Microsoft正式维护,的目标是2.0版中的新动态语言运行时。我怀疑因为它的静态类型性质Boo可能会更快。我没有多少<!>“真实的<!>”;虽然经验丰富......

IronPython还重新实现了许多python标准库,因此您无需更改IronPython即可运行大量python软件(例如 Django

其他提示

Boo是静态类型的,但有可选的鸭子打字(根据我的经验,它运作得相当好)。 Boo也专门设计为<!>手腕友好<!> - 换句话说,最小化使用Shift键组合的需要。它在 SharpDevelop 中具有良好的IDE支持。

很明显,Boo从Python中获得了很多灵感,但也旨在充分利用.NET功能。

性能方面,Boo感觉比IronPython略快,特别是缺乏明显的IronPython启动延迟。

Boo仍然是一种不成熟的语言,缺乏Python社区。我个人对在生产中使用它有点谨慎。另外,我不同意它从Python中所做的所有偏离,例如在课堂上摆脱明确的自我。

我还没有使用过 IronPython,但这是我对 Boo 的了解......

  • Boo 受到 Python 的启发,并且有许多语法相似之处。差异请参见 http://boo.codehaus.org/Gotchas+for+Python+Users
  • Boo 是专门为 CLR 编写的
  • 它是静态类型的,有几个好处
    • 它可以编译为DLL并由VB和C#项目引用
    • 您可以在 IDE 中获得代码完成功能
  • 语言本身是否可扩展。您可以编写“语法宏”并实际向语言添加新元素。这使得它成为编写 DSL 的良好候选者。
  • 它还没有到 1.0,而 IronPython 已经到了。该语言仍在经历成长的痛苦,但仍然非常有用。

我用 Boo 做过类似的事情:

  • 编写预定作业的脚本。它是 VBScript、BAT 文件的绝佳替代品,特别是在访问 .NET API 时。从那时起,我主要改用 Powershell,但它是特定于操作系统的,并且语法更重,所以我仍然使用 Boo 来做一些事情。
  • 编写单元测试
  • 嵌入式脚本语言

我已经在Boo和IronPython中编写了应用程序。对我来说,IronPython是更强大的选择,也是我在CPython端口中编写的大部分内容,没有任何变化。如果针对.Net Framework,所有最近的项目都是纯IronPython。

由于Jim <!>“叛逃<!>”;对于微软来说,IronPython已被提升为顶级语言。甚至还有Visual Studio。

我同意VolkA的观点。能够运行Django很重要。这是一个非常棒的框架,Boo将很难重做它。今天,它更多的是语言提供的框架问题,而不是它提供的结构。 Boo在它支持的结构中没有提供比Python更多的改进。

在我看来,主要区别在于 IronPython 是一种成熟语言的实现 - 虽然 Boo 更年轻,但鲜为人知。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top