- PVSM.RU - https://www.pvsm.ru -
Привет, я Михаил Корнеев, вместе с Григорием Петровым и другими ребятами из сообщества мы ведем подкаст о Python на русском. В прошлую пятницу мы собрались в онлайне обсудить, что запомнилось в уходящем году.
Это — текстовая выжимка из выпуска. Если вам удобнее слушать и иногда смотреть, это можно сделать на ютубе [1]. Если только слушать, подкаст также можно найти на популярных платформах: Apple Podcasts [2], Spotify [3], Яндекс.Музыка [4].
Гвидо ван Россум рассказал, что он с товарищами начал думать, как ускорить Python. В python 3.12 будет pre-JIT, в 3.13 будет более обширный JIT.
Но есть вопросики. Если втаскивать эти фичи по-взрослому, можно столкнуться с проблемами обратной совместимости. Едва ли сообщество и core-разработчики хотят повторения всей той драмы, которая была при переходе с двойки на тройку.
Еще одна часть тренда на ускорение — избавление от GIL. Но кажется проблема в том, что в этом направлении есть интересные эксперименты, но нет четкого плана внедрения.
30 лет назад, на заре Python, казалось, что не получится сделать высокоуровневый язык программирования с виртуальной машиной, в которой был бы быстрый garbage collector, который бы не тормозил многопоточность из-за синхронизации структур данных.
В конце 2021 года появился nogil [5] — форк Python с системой мультитрединга, в которой получилось отказаться от GIL без потери производительности. Эта неофициальная имплементация показала, что задача решаема. Более того, на тестах для всяких околовеб историй прибавка производительности составляла 10-20%. Репозиторий оставался активен и в 2022, работа в нем ведется.
Много лет у Steering Council была примерно следующая позиция: если кто-нибудь принесет версию Python без GIL, которая будет работать не медленнее, чем текущая версия, то мы выпилим GIL. Конечно, просто так GIL не выпилят. В начале это скорее всего будет флаг компиляции. Потом флаг интерпретатор. А через много лет, если экосистема нормально перенесет отсутствие GIL’a, могут сделать поведением по умолчанию. Что-то похожее было в Node.js, когда туда имплантировали ECMAScript modules: небольшими шагами за 10 лет пришли к тому, что подавляющее большинство библиотек и фреймворков поддерживало ESM из коробки, и просто выключили флаг.
Будем надеяться, что эта тема не остановится, потому что все в общем согласны, что быстрее — это хорошо.
Открытые каналы коммуникации тоже привлекают людей к технологиям. Популярность языков, популярность фреймворков — она во многом и про то, насколько хорошо люди продвигают их, общаясь с другими людьми. Очень приятно видеть, что для развития языка делают шоу.
Сидишь на YouTube, maintener’ы в прямом эфире за бокалом пива рассказывают и показывают, как делают релиз. Это круто!
Ушла эпоха. Пару десятков лет назад, когда Python еще не был таким распространенным, то, что Apple добавили его в систему, помогло его популярности. Понятно, что это был только один из множества факторов, но тем не менее.
Со временем встроенный в MacOS Python стал как трехколесный велосипед: люди уже научились ездить, и маленькие колесики только мешают. Но когда ты даешь технологию в комплекте с операционной системой, на нее начинают рассчитывать другие люди. И ты не можешь делать большие обновления, не сломав кому-то обратную совместимость. До сих пор куча программ рассчитывает, что в MacOS есть Python. Поэтому он будет доступен для нужд операционной системы и ее софта, но недоступен из командной строки. Пользователь же будет ставить отдельный user mode Python в отдельной песочнице — как это сейчас все и делают.
Что же, мы откинули дополнительные колеса трехколесного велосипеда. И стало только лучше.
И мы видим интересную статистику про package-менеджеры. Подавляющее большинство использует «голый» pip. Без особых изысков.

Интересно, что в вопросе про менеджмент зависимостей нет явного лидера: poetry — 27%, pipenv — 26%, pip-tools — 26%. Это круто. Значит, идет активная конкуренция, и каждый будет внедрять какие-то новые штуки, чтобы выбрали его.

Black вышел из беты. Кажется, куча людей его уже использовала, забив на статус беты. Очень полезная штука, если все в команде придерживаются одного стиля. Это существенно облегчает чтение чужого кода. С другой стороны, если у тебя или в команде уже сложились предпочтения, где-то расходящиеся с PEP8, «делать как все» может быть тяжело.
Asyncio постоянно допиливают. В 3.11 добавили exception group и task group. Приятно видеть эволюционное развитие.
Что еще запомнилось, одной строкой:
PEP 581, работу с issues перенесли на Github.
Анонсировали PyScript — возможность выполнять Python в браузере.
Обратно несовместимое изменение в Python, чтобы избежать ValueError: Exceeds the limit (4300) for integer string conversion.
Релиз Django 4.1.
Релиз Pandas 1.5.0.
В этом году запись Moscow Python Podcast переехала с уютной московской кухни в онлайн. Бывали периоды затишья, огромное спасибо Злате Обуховской, Илье Лебедеву и Валентину Домбровскому, что продолжали драйвить историю.
В 2022 мы остановились на отметке в 159 выпусков. Все их можно найти тут [6].
В 2023 планируем выходить пару раз в месяц и добавить новостные выпуски.
Этот блок создан на основе вопросов слушателей, подключившихся к записи в прямом эфире.
Будет ли Python 4. На самом деле, как пользователи языка, мы сами не хотим, чтобы была четвертая версия. Потому что она будет обратно несовместимой с третьей. И нам придется мигрировать свою кодовою базу с третьей на четвёртую. А кто помнит переход с 2.7 на 3, тот в цирке не смеется.
Возможно, когда-то в языке назреют критические изменения, которые будут того стоить. Но не в ближайшее время. Да и сам Гвидо ван Россум говорит, что за Python 3.11 будет 3.12, потом 3.13, 3.14, а там 3.99 и 3.100.
Могут ли какие-то фреймворки взлететь в следующем году. Кажется, чего-то нового на слуху нет. Все фреймворки, которые имеют хотя бы 2-3% в исследовании JetBrains, довольно старые. Конечно, появляются и новые фреймворки, но они сталкиваются с проблемой курицы и яйца. Чтобы стать популярными и юзабельным, им надо собрать тысячи и десятки тысяч пользователей. А как собрать вокруг себя столько энтузиастов, когда Django, Flask и FastAPI лидируют с огромным отрывом?

Пока активнее всего аудиторию набирает именно FastAPI (3-е место в исследовании). До его появления Tornado (4-е место в исследовании) было единственным способом сделать быструю асинхронную систему, когда у тебя основная нагрузка идёт на Input и Output. Думаю, FastAPI продолжит отъедать долю Tornado для таких задач.
С Новым годом! И услышимся в 2023.
Автор: Михаил Корнеев
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/381692
Ссылки в тексте:
[1] на ютубе: https://www.youtube.com/watch?v=Mq3Tkgrczi0
[2] Apple Podcasts: https://podcasts.apple.com/ru/podcast/moscow-python-%D0%BF%D0%BE%D0%B4%D0%BA%D0%B0%D1%81%D1%82-%D0%BE-python-%D0%BD%D0%B0-%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%BC/id1429543935
[3] Spotify: https://open.spotify.com/show/5nETntpLPbjbxh3HLrKqCu
[4] Яндекс.Музыка: https://music.yandex.ru/album/6892837?dir=desc&activeTab=about
[5] nogil: https://github.com/colesbury/nogil
[6] тут: https://www.youtube.com/playlist?list=PLv_zOGKKxVph51u_AIswuXCasZ7aZD8t3
[7] Источник: https://habr.com/ru/post/708204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708204
Нажмите здесь для печати.