Почему предпочитаешь развиваться в Python, а не писать на Go?
Что проверяют
Осознанность выбора и вашу реакцию на провокацию. Часто такой вопрос задают там, где часть сервисов уже написана на Go: смотрят, не откажетесь ли вы трогать чужой код и умеете ли говорить о слабых местах любимого языка без обиды.
Как отвечать
Ответ складывается из трёх частей: за что цените Python, где он проигрывает, где сами выбрали бы Go.
Плюсы называйте прикладные, а не «простой синтаксис»: экосистема анализа данных и машинного обучения, библиотеки почти под любую интеграцию, скорость проверки гипотезы, зрелые веб-фреймворки. Если ваша область это данные, так и скажите, там у Python внятной альтернативы нет.
Слабые места проговорите сами, иначе это сделает интервьюер:
- глобальная блокировка интерпретатора не даёт потокам считать одновременно, поэтому счётная работа уезжает в процессы или в расширения на C;
- объекты дорогие по памяти, а запуск интерпретатора заметен на коротких задачах;
- доставка тяжелее, чем один статический бинарник;
- динамическая типизация требует аннотаций,
mypyи тестов, иначе крупный проект расползается.
И честный финал: для сетевого сервиса с высокой конкурентностью или для утилиты, которую надо просто положить на сервер, Go выигрывает, и писать на нём вы готовы.
Где спотыкаются
Критикуют Go по слухам. Утверждение про отсутствие обобщённых типов давно неверно, а многословность из-за явной обработки ошибок это не дефект, а выбранный контракт. Одна такая неточность стоит доверия ко всему остальному ответу.
Второе: защищают Python результатами бенчмарков или заявляют, что производительности хватает всегда. Сильнее выглядит понимание, что тяжёлые вычисления и так исполняет код на C, а Python здесь склеивает и управляет.
Третье: отвечают «не хочу учить другой язык» либо наоборот «выучу за выходные». Первое читается как негибкость, второе как неуважение к чужому ремеслу. Середина простая: глубина у вас в Python, а писать на Go там, где он уместнее, вы не против.