Каковы плюсы и минусы различных реализаций Python? - PullRequest
8 голосов
/ 17 сентября 2008

Я относительно новичок в Python, и я всегда использовал стандартную реализацию cpython (v2.5).

Мне было интересно узнать о других реализациях, особенно о Jython и IronPython. Что делает их лучше? Что делает их хуже? Какие еще реализации есть?

Я думаю, что я ищу резюме и список плюсов и минусов для каждой реализации.

Ответы [ 6 ]

15 голосов
/ 17 сентября 2008

Jython и IronPython полезны, если у вас есть первостепенная необходимость взаимодействия с существующими библиотеками, написанными на другой платформе, например, если у вас 100 000 строк Java и вы просто хотите написать сценарий Python из 20 строк По моему мнению, не особенно полезно для чего-либо еще, потому что они постоянно находятся в нескольких версиях за CPython из-за инерции сообщества.

Stackless интересен тем, что поддерживает зеленые потоки, продолжения и т. Д. В некотором роде Erlang-lite.

PyPy - это экспериментальный интерпретатор / компилятор, который однажды может заменить CPython, но сейчас это скорее испытательный стенд для новых идей.

6 голосов
/ 18 сентября 2008

Дополнительным преимуществом для Jython, по крайней мере для некоторых, является , в нем отсутствует GIL (глобальная блокировка интерпретатора) и используются собственные потоки Java. Это означает, что вы можете запускать чистый код Python параллельно, что невозможно с GIL.

3 голосов
/ 17 сентября 2008

Все реализации перечислены здесь:

https://wiki.python.org/moin/PythonImplementations

CPython - это «эталонная реализация», разработанная Гвидо и основными разработчиками.

1 голос
/ 17 сентября 2008

PyPy - это реализация Python, написанная на RPython, которая является подмножеством Python.

RPython может быть переведен для запуска на виртуальной машине или, в отличие от стандартного Python, RPython может быть статически скомпилирован.

1 голос
/ 17 сентября 2008

IronPython и Jython используют среду выполнения для .NET или Java, и вместе с этим идет компиляция Just In Time и сборщик мусора, отличный от исходного CPython. Они могут быть также быстрее, чем CPython, благодаря JIT, но я точно не знаю.

Недостатком использования Jython или IronPython является то, что вы не можете использовать собственные модули C, они могут использоваться только в CPython.

1 голос
/ 17 сентября 2008

Плюсы: доступ к библиотекам, доступным для JVM или CLR.

Минусы: оба естественно отстают от CPython с точки зрения возможностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...