DevBrain – Telegram
DevBrain
3.03K subscribers
28 photos
2 videos
9 files
712 links
Автор @adilkhash

Веду блог https://khashtamov.com/
Download Telegram
Про проблемы с памятью в Python: https://innovation.alteryx.com/how-to-troubleshoot-memory-problems-in-python/
Крутейшие доклады с Python Web Conf 2021: https://www.youtube.com/playlist?list=PLt4L3V8wVnF4iB8pGfkR7eozIJPwCM7vv
Очередное крутое эссе от Пола Грэма: http://paulgraham.com/hwh.html
Курсы по Redis стали доступны в режиме self-paced обучения бесплатно: https://university.redislabs.com/
Интересный кейс работы с транзакциями в Django или как ошибка в коде привела к неприятным последствиям для компании: https://hakibenita.com/django-nested-transaction
Наткнулся на гайд от Dropbox про «карьерную лестницу» для различных направлений, полезно будет менеджерам, формирующим в своих командах документ по развитию сотрудников: https://dropbox.github.io/dbx-career-framework/
А у вас в компании есть четкие правила карьерного роста?
Anonymous Poll
19%
Да
62%
Нет
19%
Не знаю
Если работаете с Python и PostgreSQL, то точно знакомы с psycopg2. Вот уже наверное 15 лет это самый популярный драйвер для постгреса на питоне. Де-факто стандарт.

Циферка 2 в названии указывает на вторую версию. Сейчас автор библиотеки (Daniele Varrazzo) очень активно работает над следующей, третьей версией, написанной с нуля, несовместимой с предыдущей версией, зато с новыми полезными фичами и исправлениями давних решений в плане API и принципа работы.

Например, psycopg3:

* поддерживает async/await из коробки; пожалуй, учитывая опыт работы с psycopg2, я делаю ставку на этот драйвер для асинхронных приложений (aiopg и asyncpg далеко не идеальны, к сожалению);
* полностью обмазан тайп-аннотациями 🥰;
* умеет делать подготовленные выражения (prepared statements) и курсоры на стороне сервера;

Вот тут можно посмотреть презентацию новой версии от автора: https://www.youtube.com/watch?v=XH5_Hc_BHaE

А вот здесь инструкция, как можно установить и пощупать бета-версию уже сейчас: https://twitter.com/psycopg/status/1410221901323063299?s=20
Как и ожидалось, Python обогнал Java 😅

https://www.tiobe.com/tiobe-index/
Начал смотреть доклады с Python Community Meetup от Райффайзенбанка. Годный контент и картиночки забавные.

https://youtu.be/qfMWyStoyS4?t=290
Первый доклад там по сути является пересказом событий и выступлений с Language Summit 2021. Там вообще было показано и сказано много интересного. Ускорение питона нынче самая популярная тема. Горячий выдался саммит, и сообществу наверняка понадобится какое-то время, чтобы всё это качественно впитать и осознать.

Вспомнил всё ещё разок и заодно законспектировал. Вот вам пересказ пересказа.

🐍 Making CPython faster
* Гвидо собрал команду внутри Майкрософт, и они будут работать над ускорением CPython;
* конечная цель — x5 ускорение в течение 4 лет;
* в 3.10 появятся первые оптимизации из этой серии, а 3.11 уже якобы должен работать примерно в два раза быстрее;
* всё это будет достигнуто без жертв со стороны обратной совместимости и мирного населения.

🐍CPython Improvements at Instagram
* внутри Instagram развился собственный форк CPython под названием Cinder, где они экспериментируют с различными подходами по улучшению производительности;
* в общей сложности, получилось ускорить CPython на 20-30%;
* среди применённых оптимизаций — различные срезания углов в асинхронном коде, оптимизация словарей;
* сделали JIT;
* исходники форка доступны на гитхабе, но поддерживаться оно не будет; вместо этого, они будут пытаться пропихнуть удачные оптимизации в апстрим CPython;
* они там в инстаграме совсем ударились в форки питона, поэтому кроме Cinder у них есть ещё один форк под названием Pyro, где упор сделан на более оптимальную работу сборщика мусора.

🐍HPy — Present and Future
* в разработке находится HPy — новый API/ABI для работы с интерпретатором из нативного кода, например, из библиотек на C;
* обещают, что это сделает PyPy и Python внутри GraalVM быстрее;
* в перспективе это ускорит и CPython, но не сейчас.

🐍 Progress on Running Multiple Python Interpreters in Parallel in the Same Process
* субинтерпретаторы в перспективе решат проблему GIL, т.е. позволят эффективно утилизировать несколько процессорных ядер без создания новых процессов в ОС;
* в синтетических тестах субинтерпретаторы работают чуть медленнее, чем мультипроцессинг, но это пока что лишь прототип, так что ок;
* синхронизацию между субинтерпретаторами планируется сделать через что-то, очень напоминающее каналы в Go.