Написать пост

Что произошло в мире Python в 2023 году

Новости

Прошёл 2023 год, а значит, пора подводить итоги года в мире Python: ведущие подкаста MoscowPython рассказали, что изменилось в течение прошедшего года.

Прошёл 2023 год, а значит, пора подводить итоги года в мире Python: ведущие подкаста MoscowPython Григорий Петров и Михаил Корнеев рассказали, что изменилось в течение прошедшего года.

Превью видео TxuuVkBrI_I

Саммари подкаста

Этот выпуск Moscow Python Podcast обсудил различия в разработке мобильных и веб-приложений, отметив, что мобильные приложения популярны, но не охватывают всю разработку. Гости также обсудили “темный Python” – невидимую часть экосистемы, не участвующую в сообществе и open source. Они также отметили год больших релизов, включая Pandas 2.0, PyTorch 2.0 и другие. Обсуждалось также будущее фреймворка Lightstar и его возможное влияние на Django. Гости выразили положительное отношение к Lightstar и планируют его использование в новых проектах. Подкаст завершился благодарностями и пожеланиями с Новым годом.

Основные мысли:

  1. Это выпуск Moscow Python Podcast, который выходит в эфир при поддержке курсов Learn Python.
  2. Подкаст ведут Григорий Петров из компании Evron и Михаил Корнеев, тимлид в международном IT-стартапе.
  3. В выпуске обсуждаются новости Python-сообщества и подводятся итоги года.
  4. Основными темами стали использование AI в программировании, в частности чат-ботов GPT и инструментов вроде CodeWhisperer и Codex от OpenAI.
  5. Обсуждается влияние типизации на Python и сравнение с языком C++.
  6. Выпущен Python 3.12, который принес множество внутренних изменений, но мало пользовательских нововведений.
  7. Появление новых веб-фреймворков, таких как Lightstar, Black Sheep и Robin, ориентированных на скорость и асинхронность.
  8. Упоминаются крупные релизы в Python-экосистеме, включая Pydantic 2, FastAPI 0.100, MyPy 1.0, Pandas 2.0, PyTorch 2.0, URL.lib 3.2.0 и SQLAlchemy 2.0.
  9. Затрагивается тема безопасности в Python и найм Security Developer in Residence в PSF.
  10. Обсуждается разделение веб-разработки на фронтенд и бэкенд и влияние этого на Python-сообщество.

Ниже представлена транскрибация ролика, то есть его текстовая версия.

Вступление

[Михаил Корнеев] [00:02] Привет!

[00:02] Сегодня пятница, 29 декабря 2023 года, почти Новый год. Это Moscow Python Podcast. Здесь говорят про Python. Мы выходим в эфир при поддержке курсов Learn Python, за что им большое спасибо. И мы, как обычно, пишемся вживую на YouTube. Приходите к каналу Moscow Python, подписывайтесь, ставьте лайки. Вот это все. Самое главное, пишите в чатики. Мы с большим удовольствием общаемся с нашими слушателями во время подкаста. И сегодня в студии обычный состав ведущих. Григорий Петров, деврил компании Evron.

[Григорий Петров] [00:37] И Михаил Корнеев, тимлит в международном IT-стартапе.

[Михаил Корнеев] [00:41] И сегодня у нас, как я говорил, предновогодний выпуск. Мы каждый год, по-моему, с февраля мы начали выходить каждое первое число месяца с новостными подкастами и просто обсуждать, что произошло в Python-сообществе за прошедший месяц. И мы хотим подвести итоги, мы хотим поговорить про самые, на наш взгляд, интересные новости того, что происходило с питончиком за этот год. И если вы считаете, что мы какую-то новость незаслуженно упустим, пишите в комментах, мы рады пообсуждать. Ну что, Гриш, давай начнем с того, что, на твой взгляд, было самое интересное?

Самое интересное явление в IT за 2023 год

[Григорий Петров] [01:27] Ну, слушай, вот совсем недавно я в Сербии ввел ЯТОКС, и у нас там была такая активность «назовите явление года». И почему это чат ГПТ? Я думал, что все спикеры называли чат ГПТ. И, наверное, у нас в разработке это пайлот, Код Висперер, Кодиум, собственно говоря, сам чат ГПТ, с которым вполне можно общаться за программерские вопросы, ну и вообще такое повсеместное использование Artificial Intelligence везде. Вот мы уже, например, с тобой сейчас созваниваемся в лайве, и ты вот уже не можешь сказать, вот этот вот шарик новогодний, он настоящий или CGI? Вот как ты думаешь, твои ставки?

[Михаил Корнеев] [02:28] Ну, по отражениям можно попытаться угадать, но если ты его трогать не будешь, это прям сложно, потому что он статический. А повернись так, если немножко, повертись. Я бы сказал, что все-таки настоящий пока. Что за ним там...

[Григорий Петров] [02:46] Пока настоящий.

[Михаил Корнеев] [02:47] Пока настоящий, да.

[Григорий Петров] [02:49] Вот, и с кодом так. Сейчас у вайтишников появился новый крутой инструмент, когда они проходят трехмесячные курсы, потом проходят интервью не без помощи чат-ГПТ. А потом еще и работают не без помощи чат-ГПТ. И, с одной стороны, у этого много каких-то очевидных плюсов, что опытные разработчики могут очень быстро решать задачи, потому что они задают чат-ГПТ и прочим ассистентам правильные вопросы и могут очень хорошо фильтровать ответы. У них очень хорошо развита чуйка, где нейросеть галлюцинирует, а где нет. А вот для всех остальных тут, конечно, очень и очень сложно. И, насколько я знаю, ты уже активно используешь artificial intelligence в своей работе. А вот расскажи, как ты это делаешь?

[Михаил Корнеев] [03:47] Да, я пока это самое. Меня, оказывается, смотрит брат с мамой. Мама, привет! Простите. Смотри, я действительно за этот... Ну, мне как бы кажется, что вся эта движуха, она интересная, она важная. Это действительно может стать, ну, там, новым инструментом. Я не знаю, в свое время там языки высокоуровневые стали, да?

[Григорий Петров] [04:08] Или Идриешки с автокомплитом.

[Михаил Корнеев] [04:10] Абсолютно, да-да-да. То есть это что-то совсем новое. Я за этот год попробовал довольно много решений. Ну, то, что перечислял, там, да, и CodeWhisper пробовал, амазоновский мне не очень понравилось, но, опять же, я последний раз его трогал месяца три назад, может быть, за это время, в начале осени. Я вот последнее, что пытался попробовать, это Google выпустил как расширение свой, ну, какую-то свою вот эту приблуду, я, честно говоря, не запомнил, как она называется. Вот там мне совсем не понравилось, я даже не смог получить от него какого-то вменяемой пользы.

[04:49] Я сейчас остановился на Copilot-чате, который CopilotX. Я его сейчас приспособился использовать для написания тестов. Ну, то есть вот я там сейчас писал библиотечку, у меня сейчас там покрытие я там сделал чуть больше 90%, причем не напрягаясь, не вымучивая себя. Другое дело, что надо понимать, что этот инструмент, он не совсем пишет за тебя тесты. То есть он простые кейсы он может писать, а вот сложные кейсы он часто пишет такую ересь, которую тестирует ни то, ни так, не запускается, в общем но зато, когда он это написал, ты смотришь на нее, думаешь, эх, Семен Семенович, кто же так тесты пишет, сейчас покажу. И это, по крайней мере, мне гораздо легче, чем писать тест с нуля, потому что у тебя нет уже этого белого листа, и там прийти и направить за неразивым джуном иногда бывает гораздо проще, по крайней мере, мне. То есть мне он чуть-чуть экономит время на тестах, самое главное, убирает вот этот вот белый лист. Код писать, ну, понятно, что вот эта подсказка копайлотовская, если вы представляете, о чем я, да, то есть он там прям куски пытается себе подсказать, ну, иногда угадывает нормальная история, а вот именно целиком писать код я пробовал, но, опять же, может быть, я слишком многого пока от него хочу. Вот. Поэтому, если вы с питоном работаете, я прям очень рекомендую потратить время на то, чтобы со всеми этими AI-штуками разобраться. Они не сразу, ну, то есть там надо реально учиться этим пользоваться, и пока ты не научился, оно будет вызывать, конечно, много попоболи. Но зато потом будет польза. Вот.

[Григорий Петров] [06:41] И побольше общаться с чат-ГПТ. Набивать групп.

[Михаил Корнеев] [06:45] Да-да-да, но на самом деле всякие прикольные всякие вопросики, типа вот такие штуки, которые ты типа сам не помнишь, да, которые ты делаешь там один раз в жизни. Типа тебе надо вот эти вот там какой-нибудь специфический, Саш, ключ сгенерить, вот этот, который эллиптик, как они, эллиптик curse, вот как оно. Мне это там надобилось типа за год два раза. Вот, естественно, я даже себе в этот самый... У меня есть специальное вношение. Место, куда я заношу всякие такие сниппеты, которые мне могут понадобиться. Я даже что-то не стал заносить, потому что, ну, типа, это такая штука, которая вряд ли мне второй раз понадобится скоро. А вот Чадо пришел, спросил, он мне прям чутенько ответил, прям всю строчку дал. Вот это вот там OpenSSL, там 3... Вот все вот эти вот флаги, которые ну, типа, если ты постоянно не используешь, ты их не запомнишь никогда просто, никогда. Хорошая штука, рекомендую.

Релиз Python 3.12

[Григорий Петров] [07:42] Раз в год выходит Python. Ну, теперь у него каденс, насколько я понимаю, близкий к 12 месяцам. И в целом вот раз в год у нас стопильно в конце года выходит новый Python, новый Ruby. Вначале новый Python, потом новый Ruby.

[07:58] Они вот одинаково идут. И 3.12, который вышел в этом году это релиз, который, с одной стороны, он не принес ничего прям вот такого вот нового-нового. То есть, если смотреть на 3.11, это ускорение, это exception groups, это тайп-хинты, в общем, много всего. 3.10 это Union Types, возможность их через символ пайпа описать.

[08:45] Это Pattern Matching, там тоже довольно-таки много, там контекстные менеджеры. 3.9 это... Что у нас там в 3.9? А, кстати, в 3.10 улучшили Union Types. А в 3.9, а да, в 3.10 Union Types, а в 3.9 для диктов добавили оператор пайпа, добавили таймзоны, тоже кучу всего добавили. И вот мы можем так смотреть, 3.8, 3.7, вот, постоянно был какой-то движ. Вот в 3.12 я не могу назвать ни одной такой юзерфейсинг, штуки, которые прям вот в язык добавляло что-то новое. Вот, но при этом очень много всего по мелочам добавили в кишки. То есть у нас и Pure Interpreted GIL, и всякие там Immortal, Immutable Objects, и огромный фундейшн к тому, чтобы в 13, в 14, во-первых, это Pure Interpreted GIL выдать пользователям для бесчеловеческих экспериментов, во-вторых, начинать уже от GIL отказываться. Это и совместимость перв, и новый sys-мониторинг, и по flip-walk, и по flip-puff, от которого теперь можно наследоваться.

[10:25] SQLite 3 UUID теперь можно использовать в качестве утилит командной строки. Новый синтаксис для дженериков, когда после определения функции или класса можно включать в квадратных скобочках писать «ти». У меня вьетнамские флешбеки просто плюсов, когда вот это type name, type word «ти» и начинается.

[10:50] Вот, там альясы для типов с использованием ключевого слова «type», новый type dict, новый синтаксис «override». То есть это все какие-то мелочи, очень много всякой мелкой машинырии для типов, по типу, добавляют, дотачивают напильником, но ничего большого. И вот при этом относительно типов, относительно типов, вот я смотрю и вижу, как Python просто со страшной скоростью превращается в плюсы. Вот, дженерики прям, особенно мне это показывают, вот я смотрю на generic код Python и прям вот вижу плюсы. Да, вот я 25 лет назад так на плюсах писал. Вот это вот мой код. Вот он прям вернулся из прошлого.

[Михаил Корнеев] [11:45] Слушай, ну это же на самом деле как бы все необязательно, и большая часть того, что они там добавили, это на самом деле, ну, по большому счету, там, ментейнеров, библиотек нужно. Скажем так, обычный питанист может с этим никогда в жизни-то и не столкнуться.

[Григорий Петров] [12:01] С одной стороны, да, с другой стороны, вот я уже потихонечку начинаю говорить про отравление Python типами. Вот, когда у нас слишком много типов, и вот я читаю статьи там от core-разработчиков, каких-то известных программистов, которые сейчас уже начинают с печалью вспоминать, а вот знаете, 10 лет назад у нас Python без типов был, и это было круто. Так что, с одной стороны, оно все опциональное, с другой стороны, много начинающих разработчиков и медлов, и это вот, знаешь, как книжка «Банды четырех», вот это вот «Pattern in Programming Languages», которая, по мнению многих разработчиков, и я в том числе, считаю, что она нанесла огромный вред индустрии тем, что она была глоссарий, словарь, что из серии «смотрите, вот такая штука называется адаптер, а если у вас в коде вот такая штука, то это фасад». А люди подумали, что это учебник, что там перечислены штуки, которые должны быть в коде. И бросились писать код с использованием описанного. Это знаешь, как у студентов-медиков, которые читают большую медицинскую энциклопедию и находят у себя признаки совершенно всех заболеваний, а мальчик у себя еще и беременность находит по симптомам. И вот тут тоже очень похоже, когда вот разработчикам дали типы, сказали, у вас есть опциональные типы. И вот слово опциональное тут как-то прослушалось, и очень многие это воспринимают, как у вас есть типы, фигачьте. И далее вот с типами наперевес, эгегей, ну, такое.

[Михаил Корнеев] [13:54] Слушай, ну это же со всеми, ну то есть есть, я вот давно здесь сидим, там сколько технологий, сколько подходов, сколько было, что типа вот там все должны теперь вот знать вот это, вот это, я не знаю, там. Я прекрасно помню, как Agile превратился из такой, как это, партизанско-революционной штуки практически в столб такого вот кровавого энтерпрайза. Ну, то есть люди очень любят брать всякие штуки, запихивать их на флаг и этим флагом тыкать в лицо ближнего своего. Мы так с вами устроены. Мне кажется, просто надо в себе это отлавливать, ну, просто как бы принимать разумные решения, потому что если у тебя маленький проектик, хотя я, честно говоря, и маленькие проектики свои, там, какие-то подпроектики я пишу с типами, мне так удобнее. С другой стороны, я никогда не увлекаюсь сложными типами. То есть, если я понимаю, что я хочу написать что-то вот это вот такое, может быть, иногда это показатель того, что, может быть, я что-то не то и пишу. Для меня, по крайней мере. Вот, поэтому не знаю.

[Григорий Петров] [15:04] Мне в этом плане типы вот сейчас очень напоминают вот эту вот злую шутку про красную шапочку. Когда вот дали типы, и теперь вот десятки тысяч разработчиков, как вот эта вот красная шапочка, бегут через лес с типами наперевес, а все остальные в углюсе.

[Михаил Корнеев] [15:29] Ну, все языки, это как какой-нибудь год дженерики, да? Сколько было разговоров, что в год дженериков не будет никогда, и вот мы с вами, да не когда-то. Дожили не так, чтобы долго, да никогда, казалось.

[Григорий Петров] [15:45] Никогда такого не было, и вот опять.

[Михаил Корнеев] [15:47] Да. Ну, 3.12, кажется, действительно, больше технический релиз из прикольного. Я там, наверное, вспомню эти самые F-стринги. Ну, там, в некоторых случаях, ну, по крайней мере, теперь стало удобнее, станет, когда там 3.12 действительно значит, везде использовать то, что можно будет перестать париться про кавычки, нам, а вот разработчикам IDE, конечно, посложнее будет.

[Григорий Петров] [16:18] Ну, слушай, у разработчиков и DE-шек работа такая.

Обновление Ruby

[16:22] Тут уже второй год подряд в качестве advance of the year один из разработчиков Ruby и вообще экосистемы вокруг Ruby, он в прошлом году рассказывал о том, как работает рубевая виртуальная машина, и это прям вот был цикл из 30 статей, которые очень обогатили мое понимание, как работает работает питанячая виртуальная машина. А в этом году он рассказывал, как он делал парсер Prism для синтаксиса Ruby. То есть они там...

[17:00] Ruby, он в этом плане гораздо сложнее Python, и нет вот какого-то такого, знаешь, как это, используемого всеми парсера. Вот, который бы тебе... Ты на вход ему даешь исходник, а он тебе на выходе дает абстрактное синтетическое дерево. Вот за последние 20 лет в мире Руби там десяток этих парсеров конкурируют, и они все такие полусырые, без документации, недоделанные. И вот они там в Shopify, по-моему, заморочились. Сейчас, кстати, я могу чекнуть, парсер называется Prism.

[17:38] Да, они в Shopify заморочились, вот они с нуля на сишечке написали парсер рубей, назвали Prism, и он целый месяц, вот буквально пару дней назад закончил, рассказывал, вот как он парсил рубевый код, какие вообще штуки могут встретиться в рубевом коде, и как этот парсер переживает неполный код. Потому что парсер этот, он предназначается для IDE-шек. То есть, в первую очередь, для Visual Studio Code, чтобы парсер этот работал на стороне ленгвич сервера, и IDE-шечка тебе все красиво подчеркивала, там, типы и так далее. Вот это вот все, что мы любим. И вот он показывал, ой, какое там ambiguity, как это все неоднозначно, как там куча всяких разных сложных вариантов. Это, конечно, такая большая сложная история, когда мы говорим о синтаксисе языка, вот то, что мы используем Subset, а то, что вообще может встретиться в коде и то, с чем работают парсеры наших IDE-шек. Чтобы они нам могли красиво красным подчеркивать, это, как говорится, две большие разницы. Но у Python очень хороший парсер и очень хорошая интеграция в VD, гораздо лучше, чем сейчас у Ruby. Хотя, вот, возможно, с призмой у Руби ситуация сильно улучшится.

[Михаил Корнеев] [19:06] Порадуемся за рубистов.

Немного про no-guild

[19:09] Что ж, 3.12 обсудили, и, наверное, вот в прошлом году, примерно в это же время, мы как раз обсуждали тему про no-guild. Как раз мы там зарубались на тему того, что надо ли вообще гил трогать, а соберутся, не соберутся, а решаться, не решаться. И этот год показал, что таки, да, решаться, что от как бы смелых экспериментов это пришло к принятому 703, по-моему, ПЕПу, да, 703, мне кажется, no-guild, и вот уже в том же самом... В 3.12 уже сделали всякие прикольные штуки для того, чтобы ноги стали там ближе. То есть там вот это вот разделение, выделение общего стейта, вот эти immortal, кажется, они называют, да, immortal objects, такие вот все штуки, что кажется очень прикольно, то есть есть большой шанс, что, ну, в этом, в следующем году, конечно, мы многих не увидим, ну, в смысле, если только вы не работаете с скажем так, достаточно близко к мякотке в питоне, то есть сами не собираете себе там интерпретатор и вот это вот все там, как бы не компилить его с какими-то этими тестовыми флагами, но я думаю, что через год уже это будет штука, которую можно будет там, как бы народ аккуратно начнет лапкой щупать. В следующем году саб-интерпретаторы нас ждут. Вот, собственно, то, чего я, например, жду. Просто интересно пощупать. Это вот саб-интерпретаторы.

[Григорий Петров] [21:06] Оно гораздо быстрее, чем я ожидал. То есть, если ты помнишь мои предсказания прошлого года, то я ожидал, что несколько лет они будут только телиться с тем, что вот принимать пропозы и не принимать, а давайте вот доски строгать, но струганной стороной класть вниз, чтобы никого не обидеть. И вот это вот все, я думал, что пройдет несколько лет, прежде чем e-mail и прочие активисты додавят core-разработчиков, что надо с этим что-то делать. Но нет, видимо, E-mail сейчас настолько сильное лобби, что просто пришли и сказали «надо». Core-разработчики сказали «окей, окей». Надо, значит, надо. Унесите, пожалуйста, мы все сделаем.

[Михаил Корнеев] [21:53] Ну, там же и Microsoft, по-моему, дал денег, и [xxx] дал денег. Ну, в смысле, прямо оплатил работу какого-то количества разработчиков, которые там будут, ну, занимаются этим фулл-тайм.

[Григорий Петров] [22:05] Да, там очень хорошее лобби, ну, я их могу понять. Когда у тебя железо дешево, но при этом железо имеет определенную архитектуру, что у тебя в один сервер ты можешь запихнуть много ядер и много памяти. Но при этом между серверами коммуникация у тебя очень медленная. Между процессами у тебя коммуникация довольно медленная. Это архитектурная. И ты с этим особо ничего не поделаешь.

[22:30] И все так смотрят, понимают, когда вот у них сервер, на котором 128 гигов памяти, куда влезает модель, на котором каких-нибудь 128 физических потоков, и все такие, ну блин, я хочу один Python-овский процесс, который бы загрузил всю модель в память, и чтобы я эту модель в 100 потоков обрабатывал, потому что вот у меня там куча всяких кросс-операций, я не буду там одновременно в одно место писать, но при этом вот я буду из кучи мест читать и в кучу мест писать какие-то вот там. Процессинг данных и так далее. И вот все так смотрят и говорят, ну мы так хотим. У нас ускорится в 100 раз. А ускориться в 100 раз это прям круто. И до этого даже не Subinterpreters нужны, для этого нужны именно NoGill. Потому что Subinterpreters тебе не сильно поможет, тебе нужно будет как-то адски заморачиваться, чтобы вот эту вот модель шарить между Subinterpreters. Потому что у нас по умолчанию будет у всех read-only, и вот там нужно будет просто выворачиваться наизнанку, чтобы это все как-то делать. А NoGill тебе просто ускорит работу с Data Engineering для моделей в 100 раз. Ну, сто раз это хорошая цифра.

[Михаил Корнеев] [23:56] Да, да. Ну, будем ждать, будем смотреть. Я думаю, что у нас будет в этом году, в следующем году регулярная рубрика «Новости Ногила». Будем вам рассказывать. Так, ну что ж, следующее. Ну, на мой взгляд, интересная новость, то, что в этом году наняли Security Developer in Residence в PSF. И, на мой взгляд, ну, то есть одно то, что как бы PSF – это теперь CVS, ну, CVS Authority, как, кажется, правильно называется, да? CVS Authority они. Ну, короче, они теперь могут CVS номера присваивать, да.

[Григорий Петров] [24:38] Да, это очень круто.

[Михаил Корнеев] [24:39] Вот, это очень круто. Папе прошло Security Audit. Это, конечно, ну, Security с точки зрения кода, да, потому что там они вот на днях опять блокировали регистрацию юзеров в пакетах. Я вот не знаю, я, по-моему, вчера это видел, позавчера заходил на Апапе. Не знаю, может быть, уже открыли снова. Вот, но действительно безопасность – это большая история, особенно, как бы, то, насколько Python стал популярен, да, если где-то там в процесс релиза или там куда-то еще произойдет что-то не то. Я так понимаю, что, ну, я просто подписан на как это, newsletter как его зовут? Сет Ларсона. Сета Ларсона.

[Григорий Петров] [25:30] Так же, как и я.

[Михаил Корнеев] [25:32] Вот, да. И он рассказывает, что он делает, в том числе, что он делает в плане обеспечения качества поставки, то, что там, я не знаю, были какие-то левые ключи, то, что там не у всех разработчиков, не все разработчики подписывали. То есть, там, например, релиз делает один человек, а подписывал он ключом другого человека. Это а на самом деле что-то еще делал третий человек.

[25:56] И вот это вот все, конечно, оно прикольно до тех пор, пока ты не начинаешь на это надеяться. Вот именно как на часть своего продукта. И тогда начинаешь об этом задумываться. И классно, что они задумались об этом. Классно, что они наняли кого-то. И классно. Мне особенно нравится, что чувак действительно рассказывает о том, что он делает. Да, потому что иногда все-таки безопасники люди такие, они тогда бывают очень своеобразные. А тут прям рассказывает, рассказывает интересно и, по крайней мере, из того, что я вижу, делает действительно полезные вещи, не просто там... Воздух греет.

Бизнес и open source в 2023 году

[Григорий Петров] [26:40] И мне особенно импонирует, что все похоже на то, что бизнес наконец-то научился делать деньги с помощью open source, вместе с open source, как бы так потактичнее сказать, интегрировать open source в бизнес.

[26:57] Это то, что мы сейчас видим. В этом году Яндекс очень много рассказывает про то, как Яндекс сейчас поддерживает open source, и это уже прям много всего. Вот реально, прям в компании сильное направление поддержки open source. Они это рассказывают на хайлоде, показывают, они это рассказывают на ятокс, на каких-то других своих мероприятиях. Это круто, потому что раньше, вот там 20-25 лет назад у нас был не очень здоровый выбор между абсолютно closed source, закрытым кровавым энтерпрайзом, вот ты приходишь работать в банк, тебе выдают ноутбук, тебе берут подписку о неразглашении, кучу других подписок, и только после этого показывают маленький кусочек банковского кода, вот с которым ты будешь работать.

[27:52] А весь банковский код тебе не показывают, потому что «а вдруг что?». И это крайне сильно затрудняло вообще развитие индустрии, обучение разработчиков, потому что непонятно у кого учиться. Ты не можешь посмотреть, как в больших компаниях нормально пишут код, потому что они это по понятным причинам никого не показывают. А open source это, как правило, в большинстве своем, это не какие-то прикладные штуки. А это библиотеки, фреймверки, то есть строительные материалы. И вот, изучая GitHub, ну, ты можешь научиться, как сделать библиотеку или как сделать фреймверк, если предположить, что они там норм качества. Ну, какие-то есть норм качества, но это, опять же, нужно еще научиться отделять зерна от плевел. А вот научиться, например, делать бизнес-автоматизацию с помощью GitHub, ну, мы не можем. Потому что бизнес-автоматизация на гитхабе или лежит какого-то очень базового уровня, совершенно не того, что внутри компании. И вот эта вот пропасть между тем, на что мы можем посмотреть, и тем, что действительно надо делать, она, на мой профессиональный взгляд, очень мешала индустрии развиваться. И вот сейчас я вижу смещение тренда, что бизнес наконец-то научился использовать open source в целях зарабатывания денег и все больше и больше больших продуктов и уже не инфраструктурных продуктов, а уже вполне себе бизнесовых продуктов, конечных решений. Open Source, оно становится частью цикла разработки, оно становится совместимым с деньгами, и разработчики наконец-то могут смотреть на код друг друга и смотреть, как взрослые дяди и тети, которые по 30 лет пишут код, делают это за деньги в больших компаниях. Что используют, что не используют, где рыбу заворачивали. На мой взгляд, это хорошо для индустрии.

Новые поколения фреймворков

[Михаил Корнеев] [30:02] Да, чем больше мы смотрим на код друг друга, тем, кажется, лучше и мы становимся, и код. Что ж, на мой взгляд, еще интересная эта история скорее про веб, это становятся популярными новые поколения, наверное, фреймворков. То есть я, прежде всего, имею в виду Lightstar, который бывший Starlight, Black Sheep, Robin.

[30:35] Опять же, у всех этих фреймворков, если посмотреть, главная такая selling point – это скорость. И во многих местах, типа Black Sheep, типа Робина, это происходит потому, что под капотом там много рубей. Ой, господи, рубей. Раста, конечно же. Раста. Ну, по крайней мере, в Робине я, честно, в Black Sheep внутрь не смотрел. Вот в Робине я внутрь смотрел довольно много. Вот. Ну, мне лично еще нравится Lightstar. Как бы мне очень импонирует их подход. Мы сейчас их у себя там довольно активно начинаем. Ну, как в прошлом году мы их как бы аккуратненько затаскивали одной лапкой, вот так вот. А в этом году будем двумя лапищами тащить во все места, скорее всего, потому что, честно говоря, вот, ну выглядит гораздо приятнее, чем тот же Фастапи. При всем уважении к Фастапи, это действительно большой проект, это большая работа, но в Фастапи есть свои известные минусы и проблемы.

[Григорий Петров] [31:48] В WhatsApp был первым, он проторил путь, показал дорогу, и теперь, да, действительно, у нас следующее поколение, которые внимательно поучились на ошибках Fast API. Вот Async – это интересное, конечно. Меня немножко беспокоит, что сейчас Async – это для API-шек. Вот, Django, оно, ну, пытается стать Async, но даже вот Django 5 недавно вышел, но это все равно пока еще такое полумеры.

[32:26] Причем в мире Ruby все то же самое происходит, то есть там основное это Sync, чисто теоретически рельсы можно запустить в async режиме. У меня на Ruby Rush об этом рассказывали. Но этой серии кучи всего придется переписывать самому. То есть это может себе позволить большая компания, которая там возьмется за переписывание стандартных библиотек. Вот. Это не то, чтобы круто. При этом вот каких-то прям замен дженги мы не видим. То есть сейчас вот дженго очень медленно, очень неторопливо становится осинком. И это, наверное, такая очевидная слабость сейчас в мире Python, что он хорош для API-шек в вебе, но уже не так хорош для каких-то больших проектов в вебе. Но понятное дело, что можно это атрибутировать тому, что мир просто, вот, мир веб-разработки как жопу разорвало на две части, backend и frontend. На backend у нас остались API-шечки, на frontend у нас остался React. И вот сейчас, собственно говоря, людям и не нужно на бэкэнде ничего, кроме опишечек. Все остальное, за редким исключением, делается на фронте.

[Михаил Корнеев] [33:52] Я бы немножко поспорил, в том плане, что появился, ну, как появился, он уже несколько лет, появился HTTPX, который довольно прикольный. Я, правда, опять же, его только на каких-то своих маленьких подпроджектах использовал, но выглядит вполне как история, которая может решить, опять же, если там та же самая Django, ну, насколько сейчас действительно много людей делают на Django именно сайт, как мы привыкли, с таким статическим фронтендом. Нет, мы, конечно, помним, что jQuery это 75%.

[Григорий Петров] [34:26] Да, Django просто статический фронтенд.

[34:29] Вот Ruby в этом плане вывернулись, когда они сделали Hotwire. То есть они прям сделали такой сильный ход конем, когда придумали технологию, которая позволяет отказаться от фронтенда, все рендерить на бэкэнде и по веб-сокету маленькими кусочками на фронтенд пушить. А вот у Python сейчас такого нету.

[34:52] И вот экосистемно, если мы хотим сделать что-то большое, вебное на Python, то мы, по сути, это делаем не на Python. Мы это делаем на React. А на Python мы делаем опишечки, сессии, аутентификацию, авторизацию, базу и все. То есть, backend схлопнулся до опишек. С одной стороны разделение обязанностей, с другой стороны, отсутствие фуллстеков. И почему к нам за Руби приходят чаще, чем за Пайтоном, к нам это в Outstaff? Потому что рубисты, они фуллстеки, они просто бизнес-фичи. Вот сидит команда рубистов и пилит эти бизнес-фичи целиком. А если у тебя традиционное разделение на Python или Go или там Java или PHP backend и реактовский frontend, то ты добавляешь кучу complexity, тебе нужно, чтобы архитектор высиживал все там коммуникации между ними, следил, чтобы кто-нибудь не пронес туда GraphQL и в целом релизный срок очень сильно увеличивается, потому что им нужно договориться, всякие вот эти вот дегидрации, гидрации, deployment усложняется, то есть тут у нас Python, тут у нас нода для фронтенда, тут у нас отдельно backend для фронтенд на расте, тут у нас CDN, и вот прям получается большая штука. Больше...

[Михаил Корнеев] [36:28] Наверное, корпоративный софт какой-то. Я, например, вот там последние годы я работал больше там, где mobile first, где у тебя есть там мобильные клиенты. Есть где-то, конечно, и веб, и они даже там твою опишечку потребляют, но по сравнению с мобилкой это вообще ни о чем там, да. Это там даже не 10%. Поэтому, ну, и я подозреваю, что у многих так, именно у тех, кто... Даже я подозреваю, что в корпоративном софте сейчас многие живут на мобилках, потому что, ну, блин, мы все сейчас живем на мобилках, камон. Так что ну, наверное, просто разные, как это, разные сегменты.

[Григорий Петров] [37:08] Разные сегменты. Мы смотрим индустрию прям совсем по-разному. У тебя, наверное, больше консюмерская, у меня больше enterprise, когда приходит там какая-нибудь банка и говорит мне вот админку для внутренних процессов. Или там какой-нибудь ритейл огромный и говорит, что вот нам там для магазинов нужна куча автоматизации, и тикетницу, и ресурс плейнинг. Мобильные аппликации у нас есть, но это для клиентов, для заказов, это просто. А вот ERP, это не просто, давайте ERP делать. Поэтому да, мобильные приложения сейчас мега популярны, но это не вся разработка. Разработка очень большая, даже два опытных разработчика, которые сидят в одном подкасте, оба питанисты, они все равно уже не пересекаются, потому что у одного Python как backend для мобилок, а у другого Python как backend для CRM-ок и ERP-шек. Это разные Python, разные фронтенды и все вообще разное.

[Михаил Корнеев] [38:13] Нет, ну есть же вообще вот эта вот моя любимая история про темную материю, да, про то, что мы на самом деле наблюдаемый нами Python-экосистемой и так далее, это там какой-то там процент, 30% скажем, да, там, и 70% это такой темный питон, который никто не видит. То есть люди, которые никак не участвуют в сообществе, не взаимодействуют с open source, кроме как pip install и поехали, и мы на самом деле не участвуем в вопросах, не участвуем в конференциях. Подкасты не слушают, в комментах не пишут.

[Григорий Петров] [38:46] Мы не видим, потому что они сидят за каким-нибудь артефакторе или локальным чиз-шопом.

[Михаил Корнеев] [38:52] Да, в том числе, да. И, соответственно, как-то они у себя используют. Мы можем только догадываться о том, как они у себя там используют. Это тоже очень интересно об этом думать.

[Григорий Петров] [39:03] Ну что ж.

[Михаил Корнеев] [39:06] И последнее, на самом деле, на мой взгляд, то, о чем ну, стоило упомянуть, это был год больших релизов, потому что «Пайдентик 2», да, big deal, потому что «Пайдентик» суперпопулярен. И, опять же, очень интересно то, что они сделали с ним, там, да, они очень сильно все ускорили, потому что пайдентик как бы считался быстрым, но на самом деле он не был быстрым, а теперь он на самом деле стал быстрым. В фастапе 0-100, ну, тоже это какой-то...

[Григорий Петров] [39:41] Это, по сути, переход на второй пайдентик.

[Михаил Корнеев] [39:45] Да, да. MyPi 1.0. Тоже, в общем, долго этого ждали. Годами, годами и годами. Pandas 2.0. Тоже Pandas. Это лет 9, наверное. Сколько лет назад? Ну, в общем, давно.

[Григорий Петров] [40:02] Это фундаментальный релиз. Вот это вот в памяти. Arrow, кажется. Arrow. Это прям все существенно ускорило.

[Михаил Корнеев] [40:14] Да, PyTorch 2.0, URL.lib 3.2.0, это меня больше всего, конечно, улыбает.

[Григорий Петров] [40:21] Было бы весело, если бы она была, знаешь, скоро будет URL.lib 3.2.1. Нет, вообще зачетная версия это будет 3.2. Уреллип 3.2.1.0. Вот это будет мега-релиз.

[Михаил Корнеев] [40:40] Будем ждать. Что еще вышло? SQL Alchemy вторая, хотя, казалось бы, она с нами уже давно, а вот я тут посмотрел, что в начале этого года зарелизилась.

[Григорий Петров] [40:52] Ну, хотя там изменений не то, чтобы много.

[Михаил Корнеев] [40:55] Да, фласк третий. Ну, вот это то, что мы вспомнили навскидку. Если что-то мы пропустили, то тоже пишите нам в комменты. Ну, и, наверное, это все темы, которые мы хотели обсудить. Год был, с точки зрения Python, как минимум, интересным. Вот я вспоминаю, как мы с тобой сидели здесь каждый месяц, и каждый месяц было что обсудить, каждый месяц было что поговорить, и самое главное, не приходилось, кажется, высасывать темы из пальца, да, то есть какие-то совершенно брать вот, не знаю, просто чтобы поэтому мы живем с вами действительно в интересный момент для языка и в хороший момент, чтобы быть питанистом. С чем я вас поздравляю всех.

[Григорий Петров] [41:44] У меня тут только минералка.

Заменит ли Lightstar в будущем Django

[Михаил Корнеев] [41:58] Заменит ли... Давайте поотвечаем на вопросы в чатике. Заменит ли Lightstar в будущем Django? Вряд ли, хотя вот, на мой взгляд, как раз Lightstar, он чуть ближе к Джанге, вот, идеологически, в том плане у них тоже сразу из коробки много всего интересного, и архитектурно мне гораздо больше нравится то, что... Ну, понятно, что между ними и Джангой большое количество... Да, вот, поэтому я сомневаюсь, что они Джангу... Джангу любят за админку. Ну, наверное, тот, кто принесет.

[Григорий Петров] [42:37] Джангу любят за админку. Но вот у меня есть подозрение, что какая-то современная версия Дженги, возможно, Lightstar ей станет, если получит хорошее финансирование, в которой запилят админку. И которая будет как-то хорошо отвечать на вопрос, а что нам делать с фронтендом? То есть не так беспомощно, как сейчас Django, ну и Siri, вот вы можете шаблончик положить и сделать веб, как он был 25 лет назад. А вот будет иметь какой-то ответ про современный веб, как это имеет ответ современный Ruby on Rails, которые ты ставишь, седьмые рельсы, и у тебя уже из коробки Hotwire. То есть ты можешь делать веб-странички, где ты нажимаешь на кнопочки, что-то происходит, у тебя страничка перестраивается, и там в список добавляется элемент, и это все было сделано на бэкэнде, и по веб-сокету скоординировано на фронтенд, и он вот перестроился. Это из коробки, это в экзамплах. То есть ты вот уже можешь делать нормальные современные веб-приложения, а не как в джанге, что ну вот у нас шаблоны, но вы же понимаете, что вы не будете использовать эти шаблоны, что вы будете использовать React. А как вы будете использовать React, это out of scope.

[Михаил Корнеев] [44:08] Муслим спрашивает про Lightstar. Ну, мне нравится, да, лично мне нравится. Мы на работе у себя вот в прошлом, ну, в этом году, в смысле, еще в этом году с ним экспериментировали, там в паре мест его затащили, и, в принципе, нравится. Там, например, очень прикольно то, что там по умолчанию сейчас идет MessageSpec, который, ну, всех вообще делает по скорости и если у тебя как бы там не нужно сложной, сложной валидации и так далее, вот там прям он очень хорош в таких местах. Ну, опять же, там можно вместо, если тебе нужна сложная что-то валидация, да, то вместо MessageSpec там элементарно используется, можно начать использовать опять по идентик второй и будет там, ну, немножко медленнее, зато как бы со всеми наворотами по идентика. Поэтому я вот сейчас в этом году мы планируем его начать использовать как один из основных вот фреймворков вместо, ну, собственно, у нас там останется Django и Lightstar, а в FastTap скорее всего мы перестанем тащить в новых сервисах.

[Григорий Петров] [45:23] И комьюнити у них хорошее, и позиционирование понятное.

[Михаил Корнеев] [45:32] Да, да. Так, ну, кажется, вопросов больше нет, поэтому всем спасибо большое, что пришли перед Новым годом. Рад был вас их видеть. И с вами был Moscow Python Podcast. Здесь говорят про Python. Мы выходим в эфир при поддержке курсов Learn Python, за что им большое спасибо. И мы выходим вживую на YouTube. И в записи на основных подкаст-площадках мы к вам вернемся уже после Нового года с обычным новостным выпуском. С вами был Григорий Петров, деврел компании Evron.

[Григорий Петров] [46:14] И Михаил Корнеев, Team Lead в международном IT-стартапе.

Ссылка на канал

Следите за новыми постами
Следите за новыми постами по любимым темам
465 открытий3К показов