Организовывать три айтишных события одновременно с выходом Legion — то еще удовольствие. Тем не менее, как принято говорить у геймеров, «маны нет — но мы держимся». А я продолжаю брать интервью у спикеров, которые всего через неделю расскажут вам интересное из мира Python разработки и, что самое важное, будут готовы все это обсудить во время многочисленных кофе пауз, которые я аккуратно расставил по всей программе.
Кирилл занимается разработкой уже больше десяти лет и в данный момент работает над Яндекс Паспорт, используя для работы исключительно Python. Яндекс — компания немаленькая, Паспорт — не самый простой проект, и Кириллу есть что нам рассказать. Но прежде чем он это сделает, я задал ему десяток коварных вопросов о разработке, ответы на которые и расположены под катом. Кстати, с предыдущими двумя интервью вы можете ознакомиться здесь и здесь.
Чем тебе довелось заниматься как разработчику? Какие компании, задачи, языки программирования и технологии? Где сейчас используешь Python?
Почти всю свою жизнь я программировал «за еду», поэтому приходилось писать «виртуальные музеи» на PHP, доделывать военные АСУ на чистом Си и даже патчить форумы на замшелом Perl.
Совсем оголодав от подобной жизни, я схватился за первую попавшуюся вакансию разработчика и неожиданно для себя стал программистом на Python. Далее были самые интересные 6 лет моей жизни, которые привели к использованию этого языка во всем, от рабочих задач до «домашних» хобби-проектов.
По твоему опыту, какие сильные и слабые стороны у Python по отношению к другим мейнстрим языкам программирования в твоей области?
Первое что приходит на ум — огромное количество «батареек», уже созданных кем-то программных модулей под ту или иную задачу. Зачем изобретать всё с нуля, когда можно найти всё «из коробки» и заняться чем-то более интересным? С другой стороны, в этом море возможностей несложно и утонуть.
Во-вторых — удивительно дружелюбное, открытое для людей и новых идей сообщество. На Западе это более заметно за счет большего количества социальных событий (те же митапы, конференции, хакатоны), но и у нас оно наконец-то развиваться.
В-третьих — язык удивительно подходит для «наколенной» разработки, когда роящиеся в голове идеи прототипируются с удивительной быстротой. Утиная типизация, возможность мутировать почти любой элемент окружения — всё это позволяет не спотыкаться о формализм многих других языков. Впрочем, всё это начинает несколько стеснять при попытке перенести эфемерные прототипы в мир масштабных реализаций и надежно работающих систем.
Если бы ты мог вернуться в прошлое, когда Гвидо создавал Python, и дать ему один, но любой совет — о чем бы ты сказал?
Очень легко давать советы «задним числом», всё-таки многие решения им принимались достаточно взвешенно и сообразно обстоятельствам того времени. Но я бы попытался мягко намекнуть, что надо бы тщательнее продумывать систему типов и, возможно, настаивать на их явном указании.
Что ты используешь для написания и редактирования Python кода?
PyCharm Community Edition разлива 2016 года или PyCharm 5 с fallback лицензией. Нет, не фанат. Да, просто привык.
Давай поиграем в Нострадамуса. Как думаешь, что станет с Python через несколько лет?
Какой-нибудь сумрачный гений однажды соберет волю в кулак и создаст инструмент для бесшовной миграции кода с Python 2 на Python 4, который будет с жесткой типизацией и без GIL.
Но будет готов к релизу Python 5, с функциональным подходом и зелеными тредами…
Что думаешь по поводу перехода с Python 2 на Python 3? Что-нибудь интересное, с чем ты лично сталкивался на практике?
С каждым годом этот вопрос встает всё острее, и не в последнюю очередь благодаря появлению всё более «вкусных» фич вроде asyncio и type hints. Кажется, скоро начинать новый проект сразу под Python 3 станет наиболее логичным ходом событий.
Не говоря уже о том, что исправлений ошибок в Python 2 со временем будет всё меньше.
Какой один совет ты бы дал всем новым разработчикам на Python?
Следуйте Zen of Python!
На каком языке программирования пишешь на работе кроме python? А вне работы?
На работе пишу под Андроид на Java. А вне работы — разве что на Rust, для души.
Порекомендуй какую-нибудь книжку, которую прочёл за последний год, техническую или не очень.
The Phoenix Project. Позволяет закрепить понимание того, что программист — не единственное звено в цепочке от идеи и до успешной реализации. :)
Многие считают, что лучше всего начать обучаться программированию именно на Python. Твое мнение?
Здесь важно не подменять понятия — изучение языка не равно изучению программирования. Основы программирования можно преподать на любом языке, а использование только Python для этих может сыграть злую шутку и затуманить представление о низкоуровневых процессах в работе компьютера. Если вкратце — на мой взгляд, Python стоит разбавить тем же Си.
Билеты на конференцию
Можно купить на официальном сайте. Также напомню, что послезавтра, 6-го октября, я соберу разработчиков в уютном хакспейсе "СТАЛЬ" на ВДНХ, где мы обсудим интеграцию в свои веб и мобильные приложения голоса, видео и месседжинга. За приглашениями пишите в приват.
Автор: Voximplant