Будущее Python: какие тренды развития и боли языка обсуждали на PyCon 2025
Будущее Python: тренды PyCon 2025 — CPython 3.14, noGIL, безопасность и новые инструменты
982 открытий6К показов
CPython и его «кишки», асинхронность и фрагментация, управление зависимостями, безопасность и боли научного кода. Что обсуждали на профильной конференции для Python-разработчиков.
Data QA Елизавета Якушева побывала на конференции специально для Tproger и поделилась самым важным.
Вот и отгремела PyCon в Москве. Мероприятие продлилось два дня — с докладами, мастер‑классами, lightning talks, спринтами для ~700 участников и 20+ докладчиками. Рассказываем, какие тренды и боли обозначили эксперты индустрии.
Основная тема этого сезона — Python Core. Речь про внутренности языка, новые фичи, интерпретаторы, оптимизацию и профилирование. Конечно, никуда без тестирования, ML и Data Science. Отдельными важными темами стали асинхронность, интеграции с Rust/Go/C++, безопасность, микропитон (MicroPython), PyPy и прочая high‑load магия.
А теперь подробности!
Будущее CPython 3.14
Пётр Андреев из МФТИ рассказал про noGIL: погружение в будущее CPython 3.14. Основные проблемы с GIL и их решения.
GIL (Global Interpreter Lock) — главный тормоз многопоточности в Python. Он нужен для потокобезопасности, но мешает масштабировать CPU-bound задачи. Доклад объясняет, почему просто «убрать GIL» нельзя — слишком много внутренностей CPython завязано на него.
Бутылочное горлышко в GIL (limited RAM), по мнению эксперта, заключается в том, что он:
- Замедляет предобработку данных для GPU.
- Ограничивает использование многоядерных процессоров для CPU-bound задач
- Усложняет отладку и логирование при использовании процессов вместо потоков
Но нельзя просто взять и убрать GIL, возникнет:
- Несовместимость с существующими расширениями.
- Проблемы с потокобезопасностью внутренних структур памяти CPython (race condition).
Возможный путь — Free-threading (без GIL), он даёт следующие преимущества:
- Атомарные операции гарантируют завершение.
- Критические секции (Py_BEGIN_CRITICAL_SECTION и Py_END_CRITICAL_SECTION) обеспечивают потокобезопасность без явной блокировки, но могут снижать производительность, так как другие потоки будут вынуждены ожидать.
Оптимизировать управление памятью можно с помощью Biased Reference Counting (BRC) и Deferred Reference Counting (DRC) для ускорения подсчета ссылок без GIL.
- BRC позволяет потоку-владельцу изменять счетчик ссылок неатомарно, а другие потоки делают это атомарно.
- DRC — отложенные обновления счетчиков ссылок. Это позволяет улучшить производительность за счет уменьшения дорогостоящих атомарных операций.
Виктор Тыщенко из Точки рассмотрел эволюцию CPython. Рассказал, почему python вырвался в ТОП-3 самых известных языков программирования, рассмотрел важные вехи его развития и ответил на вопрос, что нас ждёт в ближайших релизах.
А ждёт нас:
- Улучшение JIT-компилятора.
- Top-of-stack caching.
- Tail-calling interpreter.
- Эффективное управление памятью.
- Расширяемая система специализаций.
- Поддержка субинтерпретаторов и многопоточности.
Асинхронность и фрагментация sync/async
Евгений Блинов из Авито рассказал, как победить актуальную проблему — фрагментацию на sync и async, чтобы питон больше не ел сам себя. Ведь ещё недавно в Python-комьюнити активно обсуждали асинхронность, писали под неё фреймворки и переписывали библиотеки. Но это приводило к дублированию экосистемы и разрастанию числа библиотек.
Выход есть. Эксперт предлагает сократить дублирование кода с помощью шаблонизации. Для этого теперь есть инструмент transfunctions, который переписывает шаблонную функцию на уровне AST. Вершина эволюции — суперфункции, которые умеют быть всем.
Управление зависимостями и разрешение конфликтов
Евгений Желонкин из Контура поднял сложную тему эволюции алгоритмов разрешения конфликтов зависимостей в Python. Затронул графы зависимостей и объяснил, почему задача разрешения конфликтов относится к NP-полным и что нам с этим делать.
Разобрал как простые жадные стратегии, так и полноценные SAT-решатели и эвристики, используемые в pip, poetry и новом сверхбыстром инструменте uv.
Особенно полезна эта тема тем, кто работает со средними и большими Python-проектами, CI/CD, и в целом всем, кто когда-либо ставил зависимости и сталкивался с Dependency Hell.
Повышение качества научного кода
Python — классический инструмент для научных вычислений, он используется в биологии, физике, медицине, химии и множестве других сфер. У языка есть множество библиотек для самых разных отраслей. Но учёные часто не знакомы с лучшими практиками и стандартами программирования. В результате код становится трудночитаемым, неинтерпретируемым, его сложно рефакторить и запускать.
Андрей Гетманов из ИТМО рассказал, как обстоят дела в исследованиях в ML и о том, почему код научных статей так больно читать. Показал открытый проект Open Source Advisor (OSA), который разрабаотывают в ИТМО. OSA генерирует ридми, пишет докстринги, даёт рекомендации и даже оформляет Pull Request. Учёным остаётся внести правки и готово — получается красивый репозиторий с удобным кодом.
Андрей Гетманов также поделился, что происходит под капотом OSA: агентная логика, стратегии промптинга, работа с необычными запросами учёных.
Data, ML, Data Governance и человеко-читаемые данные
Артём Каледин из МТС в своём докладе рассказал, как заботиться о данных в таблицах и делать их human‑readable — то есть, понятными, воспроизводимыми и управляемыми в бизнес‑контексте.
Также показал, что сейчас предлагают в OpenSource и как компании внутри дорабатывают эти продукты для максимальной продуктивности. Научил преобразовать классический путь от построения витрины с данными и ML-моделей до их формального описания вне привычного MLOps.
Работа с LLM, ML4Code и честные бенчмарки
Павел Задорожный из Сбера провёл воркшоп на тему «Оценка моделей генерации кода: практика, ловушки и реальные бенчмарки на Python» — разбор репозиториев, метрик BLEU и CodeBLEU, репотестов и Docker‑инфраструктуры.
Рассмотрел практические подходы к построению открытых бенчмарков для генерации кода, основанных на реальных сценариях разработки и полноценном тестировании.
Показал, как решали проблемы несовместимости зависимостей, нестабильных билдов и разнообразия тестовых инфраструктур, как автоматизировали сбор задач и сделали оценку прозрачной и воспроизводимой для любых исследователей.
Безопасность и устойчивость в Python: тренд, который больше не игнорируют
Алексей Смирнов из CodeScoring рассказал, что происходит в мире безопасности open source пакетов. Разобрался, что делает сообщество, чтобы защитить разработчиков от злоумышленников, какие новые PEP’ы появились и готовы ли разработчики им следовать.
Типовые слабости пакетов:
- CWE-937. Неправильная обработка входных данных пользователя.
- CWE-400. Неконтролируемое потребление ресурсов.
- CWE-22. Обход каталога (Path Traversal).
- CWE-502. Десериализация недоверенных данных.
- CWE-94. Некорректный контроль над генерацией кода (инъекции кода).
Примеры вредоносных компонентов в открытых инструментах PyPI:
2. bandit4mal
3. OSSGadget
4. MalOSS
Но для решения этих проблем существуют базовые практики безопасной разработки:
- Применение правильных статических анализаторов;
- Проверка не только своего кода;
- bandit или semgrep.
Нелли Камалян из Positive Technologies пояснила, почему статический анализ — ваша первая линия защиты и как его использовать. Ведь с помощью статического анализа можно обнаружить проблемы ещё на этапе разработки.
Говорили про анализ кода на примере Semgrep и других инструментов для проверки Python-приложений. А ещё был разбор самых популярных ошибок, способов их исправить и пути интеграции полезных инструментов в рабочие процессы.
Максим Сахно из Контура разъяснил классический архитектурный принцип инверсии зависимостей (DIP) для Python. Несмотря на популярность в других языках, в Python его долгое время не использовали. И вот, пожалуйста, честный разбор, как именно работает DIP в змеином языке и его популярных фреймворках для безопасности и устойчивости.
Итоги
PyCon 2025 показал, что Python продолжает активно развиваться как снаружи, так и изнутри. В центре внимания оказался CPython 3.14 с отменой GIL, а также борьба с фрагментацией между синхронным и асинхронным кодом, рост важности инструментов управления зависимостями и бум интереса к качеству научного и ML-кода. Разработчики всё чаще сталкиваются с необходимостью работать на стыке Python и других языков — Rust, Go, C++ — и одновременно ожидают повышения безопасности, удобства и масштабируемости.
Python вступает в эру, где качество инфраструктуры, безопасность open source, тестируемость, читаемость и доступность кода важны не меньше, чем синтаксис или фреймворки. Возникают новые практики и инструменты, которые помогают справляться с растущей сложностью: от Semgrep и uv до автоматизации Readme и метаданных через OSA. Вся экосистема движется к зрелости, в которой Python становится не только языком, но и полноценной платформой для гибкой, безопасной и воспроизводимой разработки.
982 открытий6К показов





