Рубрики
Без рубрики

Почему CPYPHON официальная реализация, а не Pypy?

Я написал этот пост изначально для квора. Вы должны взять его с несколькими зернами соли, как … Теги с Python.

Я написал этот пост изначально за Quora. . Вы должны взять его с несколькими зернами соли, поскольку тщательное объяснение будет более сложным. Однако следующие строки могут очистить некоторые заблуждения, которые читатели могут держать, когда они говорят о двух разных вещах, спецификации языка и его реализации.

Cpython – это референтное осуществление Python. Это не должно быть очень быстро, но он должен быть правильно реализован.

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

Никто не мешает вам написать свою собственную реализацию, просто быть уверенным, по крайней мере, в теории, тот же код имеет одинаковые результаты в вашем среде выполнения по сравнению с официальным переводчиком CPY.

Например, возьмите печально известную Гил. Так много жалуются на него, но глобальный переводчик не используется спецификацией. Если вам удается сохранить функциональность Python, вы можете избавиться от этого. На практике, однако, было доказано несколько раз, среди прочего, по самой Pypy, задача далеко не легко.

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

Сам Python не является быстрым или медленным, потому что это просто спецификация языка. Даже самый медленный интерпретатор Python, если он придерживается спецификации, действителен, в отличие от Cython, который может сделать ваш код быстрее, но, будучи сумеретом Python, код Cython, может не соответствовать этой спецификации, и как таковой не учитывается как питон.

Теоретически, приятно иметь Pypy в качестве падения замены для CPYthon, но, как только вы не можете быть уверены, если результаты не будут правильными из-за тонких ошибок или немного другого поведения Pypy, временная победа может стать головной болью.

Современный Python – это сложный зверь, и требуется много доброй воли, чтобы полагать, что два или более реализация будут вести себя одинаково при всех возможных условиях.

Если вы не доверяете мне, убедитесь сами здесь

Стандартные библиотечные модули поддерживаются Pypy. Обратите внимание, что большие части библиотеки Python реализуются в чистом Python, поэтому они не должны быть перечислены там. Пожалуйста, просто проверьте, импортирует ли он. Если он импортирует, он должен работать

Фактически, даже Cpython может немного отличаться по разным системам. Так вот почему Фонд Python Software придерживается Cpython и не собирается прыгать на Pypy.

Оригинал: “https://dev.to/hanpari/why-is-cpython-the-official-implementation-rather-than-pypy-p52”