2008-09-17 5 views
9

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

Я задавался вопросом о других реализациях, особенно Jython и IronPython. Что делает их лучше? Что делает их хуже? Какие существуют другие реализации?

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

ответ

1

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

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

15

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

Stackless интересен тем, что имеет поддержку зеленых нитей, продолжений и т. Д. Сорт Erlang-lite.

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

+1

Некоторые из магии для Stackless (зеленые темы и т. Д.) Доступны для реализации CPython в библиотеке py.magic, которая была разработана PyPy. Насколько я знаю, развитый бесконтактный режим несколько успокоился, большая часть работы с функциями Erlang-lite теперь входит в PyPy. – Ryan 2008-09-17 18:51:37

3

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

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

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

+1

Ссылка дает 404 в настоящее время (2012 август). – FooF 2012-08-08 03:56:23

1

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

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

1

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

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

6

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

+0

То же самое с IronPython! – 2008-12-05 03:28:51

Смежные вопросы