在看了这两个项目之后,似乎两者都非常相似。两者都运行在CLI之上,两者都有python样式语法,都使用.NET而不是标准的python库。
那么,它们之间的区别和各自的优势是什么?
答案 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之类的东西:
答案 3 :(得分:6)
与Winston一样,Boo由于其开放的编译器架构而具有很强的可扩展性,请看一下这些例子:
答案 4 :(得分:4)
我已经在Boo和IronPython中编写了应用程序。对我来说,IronPython是更强大的选择,也是我在CPython端口中编写的大部分内容,没有任何变化。如果针对.Net Framework,所有最近的项目都是纯IronPython。
自从Jim“叛逃”到微软以来,IronPython已被提升为顶级语言。甚至还有Visual Studio。
答案 5 :(得分:1)
我同意VolkA的观点。能够运行Django很重要。这是一个非常棒的框架,Boo将很难重做它。今天,它更多的是语言提供的框架问题,而不是它提供的结构。 Boo在它支持的结构中没有提供比Python更多的改进。
答案 6 :(得分:0)
在我看来,主要区别在于IronPython是成熟语言的实现 - 而Boo更年轻,知之甚少。