2008-09-17 78 views
9

我對Python比較陌生,而且我一直使用標準的cpython(v2.5)實現。各種Python實現有哪些優缺點?

雖然我一直在想其他的實現,特別是Jython和IronPython。什麼讓他們變得更好?什麼讓他們變得更糟?還有什麼其他的實現?

我想我要找的是每個實施的總結和利弊列表。

回答

1

優點:訪問可用於JVM或CLR的庫。

缺點:兩者在功能上都自然落後於CPython。如果你有一個壓倒一切的需求寫在不同的平臺上現有的庫接口,

15

Jython的IronPython的是有用的一樣,如果你對Java的100,000行,你只想寫一個20行Python腳本。在我看來,對其他任何東西都不是特別有用,因爲由於社區慣性,它們永遠是CPython背後的一些版本。

Stackless很有意思,因爲它支持綠色線程,延續等等Erlang-lite的排序。

PyPy是一個實驗性的解釋器/編譯器,可能有一天會取代CPython,但現在更多的是新想法的測試平臺。

+1

一些魔法無堆棧(綠線等)可在py.magic庫CPython的實現,這是由PyPy開發。 據我所知,開發無堆棧是有些平靜,最讓二郎 - 精簡版功能的工作現已進入PyPy。 – Ryan 2008-09-17 18:51:37

1

IronPython和Jython中使用的運行環境.NET或Java,並與來自即時編譯和垃圾收集器從原來的CPython的不同。由於JIT,它們可能比CPython更快,但我不確定。

使用Jython或IronPython的缺點是不能使用本機C模塊,它們只能在CPython中使用。

1

PyPy是一個用RPython編寫的Python實現,它是一個Python子集。

RPython可以轉化爲一個虛擬機或運行,不像標準的Python,RPython可以靜態編譯。

6

Jython的一個額外的好處,至少對有些人,是it lacks the GIL(全局解釋器鎖),並使用Java的本地線程。這意味着你可以並行地運行純Python代碼,而GIL是不可能的。

+0

與IronPython一樣! – 2008-12-05 03:28:51

相關問題