Boo vs. IronPython

时间:2008-10-11 08:44:03

标签: ironpython boo

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

那么,它们之间的区别和各自的优势是什么?

7 个答案:

答案 0 :(得分:25)

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

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

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

答案 1 :(得分:14)

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

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

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

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

答案 2 :(得分:11)

我还没有使用过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来做一些事情。
  • 写作单元测试
  • 嵌入式脚本语言

答案 3 :(得分:6)

答案 4 :(得分:4)

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

自从Jim“叛逃”到微软以来,IronPython已被提升为顶级语言。甚至还有Visual Studio。

答案 5 :(得分:1)

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

答案 6 :(得分:0)

在我看来,主要区别在于IronPython是成熟语言的实现 - 而Boo更年轻,知之甚少。