Сообщество и философия Python
Кто решает, каким становится Python, какими принципами он руководствуется — и почему «Python» и «CPython» не совсем одно и то же.
Python Software Foundation (PSF)
Python Software Foundation — некоммерческая организация в США, основанная в 2001 году. Ей принадлежат права на Python, она поддерживает развитие языка, организует конференции (например, ежегодную PyCon US) и финансирует инфраструктуру сообщества — включая сам сайт python.org и PyPI.
PSF не продаёт Python и не выдаёт официальных сертификатов от имени языка — её роль скорее административная и организационная: следить, чтобы у Python было будущее и чтобы развитием занималось открытое сообщество, а не одна компания.
PEP: как Python принимает решения об изменениях
Важные изменения в языке не происходят стихийно. Для этого существует формальный процесс — PEP (Python Enhancement Proposal, «предложение по улучшению Python»). Это документ, в котором кто-то подробно описывает предлагаемое изменение, объясняет, зачем оно нужно, и его обсуждает сообщество, прежде чем принять или отклонить.
Все PEP пронумерованы и опубликованы на peps.python.org. Два PEP стоит знать по имени уже сейчас, просто чтобы узнавать их в будущем:
- PEP 8 — руководство по стилю оформления кода Python (как называть переменные, сколько оставлять отступов и пробелов). Мы вернёмся к нему подробно позже в этой книге.
- PEP 20 — он же «дзен Python», о котором ниже.
Дзен Python
У Python есть собственный короткий список принципов, объясняющих, каким язык старается быть. Его написал разработчик Тим Питерс, и увидеть его можно, выполнив в интерпретаторе Python одну строку:
import this
Своими словами, а не дословной цитатой, идея сводится к нескольким вещам, которые Python ценит больше всего:
- Читаемость важнее краткости. Понятный код лучше кода, который уместился в одну строку ценой ясности.
- Явное лучше неявного. Код должен по возможности прямо показывать, что он делает, а не полагаться на скрытую «магию».
- Простота лучше сложности — но не ценой возможностей. Если задача сложная, решение может быть сложным, но не сложнее, чем должно быть.
Откройте практику этого раздела и выполните ячейку с import this. Прочитайте вывод целиком — эти строки будут появляться в подсказках книги ещё не раз.
CPython и другие реализации
Полезно различать две вещи: Python как язык (правила синтаксиса и поведения, которые описывает Language Reference) и конкретную программу, которая этот язык выполняет — её называют реализацией.
Самая распространённая реализация — CPython, написанная на языке C. Её вы используете на протяжении всей этой книги, и её же скачивают с python.org по умолчанию. Существуют и другие реализации, созданные для особых задач:
- PyPy — реализация с JIT-компиляцией (Just-In-Time), которая на некоторых задачах выполняет код заметно быстрее CPython за счёт компиляции «на лету» во время выполнения.
- MicroPython — компактная реализация Python для микроконтроллеров и встраиваемых устройств с очень ограниченной памятью — от роботов до умных датчиков.