В этой статье мы расскажем вам о CPython, Jython, IronPython, PyPy и Cython. Поговорим об их основных отличиях и преимуществах.
Область компьютерных наук является, пожалуй, самой популярной в наши дни. И она всё ещё продолжает расти и развиваться. То, что представляют из себя компьютерные науки сейчас, совсем не похоже на то, чем они были в самом начале. Благодаря Computer Science, теперь есть возможность создавать вещи, которые волшебным образом меняют жизни миллионов людей! Такой разительный прогресс позволил создать искусственный интеллект, глубокое обучение и многие другие концепции, которые раньше считались невозможными.
Языки программирования в целом являются одним из наиболее стремительно развивающихся элементов компьютерных наук. Но развиваются они неравномерно. Возьмем к примеру Python. Это высокоуровневый язык программирования, который очень вырос со времени своего выхода в свет и сейчас используется в самых разных сферах. В результате он выделяется даже на фоне других успешно развивающихся языков.
Стоит отметить, что сам по себе Python довольно многообразен и используется в различных реализациях. Это и будет темой нашей статьи: мы рассмотрим разные способы реализации этого языка, существующие на данный момент.
Мы уже несколько раз использовали термин «реализация». Но что под этим подразумевается? Говоря о реализации, мы имеем в виду то, как был написан интерпретатор – какие языки были использованы и какова главная задача конкретно этого интерпретатора.
А теперь давайте разберем некоторые реализации Python.
CPython – это, по сути, дефолтный и наиболее распространенный интерпретатор (реализация) языка Python, написанный на C. Это изначальная версия языка, которую пользователи скачивают с официального сайта – Python.org.
Лучше всего CPython можно описать как некую смесь интерпретатора и компилятора, так как написанный вами код преобразуется в байт-код. Под байт-кодом мы понимаем программный код, который компилируется и преобразуется в низкоуровневый язык, который, в свою очередь, может быть использован как набор инструкций для интерпретатора. Именно этот байт-код и выполняется на виртуальной машине CPython.
Поскольку это «родная» реализация Python, CPython наиболее совместим с пакетами и модулями языка. Эта реализация будет наилучшим выбором, если вам нужно написать код, полностью соответствующий стандартам Python.
[python_ad_block]Jython – это ещё одна реализация Python. Она была написана на Java и работает на Java-платформах. Как и в CPython, исходный код конвертируется в байт-код – набор инструкций для интерпретатора. Jython работает на виртуальной машине, которая использует то же окружение, что и Java. Данная реализация обеспечивает удобную работу с Java-программами. Вы легко сможете вызывать и использовать свои функции и классы Java непосредственно из Jython. Это дает пользователям Python доступ к огромнейшей экосистеме библиотек и фреймворков, имеющихся в Java. И наоборот.
Если Jython был разработан для пользователей Java, то IronPython — популярная реализация, написанная на C#. Её разработали для работы на платформе .NET. Она создает мост во вселенную .NET, дающий пользователям Python доступ к функциям и классам C#, библиотекам и фреймворкам .NET прямо из IronPython. Данная реализация отлично подходит для многопоточных программ. Вы можете её найти на официальном сайте — ironpython.net.
Эта реализация написана на самом Python и является альтернативой CPython. PyPy был написан с учетом всех особенностей языка Python, поэтому он наиболее совместим с CPython. Это позволяет запускать веб-фреймворки, такие как Django и Flask. PyPy использует концепцию JIT-компиляции (Just-in-time), которая позволяет компилировать исходный код прямо во время выполнения программы. Это делает PyPy в несколько раз быстрее CPython. Многие пользователи последнего жаловались именно на низкую скорость выполнения. Таким образом, PyPy полностью улучшает эту часть CPython.
В отличие от других реализаций Python, упомянутых выше, Cython не является интерпретатором Python. Это, скорее, надмножество языка Python, которое дает возможность пользователям компилировать программы на языке C.
Вообще, объединенная мощь Python и C — самое потрясающее в Cython. Благодаря ей Cython можно использовать для написания расширений C, а также для преобразования Python-кода в C. Таким образом, Cython сохраняет удобство и комфорт, за которые все так любят Python, устраняя многие ограничения последнего.
Python за годы своего активного развития очень расширился. Различные реализации этого языка удовлетворяют нужды разных пользователей. Если вы планируете писать код на Python на профессиональном уровне, высока вероятность, что со временем вы столкнетесь с несколькими из упомянутых реализаций. И когда это произойдет, нужно уметь распознать, с чем именно вы столкнулись, и почему для данного кода выбрана именно такая реализация Python.
Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…
В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…