Boo vs. IronPython

Mat*_*ley 26 ironpython boo

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

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

Vol*_*lkA 25

我看到的主要区别是Boo是静态类型的,这意味着变量的类型是在它的第一个赋值中推断出来的并且从那里得到修复 - 而IronPython具有普通Python代码的"真实"动态行为.

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

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

  • 历史更正,以防其他人发现这是比较Boo和IronPython并且不知何故错过了新闻 - IronPython和IronRuby在2010年8月左右不再是模糊时间的官方微软项目.Jim Hugunin于2010年10月离职. (11认同)

Rya*_*rom 14

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

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

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

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


Win*_*ett 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来做一些事情.
  • 写作单元测试
  • 嵌入式脚本语言