Питонические атаки
1.2K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Питонические атаки
FastAPI перегнал Django по количеству скачиваний? 🤔 Твит
Что-то модно, что-то вышло из моды, а что-то вечно...

Спустя почти год, FastAPI окончательно перегнал Django по количеству скачиваний. Только Flask сдаваться, похоже, не собирается.

Всё равно какой-то диссонанс. Кажется, что Django — это прям база. Не верится, что он может вот так взять и сдуться. Господи, даже tornado скачивают в два раза больше, чем джанго. Но кто вообще знает, что такое торнадо? Поставьте хотдог, пересчитаем вас. Человек пять должно набраться. А про джанго точно слышали все. Джангисты, расскажите, может вы как-то на флешках или CD-RW болванках передаёте фреймворк по офису? Должно быть какое-то объяснение!
Я провёл исследование российского рынка найма (методом поиска по хедхантеру), и вот сколько вакансий нашлось с упоминанием разных веб-фреймворков:

* Django — 352 вакансии;
* FastAPI — 291 вакансия;
* Flask — 214 вакансий;
* aiohttp — 96 вакансий;
* Tornado — 12 вакансий.

Это вообще никак не матчится с количеством скачиваний этих пакетов из PyPI, но оно, наверное, и не должно. Здесь Django явно (пока?) чувствует себя хорошо, но FastAPI всё равно подступает. Похоже, пользователи Tornado просто предпочитают не афишировать себя.

Даже не знаю, какие тут можно сделать выводы. Для меня утверждение, что новичкам-питонистам обязательно нужно учить джанго, чтобы найти работу, точно не выглядит таким уж однозначно правильным. Вообще, лучше инвестировать время не в изучение конкретных фреймворков и библиотек, а в изучение основ языка или вообще основ computer science. Ну, или можно вообще взять data science. Всего лишь нужно изучить математику (это всегда полезно), и вы будете очень востребованы. Для сравнения, pandas упоминается в 413 вакансиях. А с FastAPI и Flask вы всегда разберётесь и на ходу, без отдельного изучения.
Pablo Galindo и Łukasz Langa запустили подкаст. Легендарные чуваки. Первый эпизод про core dev sprint, который недавно имел место быть в Чехии.

Люблю подкасты! Хотя тут вряд ли расслабишься, приходится активно думать, чтобы распарсить акцент Пабло.

Можно слушать на Spotify или Apple Podcasts.
Вы наверняка видели чувака с вот такой аватаркой, как на скриншоте. Не знаю как вы, а я постоянно натыкаюсь на его ответы на StackOverflow. Всегда по делу, максимально полезно, исчерпывающе. Мартин — один из восьми (на данный момент) юзеров на StackOverflow с репутацией больше миллиона. По тэгу Python он тупо первый, с отрывом от второго места больше, чем в два раза. Почти 20 тысяч ответов. Чувак просто легенда.

Собственно, недавно Мартина наградили почётным званием PSF Fellow за его огромный вклад в коммьюнити. Вообще, удивительно, что его не наградили раньше. Горжусь, потому что это я его номинировал :)

Новость
Astral официально анонсирует ruff format

График со скоростью работы я сначала неправильно считал, не заметил ruff. А он там вверху, просто полосочка очень мелкая.

Еще интересное заявление про статус форматтера:

While this is a Beta release, we consider the Ruff formatter production-ready. We’ve been using it in production for a while now, as have our alpha users from GitHub and Discord — including Dagster, whose monorepo contains over 50 Python packages and 500,000 lines of code.

Ну что, переезжаем с Black на Ruff?

P.S.: Кстати, я, кажется, начинаю понимать, почему Astral. Как-то связано с AST? Но ведь и линтер, и форматтер работают над CST! Кстрал должно быть!
Пока я спал, руководящий совет языка принял PEP 703 (Making the Global Interpreter Lock Optional in CPython).

Кратко о том, о чём говорится в посте:

1. Руководящему совету ясно, что несмотря на все проблемы и недостатки потоков, nogil будет полезен для Python, так как позволит находить более масштабируемые решения.
2. В то же время, они не уверены, получится ли убрать GIL не сломав при этом обратную совместимость - всё же не хотелось бы терять десятилетия развития базы пакетов. Существующая пакетная экосистема - это одна из сильных сторон языка, как и простая интеграция библиотек на C c CPython.
3. Оценить влияние nogil без реализации сложно, поэтому nogil должен выпускаться в составе регулярных релизов и не обязательно он там должен быть по-умолчанию.
4. Это всё ещё не гарантированная история. Если что-то пойдет не так - от изменений откажутся. Развёртывание должно быть постепенным и наиболее плавным.
5. Выкатка будет происходить в 3 фазы, которые возможно изменятся:
- В первой фазе nogil сделают возможным таргетом при сборке, чтобы разработчики могли тестировать свои пакеты.
- Во второй фазе, когда изменения в API и ABI будут сформированы, а поддержка nogil от сообщества будет достаточной, nogil-сборку добавлят как "поддерживаемую, но не по умолчанию".
- В третьей фазе nogil-сборку сделают сборкой "по-умолчанию", а от gil-сборки будут отказываться.
6. При успешной реализации nogil, ожидается падение производительности на 10-15% в худшем случае.

#pep
Moscow Python проводит митап вот прямо сейчас: https://www.youtube.com/watch?v=B_HprPoVoig
Вышел второй выпуск подкаста core.py от двух кор-разработчиков CPython. В этот раз про PEP 703 и выпиливание GIL — тема, которая волнует многих. Уже во всех радиоприемниках страны!

Кстати, я будто бы уже привык к акценту Пабло. Почти нормально слушается.

https://podcasters.spotify.com/pod/show/corepy/episodes/Episode-2---PEP-703-Removing-the-GIL-e2b8egi

P.S.: Да, для прослушивания этого подкаста, вероятно, потребуется включенный VPN. По крайней мере, в Apple Podcasts с российским айпишником он не включается.
А вы заметили, что Python 3.7 EOLнулся еще этим летом? Теперь walrus оператор есть во всех поддерживаемых версиях языка. Кстати, кто-нибудь нашел для него хорошие применения?

Python release cycle
Forwarded from DevBrain
Github Copilot теперь и через командную строку: https://github.blog/changelog/2023-11-08-github-copilot-in-the-cli-now-in-public-beta/
От себя скажу, что пользуюсь Copilot практически с момента его появления, очень выручает в написании тестов =)
В Х-твиттере наткнулся на статистику использования компилируемых языков в пакетах для Python. Зачем люди пишут пакеты для питона на Go?
PSF и JetBrains запустили своё ежегодное исследование Python Developers Survey 2023. Погнали заполнять! 👇

https://survey.alchemer.com/s3/7554174/python-developers-survey-2023

Через год, когда подведут результаты, будет повод написать пост, типа такого 😅
Мы у себя в компании протестировали ИИ-помощники для программистов. По результатам, добавили Github Copilot в список инструментов, которые оплачиваем всем нашим сотрудникам — он ускоряет написание рутинного кода. Цитирую коллегу:

Когда работаешь с копилотом, кажется, что он помогает нормально, но без вау. Зато когда его выключаешь, то ловишь себя на мысли, что пишешь какую-то фигню, вместо которой можно было просто табнуть.

Ещё из интересных инструментов, которыми пользуются коллеги:

- Phind: классный ассистент для программистов, которому можно позадавать вопросы. Доступен без VPN, никогда не отваливался и, что важно, дает ссылки на источники;

- Machinet: плагин, окно чата, которое видит весь твой проект. В нем можно написать «вот есть ручка //products, напиши такую же только для //orders и сделай такие же тесты» или «почини N+1 запросы в методе getusers на открытой вкладке»

Если ничем таким ещё не пользуетесь — рекомендую попробовать!
До какого уровня сможете дойти? Я чёт пока на 5 правиле застрял.

https://oskaerik.github.io/theevalgame/
Forwarded from CPython notes
Даешь цветные трейсбеки!
https://github.com/python/cpython/pull/112732
16 декабря будет Pytup с достаточно высокоранговыми спикерами. Можно смотреть онлайн или прийти оффлайн в Москве. Обещают рассуждения про 3.12. Регистрируемся?

https://yandex.ru/pytup/