BOO与IronPython的比较

16

IronPythonBOO有什么区别?是否需要两种类似于Python的语言?


5
IronPython不是类似Python的语言。它实际上是Python语言,尽管是重新实现的。 - Curt Hagenlocher
1
Boo曾经是Unity 3D官方支持的语言,直到版本5。现在已被弃用,但您仍然可以在版本5中使用它(也许在以后的版本中也可以...只有时间才能告诉我们)。IronPython从未被支持过,也很可能永远不会被支持。这就是我使用其中一种(Boo)而不是另一种的原因。 - ArtOfWarfare
这个回答解决了你的问题吗?Boo vs. IronPython - John Y
4个回答

18

IronPython旨在成为.NET平台上Python的忠实实现。第一版针对兼容性使用了Python 2.4,第二版则针对Python 2.5(虽然大多数用C语言实现的Python标准库模块不受支持)。

Boo的目标是成为一种“对CLI友好的[动态]语言”。它从Python中汲取了很多灵感,但在四个主要点上有所分歧:

  1. 它专门设计以充分利用.NET平台。
  2. 设计者在他不同意的设计决策上与Python语法分歧(最显著的是缺乏明确的self)。
  3. 该语言显式地设计为“对手腕友好” - 也就是说,最小化需要使用Shift键或其他多键组合的需求。
  4. Boo默认是静态类型的,但允许可选的鸭子类型。

虽然还存在一些其他的实现/性能差异,但是上述偏离的设计目标应该(在我看来)影响您选择语言的决定。

还有两件事情需要考虑:成熟度和社区。Python比Boo更加成熟,并且拥有更大的社区。IronPython也得到了微软的明确支持。


11

IronPython是一种Python实现,而Boo则是一种具有类似Python语法的另一种语言。一个主要区别是,Boo默认为静态类型。

我相信还有更多的区别,我只是简单地看了一下Boo,但我一直想深入研究一下(这么多语言,时间那么少!)。

以下是一份Boo gotchas清单,它很好地总结了区别:


3

IronPython是Python。

Boo看起来像Python。

它们有不同的目标,虽然IronPython旨在与Python完全相同,但Boo并非如此。Boo不像IronPython那样担心与Python的兼容性问题...


1
简而言之,Boo的优点在于它可以提供Python优雅、简洁语法和高级抽象的大部分优势,同时又不会牺牲像C#这样的静态类型语言所具有的速度优势(大部分情况下)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接