Your AI powered learning assistant

Новости мира Python за сентябрь 2025

интро

00:00:00

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

WebAssembly обеспечивает скорость, близкую к CPython для Python Платформа WebAssembly выпустила бета‑версию, которая позволяет запускать Python со скоростью, близкой к скорости CPython, что значительно ниже прежних результатов, достигнутых примерно в два раза. Поддержка библиотек значительно улучшилась, устраняя давние пробелы. Специальный индекс пакетов для стека обеспечивает удобное управление зависимостями. Python может работать в облегченных виртуальных средах или быть встроен в решения WebAssembly.

Реальная ценность WebAssembly: внедрение языков в системы WebAssembly позволяет встраивать дополнительные языки в существующие движки, такие как среды выполнения баз данных, без необходимости их перезаписи. Добавление среды выполнения WASM позволяет надежно использовать несколько языков при согласованных ограничениях. Внедрение ориентировано скорее на низкоуровневые внутренние компоненты, чем на повседневную разработку приложений. Первоначальные ожидания масштабной революции ослабли, но технология остается мощной.

Капитальный ремонт GC‑ адаптированный для свободнопоточного Python В Python 3.14 переработана сборка мусора с учетом выполнения в свободном потоке. Стратегия разметки теперь исключает в первую очередь "живые" корни, сужая набор, требующий более тщательной проверки. Триггеры сбора данных привязаны к использованию памяти, а не к количеству выделенных ресурсов, а объекты для проверки упаковываются линейно с учетом локальности кэша. Дополнительные пути активируются, когда количество объектов достигает сотен тысяч, что улучшает поведение в условиях параллелизма.

Контрольные Показатели Показывают Достижения, Но Измеряются Тщательно Тесты показывают, что в сценариях с интенсивным использованием GC ускорение примерно в 2 раза, а выбросы приближаются к 12 раз. "Базовый" означает многопоточный 3.14, в то время как "по умолчанию" означает 3.14 с GIL, что усложняет интерпретацию графика. Некоторые очевидные преимущества связаны с количеством потоков, а не с мастерством сборщика, поэтому важна методология. Главной целью является обеспечение паритета: многопоточный Python не должен быть медленнее однопоточных сборок.

Что означают эти победы в GC на практике Ожидайте улучшений в первую очередь там, где преобладает сборка мусора, например, в рабочих нагрузках, при которых возникает множество мелких объектов. Это не означает полного ускорения работы Python. Эксперименты со свободнопоточной версией 3.14 выявят, что сборщик мусора работает заметно лучше.

Сохраняйте гибкость среды выполнения Python неизменной Изменяемость Python во время выполнения является основой его мощности и простоты использования. Отказ от гибкости для увеличения скорости приведет к поломке огромного объема существующего кода. Когда производительность в исходном виде превосходит гибкость, подходящим выбором становятся компилируемые языки.

Узкие Места В Производительности Обычно Находятся В Другом Месте В реальных системах наибольшие затраты, как правило, связаны с базами данных, хранилищем, обменом сообщениями, кэшами и памятью, а не с вычислениями на Python. Если затраты на инфраструктуру резко возрастают исключительно из-за выполнения на Python, в этом обычно виноваты архитектура или стратегия запросов. Целенаправленная оптимизация, такая как устранение N+1 запроса к базе данных, часто сводит на нет любую выгоду от переписывания языка.

Там, где важны наносекунды, Безжалостно специализируйтесь Высокочастотный трейдинг изолирует ядро, работающее в режиме реального времени, от биржи, часто реализованное на Rust. Python управляет настройкой, загрузкой правил, обработкой данных, аналитикой, информационными панелями и интеграциями, которые создают ценность для бизнеса. Физическая близость и время прохождения сигнала определяют исходы, где разница в несколько наносекунд определяет выигрыш или проигрыш.

Ускорение, Основанное На Типах, Противоречит Природе Python Ускорители, управляемые типами, дают сбои, поскольку сторонние библиотеки и поведение во время выполнения обычно нарушают статические допущения. Машинный код, скомпилированный в расчете на использование целых чисел, может завершиться сбоем при представлении в виде строк, даже если динамическая программа корректна. Для сложных циклов или алгоритмов собственные расширения на C или Rust обеспечивают скорость без ущерба для гарантий Python.

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

Asyncio адаптируется для параллелизма в свободном потоке Free‑threading 3.14 позволяет запускать несколько циклов обработки событий в отдельных потоках, обеспечивая подлинный параллелизм между ядрами. Каждый цикл имеет свою очередь задач, чтобы избежать конфликтов, а текущая задача находится в состоянии потока, что минимизирует затраты на переключение. Эти усовершенствования подталкивают asyncio к эффективной многопоточной работе.

К планировщику, похожему на Go, с оговорками Оптимальный дизайн позволил бы распределять циклы по потокам и распределять задачи по недозагруженным циклам для превосходного масштабирования. Многие асинхронные стеки и расширения C предполагают однопоточное выполнение и глобальные идентификаторы, что усложняет этот переход. Требуется значительная работа над экосистемой, чтобы она соответствовала планировщику Go, но это направление является многообещающим.

Задачи Django: Упрощенный интерфейс фоновых заданий Интерфейс задач Django представлен в альфа-версии, предоставляя облегченные фоновые задания, которые намного проще, чем Celery. Он определяет, как описывать задачи, делегируя выполнение подключаемым серверным частям, потенциально включая Celery. Основное внимание уделяется небольшим, простым потребностям, а не полной распределенной очереди.

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

Вопросы развертывания, масштабирования и отказоустойчивости Серверная часть по умолчанию должна загружаться с помощью Django, но при этом масштабироваться независимо, что отражает реальные развертывания с несколькими веб-контейнерами и отдельными рабочими элементами. Операционные проблемы включают автоматическое масштабирование Kubernetes, сегментирование очередей, приоритетные полосы, фиксированное размещение для локализации кэша и семантику для неудачных периодических заданий. Решение этих задач становится необходимым, когда рабочие нагрузки превышают обычную пропускную способность.

Правильный инструмент для правильной фоновой нагрузки Предполагается, что это простая фоновая работа, такая как отправка электронных писем, не связанная с обработкой запросов. Для сложных сервисов, таких как Celery, или альтернативные решения, такие как Taskiq, по—прежнему являются практичным выбором. Отношение к интерфейсу как к распределенной системе "под ключ" может преподнести сюрпризы.

Почему Python на мобильных устройствах может иметь смысл для бизнеса Предприятия, в которых работают десятки разработчиков на Python, предпочитают повторно использовать существующие навыки, процессы и конвейеры найма, а не использовать Flutter или React Native. Техническое обслуживание, скорость создания функций и охват во время текучки кадров или отпусков - все это благоприятствует платформам, основанным на накопленном опыте. Нативная разработка по-прежнему подходит некоторым, но не каждому бизнесу нужны параллельные мобильные команды.

Внедрение Python ML и конвейеров передачи данных на устройстве Большая часть популярности Python связана с машинным обучением и анализом данных, где алгоритмы основаны на Python. Перенос этих алгоритмов на Swift, Kotlin или JavaScript сопряжен с большими затратами на тестирование и риском расхождений. Запуск Python непосредственно на устройствах с помощью Kivy или BeeWare сэкономил бы время и уменьшил количество ошибок.

Импульс BeeWare и сила чемпионов BeeWare развивается под руководством Рассела Кит‑Маги, одного из создателей Django, чье руководство является примером влияния преданных своему делу лидеров. Экосистемы часто развиваются благодаря энергичным людям, а не только благодаря анализу рынка. Использование Python на мобильных устройствах также несет в себе ощущение красоты и веселья, которые поддерживают динамику.

PydanticAI 1.0: Прагматичная структура агентов PydanticAI 1.0 делает упор на надежные структурированные выходные данные, превосходя в этом отношении ADK от Google и избегая устаревшего контента, который можно увидеть в LangChain. Он управляет запросами и проверяет их достоверность, организует использование инструментов с помощью MCP, интегрирует RAG и предоставляет краткосрочную и долгосрочную память с кэшированием. Концептуально он напоминает цикл запросов веб—фреймворка - простой в основе, с богатой оркестровкой, наложенной на него слоями. Поддержка декоратора упрощает создание динамических системных подсказок для многих функций.

Ежедневные победы искусственного интеллекта и более чистый синтаксис Python Впереди Искусственный интеллект уже приносит пользу, автоматизируя рутинные задачи с низким уровнем риска, такие как создание и форматирование внутренних элементов Asana или Jira и составление резюме. В PEP 806 предлагается объединить несколько контекстных менеджеров в один блок with с помощью круглых скобок, что улучшает читаемость и сочетает синхронизацию с асинхронностью. Если версия 3.15 будет принята, большие тестовые наборы будут переписаны, чтобы использовать более чистый синтаксис.