Раз в месяц мы в Moscow Python Podcast собираемся и обсуждаем свежие релизы, заинтересовавшие нас инструменты и статьи. В этом выпуске для вас говорили Михаил Корнеев и Григорий Петров.
Вы также можете посмотреть на нас:
Или послушать на платформах — Apple, Google, Spotify, Яндекс.Музыка, сайт подкаста
Python уже 32 года
20 февраля 1991 года Гвидо ван Россум написал 20 писем с исходным кодом Python в рассылку alt.sources. Это были 90-е, форумов не было, люди общались в основном в email-листах. Почитать больше.
Субъективно самое яркое событие за 32 года – переход с двойки на тройку. Ничего не работало. Были мысли «а не закопать ли переход на третью версию, как PHP закопала переход на шестую версию или Perl закопал свой переход вообще».
Зато Python отбросил устаревшее. Появился нормальный юникод, с байтиками, это было круто. Другие классные вехи:
Концепция gradual typing (постепенного ввода типов в стибилизирующиеся части кода) была популяризирована именно Python. Это мега круто.
F-strings – мелочь, но очень приятная.
Async/await, появление FastAPI показало, что оно прямо взлетает.
Pattern matching, добавлен в последних версиях Python.
Refactoring stdlib, который начался много лет назад.
Jupyter – классная штука, если надо погонять какие-то данные.
Pandas тоже сделал работу с данными очень удобной для людей, которые не хотят глубоко погружаться в программирование.
Инструменты для улучшения кода – был Pylint, потом Flake, Black, делают очень много инструментов.
Phylum отловили три атаки на PyPI
В репозитории выкладывали много пакетов с вредоносным кодом, которые должны были уводить крипто-кошельки. Конечно, если ты сам добровольно себе этот пакет не поставишь, то он плохо тебе не сделает. Но их скачивали из-за похожих названий с настоящими пакетами. Подробнее про атаки – первая, вторая и третья.
Связанная новость, Python Foundation ищет разработчика в штат, который будет заниматься безопасностью PyPI и Python. Это очень классно, ведь supply-chain атакуют. По GitHub ходят краулеры, заходят в package.json и анализируют на уязвимость. Классно, что экосистема Python переходит на более серьезные рельсы безопасности.
Rust, fullstack-фреймворки и аннотации типов
Или Python-тренды в 2023:
Использование Rust вместо С. Изучить Rust сильно сложнее, чем C на базовом уровне. Но гарантии Rust очень хороши для системного кода: если все-таки удалось написать код, то он не потечет по памяти и не упадет по неправильному к ней доступу. По этой причине Rust сейчас завоевывает такую популярность.
Fullstack фреймворки – Streamlit, NiceGUI, Pynecone. Куча попыток нащупать какое-нибудь рабочее решение, сейчас нет единого мнения, как правильно делать. Можно пощупать каждый и решить самому.
Аннотации типов все больше и больше завоевывают мир Python. Писать типы в первый раз больно и неприятно, особенно, если тебе надо описать сложную штуку. Но при этом выгоды от типов гораздо больше.
Автор Pydantic поднял инвестиции от Sequoia Capital
Sequoia Capital – это очень старая, известная венчурная компания, которая вкладывается в стартапы. Если Sequoia дала человеку деньги, это во многом знак качества. Сам Сэмуэль Колвин сейчас работает над Pydantic 2. Хочет выпустить до конца квартала, но пока не говорит, что там будет.
Pydantic скачивают больше, чем Django, хотя Django – это один из самых популярных Python пакетов последние много лет. Венчурные фирмы вкладывают в основателя. Самюэль Колвин не просто писал код. Он создал сообщество и сделал свой пакет популярным. В это вложила деньги Sequoia. Детали тут.
Короткой строкой
Два новых эпизода Moscow Python Podcast. В феврале мы обсудили обновления в Python 3.12 и Copilot.
В марте готовим еще два эпизода:
про CI/CD — смотрите нас 17 марта
про observability — выйдет в эфир 31 марта
Python в блокчейн-разработке — если вы как-то относитесь или хотите относиться к тому, что называется Web 3.0, посмотрите отчет. Там очень много Python-библиотек для практически всех типов применений.
Релиз MyPy 1.0 — перешли на что-то близкое к SemVer, для обозначения версии. Говорят, что на 40% быстрее чем версия 0.991. Это очень круто.