IronPython和BOO有什么区别?是否需要 2 种类似 Python 的语言?
4 回答
IronPython旨在成为 .NET 平台上 Python 的忠实实现。版本 1 以 Python 2.4 为目标以实现兼容性,版本 2 以 2.5 版本为目标(尽管不支持大多数用 C 实现的 Python 标准库模块)。
Boo的既定目标是成为“用于 CLI 的手腕友好 [动态] 语言”。它从 Python 中汲取了很多灵感,但在四个要点上存在分歧:
- 它专为充分利用 .NET 平台而设计
- 设计师偏离了 Python 语法,他不同意设计决策(最明显的是,缺乏明确的自我)
- 该语言被明确设计为“手腕友好” - 即最大限度地减少使用 Shift 键或其他多键组合的需要。
- Boo 默认是静态类型的,但允许可选的鸭子类型。
在实现/性能方面还有一些其他细微差别,但上述不同的设计目标应该(IMO)告知您选择的语言。
另外需要考虑的两件事是成熟度和社区。Python 比 Boo 成熟得多,并且拥有更大的社区。IronPython 也得到了微软的明确支持。
IronPython 是一个 python 实现,而 Boo 是另一种具有 python 式语法的语言。一个主要区别是 Boo 默认是静态类型的。
我敢肯定还有更多的不同,我只是简单地看了 Boo,但我一直想更深入地研究一下(这么多语言,时间太少了!)。
以下是 Python 程序员的 Boo 陷阱列表,它很好地总结了这些差异:
IronPython 是 Python。Boo 看起来像 Python。
他们有不同的目标,虽然 IronPython 的目标是像 Python 一样,但 Boo 却没有。Boo 并不像 IronPython 那样担心与 Python 的兼容性……
简而言之,Boo 声名鹊起的是它应该为您提供 Python 优雅、简洁的语法和非常高级的抽象的大部分好处,但不会牺牲(大部分)静态类型语言(如 C#)的速度优势.