Как стать автором
Обновить

Что произошло в мире Python за последний месяц

Время на прочтение4 мин
Количество просмотров5.7K

Раз в месяц мы в Moscow Python Podcast собираемся и обсуждаем свежие релизы, заинтересовавшие нас инструменты и статьи. В апреле поговорили об исследовании экосистемы Django от JetBrains, LTS‑релизе Django 4.2, релизе Pandas 2.0 и свежих PEP.

Вы можете посмотреть на нас:

Или послушать на платформах — Apple, Google, Spotify, Яндекс.Музыка, сайт подкаста. А ниже текстовая выжимка выпуска.

LTS-релиз Django 4.2

LTS означает Long‑Term Support, релиз будут поддерживать три года до 2026.

Самые интересные на наш взгляд обновления:

  • Реализовали поддержку psycopg3. От psycopg2 в будущем планируют отказаться, но сейчас поддерживаются обе либы.

  • Добавили темную тему, в админке можно ее переключить. Раньше она тоже была доступна, но надо было ковыряться.

  • Новые асинхронные методы — asave(), adelete() и arefresh_from_db() для моделей; aadd(), aclear(), aremove() и aset() для relation managers.

  • На смену DEFAULT_FILE_STORAGE и STATICFILES_STORAGE приходит настройка STORAGES, которая позволяет объявлять столько файловых стореджей, сколько нужно.

  • И теперь минимальная версия для проектов на Postgres — 12.

Почитать про все обновления релиза можно здесь.

Pandas 2.0

Вышел релиз Pandas 2.0, подробности по ссылке, а коротко об обновлениях ниже:

  • Если раньше Pandas работал только поверх NumPy, то в новой версии можно выбрать в качестве бэкенда Apache Arrow.

  • Работа с отсутствующими значениями и строками стала эффективнее при использовании Arrow backend.

  • Copy‑on‑write — ленивое копирование, при котором реальное копирование данных откладывается до тех пор, пока мы не начнем изменять данные. Позволяет в ряде случаев, сохраняя идиоматичность кода, ускорить что‑то в 10, а при удачном стечении звезд и в 100 раз. Это уменьшит количество ошибок и не скажется на производительности, когда нам нужно только читать данные.

  • Числовые индексы теперь могут быть не только 64-х разрядные (Int64, UInt64, Float64), но и любых других числовых типов.

  • У datetime и timedelta теперь можно указывать единицу измерения. Если раньше Pandas приводил все к наносекундам, теперь можно явно указать что‑то типа dtype="datetime64[s]".

Свежее исследование Django-экосистемы от JetBrains 

JetBrains выкатили свежее исследование экосистемы Django, где можно почитать, как десятки тысяч разработчиков со всего мира используют Django. Ниже интересные на наш взгляд цифры:

  • Django 3.1 и ниже используют в основном опытные разработчики, новички выбирают новые версии. Опытные разработчики, скорее всего, сидят на каком‑то большом монолитном проекте, которому уже много лет, и каждое обновление требует дополнительных сил и времени.

  • 80% опрошенных используют Postgres, 40% — SQLite, и только 28% — MySQL. 54% используют Redis, а Memcached используют только 16%.

  • Pytest, unittest и pytest‑django, они примерно одинаково популярны. Pytest — 41%, unittest — 36%, pytest‑django — 31%.

  • А по поводу джаваскриптовских фреймворков можно сказать, что React, Vue.js и неожиданно jQuery на первых местах, то есть 36% используют React, 32% используют jQuery, 25% используют Vue.js. И растет использование htmx.

  • Еще можно посмотреть, например, на популярность фронтенд‑фреймворков CSS. 62% используют Bootstrap, 22% — TailwindCSS. Тут мы видим, что Bootstrap все еще сильно‑сильно опережает.

  • Относительно Cloud‑провайдеров. Мы видим, что Amazon Web Services до сих пор на первом месте, 44%. Догоняющие — это Digital Ocean и неожиданно, Heroku. 23% и 21% соответственно. Все остальные, Google Cloud Platform, Microsoft Azure, PythonAnywhere, там 12, 8, 10 процентов, Linode 7%. Fly.io, новой игрок, уже целых 3%, он опередил какие‑нибудь Openshift и Openstack, что, в общем‑то говоря, очень и очень неплохо.

  • Доминирующая IDE все так же VS Code, 42%, догоняет PyCharm, 38%, и пользователей Vim традиционно 7%, Sublime Text 5%, и EMacs 2%. 1% пишут с использованием Notepad++.

Короткой строкой 

В апреле отвечали на вопросы зрителей. Сравнили FastAPI и AIOHTTP, обсудили, как дебажить асинхронный код, как не сломать типы при использовании декоратора и другие вопросы. И готовим ближайшие выпуски:

  • про обучение Python поговорим c Артемом Рудаковским из Лицея Академии Яндекса 28 апреля.

  • новости за апрель обсудим 5 мая.

PEP 709 — предлагают инлайнить list/dict/set comprehensions вместо того чтобы, как сейчас, создавать nested‑функцию на этапе создания байткода. Получаем 11% выигрыша в скорости работы и минимум побочных эффектов.

Отклонили PEP 582 c pythonpackages. Решает простые задачи для новичков, но не является лучшей альтернативой виртуальным окружениям.

PEP 710 — предлагают сохранять ссылку и хеш для каждого установленного пакета.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Самые интересные новости за март
49.35% LTS-релиз Django 4.238
33.77% Релиз Pandas 2.026
36.36% Исследование Django-экосистемы от JetBrains28
22.08% PEP 709 – Inlined comprehensions17
6.49% Отклонили PEP 582 – __pythonpackages__5
3.9% PEP 710 – Recording the provenance of installed3
Проголосовали 77 пользователей. Воздержались 12 пользователей.
Теги:
Хабы:
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

Публикации

Истории

Работа

Python разработчик
136 вакансий
Data Scientist
60 вакансий

Ближайшие события