Григория Петрова, Python-некроманта, совмещающего деятельность директора по техническому маркетингу (по-простому — деврела)  компании Evrone и члена программного комитета Moscow Python Conf знают уже не только питонисты. Время от времени Григорий возглавляет Программный комитет конференции Python, меняя Валентина Домбровского, нынешнего главу ПК. Так было заведено много лет назад, чтобы каждый председатель не закостенел в организации конференции, выборе докладов и генерации идей. Мы встретились с Григорием и узнали много интересного. Про трех китов предстоящей конференции Moscow Python Conf++ 2021. Про нейрофизиологию, которая всегда поможет. Про что будет хайп и зачем организаторам нужна фасилитация. Разумеется, мы поговорили про Python (спойлер: асинхронное программирование и Django тоже будут). Узнали, какие нас ждут доклады и какие боли питонистов будут утолены —  обо всем этом читайте под катом. Для чего тебе нужно участие в ПК? Для меня это, в первую очередь, эгоистичное желание стать лучше как разработчик, как спикер и как организатор конференций. Я пишу код, наверное, уже четверть века, и у меня не получается научиться чему-то новому, просто реализуя в коде очередную фичу. Но неплохо получается обучиться самому, готовя спикеров, проводя интервью с компаниями и выясняя, что беспокоит, волнует, интересует разработчиков на Python в 2021 году. Это огромные возможности, если их правильно использовать. Я стараюсь их использовать правильно. Расскажи про новые фишки конференции этого года. Я слышала, что в этом году участников ждут новые форматы и даже артефакты. Да, у нас будет много всего интересного. Любая профессиональная айтишная конференция — это место про поговорить. И это первое и главное, что мы стараемся организовать.  Мы готовим площадку, куда разработчики смогут прийти со своими вопросами и проблемами, со своими мнениями и видением будущего. Чтобы было место обсудить это друг с другом, задать вопросы, поделиться болью, рассказать об успехах и послушать, что делают коллеги в смежных областях. Чтобы сотни разработчиков поговорили друг с другом, мы, организаторы, создаем необходимую атмосферу, условия и декорации. Как это можно сделать?  Конечно, в первую очередь задать тему для обсуждения. Мы выбираем доклады по темам, которые важны и близки Python-разработчикам. Поднимаем на обсуждение темы, где нет единого мнения в сообществе. Нет публикаций в интернете а-ля «Выучите Python за 5 минут, станьте дата-сайентистом и зарабатывайте 100 тысяч в минуту». Это те вопросы, которые поднимаются в нашей ежедневной работе и составляют ее сложность.  Доклады, как наше основное блюдо, мы украсили дополнительными активностями, которые добавляют перчинку. Мы проведем ревью резюме разработчиков и круглый стол по взаимодействию разработчиков и дата-сайентистов. Python — один из самых популярных языков программирования в мире, но при этом Python-разработчики занимаются совершенно разными задачами. И так получилось, что разработчики, которые автоматизируют бизнес, делают веб-сайты и системы управления — немного дистанцированы от разработчиков, которые занимаются Machine Learning, Data Science и математикой. Наш круглый стол объединит навыки и умения всех. Тех, кто делает продукты и решения для бизнеса — что мы видим, как веб-интерфейсы, приложения, приходящие СМС и приезжающие заказы, с одной стороны. И Data Science, работу с данными —  с другой. Еще мы придумали интерактивную карту применения Python к различным частям инфраструктуры. Python огромен, и даже для небольшой области инфраструктурных решений есть огромное количество тулзов, фреймворков и библиотек. На карте мы соберем в одном месте интересное, а на афтепати — обсудим. Будет конкурс highload-решений от Златы Обуховской. А Илья Лебедев представит систему развития питониста. Илья, как и Злата, один из организаторов Moscow Python сообщества. Он много лет занимается образованием и пишет статьи, помогая питонистам стать лучше. Сейчас он участвует в одном очень амбициозном европейском стартапе, много работает с начинающими разработчиками и с мидлами. У него сложилась точка зрения, как питонисту стать крутым, о чем он и расскажет на конференции, представив свою систему развития. На афтепати мы ее обсудим, да и вообще всем будет о чем поговорить. В каком формате будет афтепати? Афтепати будет между первым и вторым днями конференции по старой доброй, заведенной Олегом Буниным традиции. Прямо на площадке конференции. Мы заменим чай на алкогольное и безалкогольное пиво, добавим сидра, поменяем печеньки на закуску и с бокалами в руках обсудим важные для нас вопросы в действительно неформальной обстановке. Я видела на сайте конференции «Карьерный roadmap питониста». Что это за активность? Дорожная карта разработчика — это подход с другой стороны к профессиональному развитию программистов. Не про код, а про задачи, чем разработчики занимаются. Екатерина Фирсова и Ксения Лыжина — HR-ры и нанимают много разработчиков. Они расскажут, как выглядит ландшафт того, чем мы занимаемся с обратной стороны баррикад — с точки зрения тех, кто готов платить за разработку. Какие воркшопы планируете провести? В программу уже установлен воркшоп от Сбербанка по Machine Learning. Приходите, чтобы попробовать новую ML облачную платформу от Сбера и поговорить с разработчиками, которые ее делают. Другие воркшопы появятся в программе в ближайшее время.  На каких болях питонистов построены тематические блоки конференции в этом году?  Это, скорее, общие направления. Python огромен. Красной нитью проходит через конференцию, что Python-разработчики занимаются очень разными вещами. Мы стараемся равномерно представить темы, которые будут интересны максимальному количеству питонистов. Тем не менее вырисовываются три огромных слона, на которых стоит программа конференции 2021 года. Первый слон, который нам доброжелательно помахивает хоботом — это сам язык Python, его эволюция и развитие. Язык взрослый, ему уже больше 30 лет. За это время он значительно изменился, и продолжает это делать. Вокруг языка давно есть сложившаяся инфраструктура. Обо всем этом у нас есть интересные темы, которые мы хотим поднять на обсуждение. Второй слон, который не менее доброжелательно помахивает хвостом — это всё то, что Python-разработчики делают для бизнеса. Бэкенд, серверная и веб-разработка, всё связанное с сетью и бизнес-автоматизацией, а также то, что запускается на серверах и обрабатывает запросы. Там тоже есть о чем поговорить. Третий слон, так же доброжелательно помахивающий своими огромными ушами — это Artificial Intelligence, Machine Learning, работа с данными и их визуализация. Тут, не побоюсь этого слова — хайп.  Потому что последние несколько лет Machine Learning и Artificial Intelligence пытаются сделать все. Это то, что потенциально способно изменить наш мир: то, как мы ведем бизнес, как общаемся друг с другом — практически всё. Python, как язык программирования, возглавляет список технологий, используемых для того, чтобы работать с Machine Learning, искусственным интеллектом и данными. Подавляющее большинство людей, которые этим занимаются — питонисты. Из остальных тем, которые будут представлены на конференции (тут слонов уже нет), это безусловно, в первую очередь DevOps — то, как мы работаем с продакшн. А также тестирование, базы данных и смежные темы на стыке всего перечисленного. Как эволюционировала конференция с момента ее создания? Что изменилось глобальным образом, а что — только с прошлого года, когда Moscow Python была одной из тех конференций, которые транслировались в онлайн-формате? В прошлом году мы провели большой эксперимент и сделали лучшее из того, что можно сделать в онлайн. Но мы, как и Олег Бунин, считаем, что будущее за гибридным форматом. Для нас, разработчиков, крайне важно собраться очно, чтобы за чашкой кофе, бокалом пива или стаканом воды обсудить технологии в кулуарах, с глазу на глаз. Эволюция нашей конференции как раз движется в этом направлении — создать для гостей максимально комфортные условия, чтобы они могли поговорить друг с другом. Чтобы им было где и о чем поговорить, мы увеличили количество потоков и добавили специй из активностей к основному блюду.  Не побоюсь этого хипстерского слова — мы занимаемся фасилитацией! Мы делаем всё для того, чтобы разработчик пришел на конференцию Moscow Python и его засосало фестивальным хороводом. Чтобы он опомнится не успел, как оказался бы за столом с коллегами, обсуждающим интересные для него темы. Это основной вектор развития конференции. Изменился ли формат нетворкинга из-за коронавирусных событий, и, если да, плохо это или хорошо, и что с этим можно делать? Формат нетворкинга, конечно, изменился. Но мы вместе с Олегом Буниным организуем огромную площадку, где все смогут держать социальную дистанцию и пользоваться новым приветствием «кулачками» с расстояния метра, потому что вирусы — это сложно. Никогда не знаешь, кто заболеет.  Но это не значит, что не надо пользоваться автомобилями, потому что они опасны и попадают в аварии. Это значит, что надо пристегиваться. Соблюдая концепцию социальной дистанции, дезинфекции поверхностей и ношения масок, мы по сути, начинаем пристегиваться. Мы будем дезинфицировать помещения, стараться не кучковаться и носить маски, которые на конференции будут лежать в огромных бадейках. Маски одноразовые. Надеваешь маску и идешь. Маска поистрепалась — выкидываешь в специально обученное ведро и берешь рядом следующую. Удобно. Ходят слухи, что ты любишь обниматься на конференциях. Как ты теперь решаешь этот вопрос?  Да, я до сих пор на каких-то мероприятиях обнимаюсь с людьми. Мне, как нейрофизиологу, действительно это очень приятно — окситоцин, серотонин, обнимашки. Но это не случайные люди — это люди, которых я знаю много лет. Я знаю, что они, как и я, уже переболели, вакцинировались, у них крепкое здоровье и они регулярно делают чекапы. С ними я, конечно, с удовольствием пообнимаюсь. Помогает ли тебе  нейрофизиология в подготовке к конференциям, к докладам?  Помогает. Я уже много лет готовлю спикеров. Это побочный эффект от моего увлечения нейрофизиологией, которой я занимаюсь с целью научиться лучше обучать программистов — быстрее, качественней, «синьористее». Пока у меня не очень получается, но в качестве приятного побочного эффекта я научился неплохо готовить спикеров для конференций. У меня есть методика подготовки, вы ее можете найти на Youtube.  Поделись парой лайфхаков. Главное, что можно порекомендовать при подготовке к публичным выступлениям — это то, что мы обучаемся повторениями. Поэтому если вы хотите научиться хорошо говорить со сцены, вам нужно взять слайды и повторять выступление.  Второй момент. Мы лучше всего обучаемся, когда у нас есть фидбэк, и чем быстрее эта обратная связь — тем лучше. Поэтому если мы хотим  хорошо научиться выступать, то лучше всего делать так: вставать перед ноутом, записывать минутный фрагмент выступления, смотреть его в записи, плакать, и записывать еще раз. И так несколько раз подряд, чтобы у вас сразу была обратная связь о том, как получается. Так тренируются те спикеры, которых готовлю я, — и у них получается. И последний совет.  Я рекомендую тренироваться в той же ситуации, в которой вы собираетесь выступать. То есть если вы собираетесь выступать на сцене перед разработчиками, нужно поставить ноут на тумбочку и отойти от него на метр. Взять в руки кликер и представить, что перед ноутом кто-нибудь сидит, слушая вас. А еще лучше посадить перед ноутом кого-нибудь из близких, чтобы они вас послушали. И начните рассказывать им — не слайдам, не в экран, а аудитории, пусть даже воображаемой. Перейдем к основному блюду. Что приготовлено для конференции? Как я уже говорил, плохие доклады в программу не попадают. Я не буду ранжировать доклады друг относительно друга. Но скажу про интересные доклады, на которые особо стоит обратить внимание. Во-первых, это доклад Владимира Филонова, посвященный работе с legacy. Владимир вместе со мной, Ильей, Златой, Михаилом и Валентином Домбровским — один из шести людей, которые возглавляют сообщество Moscow Python. И в отличие от меня, он был одним из первых, кто к этому сообществу присоединился.  Его сверхспособность — умение разбираться в legacy-коде. Много лет Владимир занимался тем, что брал старые солидные legacy-проекты на сотни тысяч строк кода, быстро разбирался в них и чинил проблемы, улучшая код и проекты. Владимир — это современный некромант. Он поднимает код из мёртвых. Много лет он хотел сделать этот доклад, но зомби-апокалипсис нам помешал. Но наконец в сентябре этого года на сцене мы увидим тени прошлого и узнаем, как бороться с legacy-кодом. Второй доклад, на который я хочу обратить внимание — это выступление Петра Ермакова, одного из руководителей сообщества Data Science России. Он расскажет, как работать с JupyterHub всем и каждому. Пётр уже много лет занимается работой с данными, он великолепный спикер. За последние годы все темы, которые он поднимал на конференциях для обсуждения, действительно стоили того, чтобы об этом поговорить. И эта конференция, конечно, не будет исключением. Это были доклады отцов-основателей. Что насчет бизнеса? Будут спикеры от них? Конечно. У нас будут представлены крупные компании, где разработчики используют Python. С ними можно будет поговорить и обсудить темы о специфике использования Python в большом бизнесе.  Денис Катаев из Tinkoff.ru расскажет про асинхронный ORM. Асинхронность — это ново, модно и быстро. Но почему-то он уже несколько лет не взлетает, хотя, казалось бы... Даниил Коноваленко из Yandex Go расскажет про поиск утечек памяти в Python, что тоже крайне важная тема для разработчиков, которые делают софт, призванный работать долго и с повышенной надежностью. Да, в Python есть GC, но утечки имеют место быть. Увидите на реальном примере, что с этим можно сделать. Одной из жемчужин нашей конференции будет доклад от Левона Авакяна из Wargaming. Он расскажет про использование Python в компании, которая делает World of Tanks. У них огромное количество питонистов и еще больше строк кода. Левон, частый гость наших конференций, в этом году сфокусирует внимание на том, какой инструментарий используется в Wargaming, чтобы обеспечивать качество кода и совместную работу всех команд над кодом. Чтобы они писали в едином стиле и не передрались, и чтобы инструментарий помогал им вместо того, чтобы мешать, как это обычно бывает. Что-то фундаментальное ждет нас? Артем Малышев, который очень много лет участвует в нашем сообществе и выступает с докладами. В отличие от многих разработчиков, он контрибьютор в эко-системе Python и делает части Django. Артем расскажет про современное тестирование в Python, про те сложности, с которыми мы сталкиваемся. И про решения, разумеется. Завершать конференцию будет ваш покорный слуга. Поговорим о том, что из-за хайпа сотни тысяч людей ломанулись изучать Python.  Я разберу уличную легенду, что Python — это очень простой язык, как Go. Что любой школьник может начать программировать, и, как сын маминой подруги, всего за несколько недель сделать новый Яндекс. Я покажу, каким сложным бывает Python и с чем разработчики будут сталкиваться, когда, выйдя за рамки студенческих поделок и маленьких стартапов, начнут делать большие сложные штуки.  Вместе с этими большими сложными штуками они увидят неприглядные стороны Python. Которые  сделаны для опытных пользователей и о которых обычно не пишут в тьюториалах, предназначенных для разработчиков всего лишь с несколькими годами опыта за плечами. Я покажу сложный Python. Самое вкусное — на десерт. Почему асинхронное программирование при всем его хайпе не захватило полностью бэкенд-разработку?  Асинхронное программирование дает ряд преимуществ, но это не серебряная пуля. Чему обычно противопоставляют асинхронное программирование? Оно лучше, чем что? Оно лучше, чем традиционное размножение процессами и потоками, потому что последние потребляют много памяти. Плюс переключения между этими процессами и потоками не совсем бесплатны. Асинхронное программирование позволяет в рамках одного потока с максимальной эффективностью по памяти обрабатывать разные события. Но при условии, что нагрузка идет не на процессор, а на ожидание. В этом случае будет всё очень даже хорошо, но есть две вещи, которые мешают асинхронному программированию захватить мир. Во-первых, память не то, чтобы очень дорогая. На современных серверах много памяти, и она дешевая. Поэтому даже когда асинхронное программирование позволяет сэкономить память в 10 раз, не всегда это достаточная причина, чтобы переписывать и усложнять код. А во-вторых, асинхронное программирование позволяет сильно экономить память и обрабатывать огромное количество запросов в секунду, только если у нас нагрузка идёт не на процессор, а на ожидание. То есть если большая часть того, что делает наше приложение — это ждет чего-то (БД, сетки, дисков), то мы, используя асинхронное программирование, очень хорошо экономим память, и наш код от этого сильно выигрывает. Но далеко не все задачи дают максимальную нагрузку именно на ожидание. Многие задачи дают ее на процессор, и тогда используется классический подход.  Само асинхронное программирование при этом не бесплатно. Это не про то, чтобы поставить галочку, и у нас сразу в 10 раз меньше память используется. Нет, асинхронное программирование требует последних версий Python и всей инфраструктуры, выстроенной в концепции асинхронного программирования.  Уже упомянутый мной  Денис Катаев из Тинькофф как раз и расскажет про такую архитектуру и БД с фокусом на том, почему асинхронное программирование — это не всегда панацея. И почему в ряде случаев мы не хотим писать код в асинхронном стиле, а хотим писать традиционный, размножающийся процессами и потоками, простой код. Насколько актуальная сейчас разработка веб-проектов на Django? Django создавался 15 лет назад, когда веб был совсем другой. Сейчас веб очень сильно поменялся и только небольшую часть веб-проектов можно сделать на чистом Django — так, как это делали 10-15 лет назад, без использования современных фронтенд-фреймворков. Последние перетягивают на себя огромное количество сложностей разработки. Какое-нибудь современное single-page application, со сложным фронтендом может быть в несколько раз больше по коду, по сложности, по количеству вовлеченных разработчиков, чем бэкенд на Django. Многие разработчики вполне резонно замечают, зачем вообще нужен Django? Вы же можете использовать что угодно — какие-нибудь простенькие фреймворки вроде Flask, Ruby с его Ruby on Rails, Go, JavaScript — зачем нам сейчас такой большой комбайн? Тут есть нюанс. Django не только делает веб-странички. Более того, могу сказать, что непосредственно веб-странички всегда были и остаются небольшой частью того, что делает Django. Django в современном мире — это, по сути, ORM (Object-Relational Mapping) плюс система точек расширения и плагинов. Django-бэкенд, который мы делаем, позволяет удобно и быстро работать с объектами. Он дает админку, сессии, аутентификацию, авторизацию, кэширование, разделение прав и многие другие штуки, которые начинают быть важными на проектах среднего размера и выше. Поэтому можно сказать, что для маленьких, простеньких проектов, например, лэндингов, single-page application, которые на бэкенде не делают ничего и где нет пользователей, Django действительно будет неактуальным. Но для проектов, где планируется рост, усложнение, интеграции — все те батарейки (как мы их называем), которые дает Django, будут полезны. То, что Django не делает современного фронтенда — это, возможно, даже хорошо, учитывая, какой зоопарк технологий на современном фронтенде. Подробнее про это и другие вопросы о Django расскажет Федор Борщов сразу после открытия конференции 27 сентября. Его тема как раз о том, как и зачем начинать проекты на Django в 2021 году. Актуален ли Python для highload проектов? Не так давно на профильной конференции Highload++ Весна 2021 я сам выступал с темой, почему Python медленный (скоро выйдет статья на Хабре об этом). Python, в отличие от других языков программирования — например, C, Java или Go — действительно медленный в задачах числодробления, где много логики выполняется на стороне Python.  Хорошо, что таких задач мало. В огромном количестве наших задач, связанных с высокой нагрузкой, нет большой сложной логики. Там простенькие запросы, простенькая логика обработки, часто это роутинг запроса из одного место в другое или какие-то несложные преобразования. 28 сентября, второй день конференции, откроет Александр Морозов из Datafold, который как раз расскажет, как они переезжали с Flask на FastAPI. Он утверждает, что у них нет highload. Тем не менее у них достаточно много запросов.  Плюс, как я уже рассказывал, у нас будет конкурс highload-решений на Python. Вы сможете посмотреть на примеры действительно большого количества запросов в секунду, которые могут делать решения на Python, и обсудить это. Современный Python большой и гибкий. Мы можем обрабатывать большое количество запросов в секунду. Во-первых, асинхронным кодом, про который я уже рассказывал, в тех случаях, когда невелика нагрузка на процессор. А если она у нас вдруг велика, мы можем воспользоваться разными способами компиляции Python в нативный код. Это тоже не серебряная пуля, не всегда подойдет, но способно ускорить наш код в десяток раз. Это то, с чем мы вас ждем на конференции. И это я только начал рассказывать. Профессиональная конференция для Python-разработчиков пройдет 27 и 28 сентября в Москве. Расписание готово, выбрать самые интересные доклады можно уже сегодня.  Билеты можно купить здесь. До встречи в офлайн-сентябре!