[Java, Kotlin, Карьера в IT-индустрии, Интервью] «Отдых — это непросто»: Андрей Бреслав о жизни после Kotlin
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Для многих в IT-сообществе имя Андрея Бреслава было почти синонимичным с названием языка программирования: «мы говорим Бреслав, подразумеваем — Kotlin». Неудивительно, поскольку Андрей возглавлял этот проект десять лет подряд, начиная с самого его создания. Но теперь ситуация изменилась, потому что в ноябре он объявил об уходе из проекта.Беспокоиться за будущее языка не приходится: там всё в надёжных руках Романа Елизарова, и недавно мы опубликовали интервью с ним. Но захотелось расспросить и Андрея. Мы уже обсуждали с ним положение дел в 2017-м, 2018-м и 2019-м, а теперь решили подвести черту под этой серией ещё одним интервью:
- Какими Андрей видит итоги своей работы над Kotlin?
- Как выглядит его жизнь сейчас? Как отдыхать, когда привык много работать?
- Что он сейчас делает в стартапе Alter? Каково после громадного проекта заниматься менее масштабным? И почему Alter написан не на Kotlin?
Оглавление
Kotlin: итоги— В сообщении об уходе говорилось, что будет переходный период. Сейчас ты уже передал дела?— Уже передал, да. Всё, я уже не работаю в JetBrains. Там осталась отличная команда, которая замечательно справляется.— А сохранится ли у тебя какая-то вовлечённость в жизнь Kotlin-сообщества? Например, будешь ли появляться на конференции KotlinConf?— Ну, я не собираюсь навсегда закрыть дверь и никогда в жизни не посмотреть в эту сторону. Будет KotlinConf — с удовольствием приеду, если ребята меня позовут. И мы договорились, что если при обсуждении стратегии нужно будет моё мнение — я с удовольствием приду, обсудим.— В нашем интервью в 2017-м ты сказал, что если язык войдёт в топ-20, для тебя это будет означать, что ты большой молодец. Сейчас впору подвести итог — но разные рейтинги считают по-разному, так что однозначный топ-20 не вывести. Насколько ты сам ощущаешь себя молодцом, насколько достигнуто желаемое?— Что касается места, наверное, стоит смотреть на индексы PYPL и RedMonk. Я сейчас открыл — в PYPL на 11-м месте, а в RedMonk на 19-м. Получается, в двадцатку попали в обоих.Но на самом деле, конечно, не в индексах счастье. Индексы — просто способ как-то ухватить в цифрах существующую реальность. Что мы видим? У Kotlin есть куча пользователей. Среди них особенно много Android-пользователей, но и за пределами Android людей тоже много. Конечно, это успех. Мы сделали что-то, что нужно многим людям, и это классно.Из этого, естественно, проистекают дальнейшие амбиции. Мы хотим гораздо больше пользователей на сервере, подключать другие ниши, экспериментировать с десктопным UI. Есть куча амбиций, это нормально — не останавливаться на достигнутом. Но достигнуто много.— А есть ли важная для тебя цель, которая под твоим руководством не оказалась достигнута (но, возможно, ещё будет достигнута без тебя)?— Мне очень хотелось, чтобы Kotlin победил в мультиплатформенной разработке. Чтобы мы предложили такое решение, с которым люди массово занимались бы мультиплатформенным программированием на Котлине. Мы этого ещё не достигли, но я думаю, что ребята вполне могут достичь.Вообще мне много всего хотелось. С одной стороны, это плюс, когда много амбиций, видишь много перспективы и хочется всего достичь. А с другой стороны, конечно, это минус, потому что расфокусирует. Есть вещи, которых мы пока не достигли и, наверное, даже не будем на них фокусироваться, насколько я знаю планы ребят. Поэтому мне сложно сказать, что была конкретная цель, к которой я стремился, и мы ещё не достигли. Целей много.— Когда наблюдаешь за ростом своего языка с нуля, а в итоге он доходит до топ-20, возникает ли ощущение, что достиг потолка? Понятно, что можно сделать ещё многое и обойти кого-то ещё в рейтингах, но даст ли это принципиально новый уровень популярности?— Ну, есть ещё топ-5. Интересный факт про разные индексы языков: топ-5 в разных списках примерно одинаковый. Про топ-20 есть очень разные мнения, а в топ-5 обычно одни и те же языки, только в разном порядке.И топ-5 — это немного «vanity metric», но за ней стоит такая осмысленная штука: языки в первой пятёрке набрали столько критической массы, что даже если они развиваются чуть медленнее других или вдруг свернули не туда, их всё равно тащит огромная инерция. Попасть в топ-5 — это такая путёвка в жизнь, где всё не меняется каждый день.Крупный язык (JavaScript, Java или Python) — это язык, который не перестанет быть популярным завтра просто никакими силами. Kotlin тоже не перестанет, но потому что он много кому нужен. А крупный не перестанет просто из-за того, что он крупный. И на этом уровне совершенно другая игра. Там и другая ответственность, и другие законы развития. Можно чуть меньше нервничать про конъюнктуру и чуть больше думать про долгосрочную стратегию.— Если в самом начале ты делал Kotlin почти в одиночку, то сейчас в команде сотня человек. Насколько развитие языка с большой командой зависит от конкретного человека во главе? «Авторский почерк» хорошо заметен, и с твоим уходом началась новая эра, или это уже единый общий проект и ничего значимого не изменится?— Ну, с одной стороны, он единый, но с другой, конечно, что-то поменяется. Я уверен, что случилась новая эра. Команды не очень понятным мне образом перенимают что-то от руководителей. Я плохо понимаю, как это работает, но что-то такое есть.Надо признать, что за последний год я вложил довольно много усилий в то, чтобы максимально диверсифицировать влияние на команду. Чтобы людей, влияющих на команду, стало несколько. И это получилось.Не то что бы на команду никогда не влиял никто, кроме меня — конечно, влияли. Но я постарался, чтобы возник некий штаб из таких людей. И в нём не только Рома [Елизаров]: он руководитель проекта, но проект очень коллегиальный.Мы любим вырабатывать и принимать решения совместно. Есть группа из нескольких людей, принимающих самые критические решения. И, конечно, они влияют на команду уже по-другому, чем я в своё время. Это станет заметно спустя какое-то время, есть какая-то инерция. Команда будет меняться, климат будет меняться. И я думаю, что меняться в лучшую сторону. Потому что несколько человек — это всегда более сбалансированно, чем один. И у меня есть какие-то качества, которые не очень хорошо влияют на команды. Я думаю, что в этом смысле у ребят получится лучше, чем у меня. Даже на мой собственный вкус: есть какие-то вещи, которые мне хотелось бы сделать в команде, но я совершенно не понимал даже «как подступиться» — а у них, думаю, получится.— Раз перемены неизбежны, то неизбежно будут и принимать не такие решения, какие принял бы ты. Нет ли ощущения «блин, я бы сделал иначе»? Насколько ты по-прежнему ощущаешь Kotlin своим детищем?— Мне кажется, что Kotlin моё детище (в числе других людей, которые приложили руку к его созданию и развитию), но я не пытаюсь его контролировать. Недавно просматривал релизный блог-пост, порадовался, что всё идёт полным ходом, примерно как планировали. И здесь важно не то, что я планировал или участвовал в планировании, а что получается достичь намеченного. У меня сейчас ощущение, что я отпустил управление проектом полностью: совершенно не хожу и не кусаю локти «вы что-то решили без меня неправильно» или «не дай бог, что-то решите без меня неправильно».Всё будет хорошо. У меня как раз было большое желание выключиться из этого управленческого напряжения, и, кажется, пока получилось.— Хотя прогнозирование — это во многом гадание на кофейной гуще, в прошлых интервью мы спрашивали тебя про перспективы Kotlin. Поэтому снова попрошу прогноз, сейчас должно быть даже проще его давать: теперь не тебе его воплощать!— Мне кажется, что есть какие-то более надёжные и очевидные вещи. Например, очевидно, что Kotlin должен быть популярен в серверной разработке. Там уже всё есть для того, чтобы люди на сервер-сайде использовали Kotlin и были счастливы. И таких людей уже сейчас много, но должно быть ещё гораздо больше. Будет много сотен тысяч, а то и миллион-другой.И мне кажется, что это просто вопрос времени. Не «если мы хорошо постараемся, то это получится», а просто должно произойти. Это такая прямая дорога. Мы делали Kotlin, чтобы люди в Java-экосистеме писали на современном языке с замечательными фичами — есть люди, которые сейчас в Java-экосистеме, и им доступен современный язык с замечательными фичами. Всё. Они, конечно, будут на нём писать.А вот другие направления, которые у нас есть — они гораздо более экспериментальные и новаторские, что ли. Мультиплатформенная разработка на Kotlin — это принципиально новый подход, так раньше никто не делал. Тут мы не взяли надёжные проверенные решения из других языков и сделали у себя, как было со многими другими аспектами. Это новая штука.Я верю, что она хорошая и полезная. Я вижу, что есть много людей, которых расстраивает писать один и тот же код по несколько раз на разных платформах. Поэтому мне кажется, что это полетит.Сейчас UI-фреймворк Jetpack Compose появляется не только для Android, мы экспериментируем с десктопом, есть какие-то люди в сообществе, которые экспериментируют с JS — это возможность сделать единый UI-фреймворк для разных платформ. Это не обязательно значит, что сам UI должен быть полностью одинаковым на разных платформах, но единый фреймворк — это большое дело.Эта история очень перспективная. Мне кажется, что здесь огромный потенциал, но надо хорошо поработать, чтобы получилось. И с самой технологией мультиплатформенной разработки, и с UI-фреймворком.
Жизнь после Kotlin— Как выглядит сейчас твоя жизнь?— Я нахожусь в процессе адаптации. Мне нужно привыкнуть жить без работы по 40 часов в неделю, моя задача — отдохнуть. Хочу как минимум в ближайший год по возможности много отдыхать, постараться восстановиться, потому что я сильно устал. Но после десятилетней молотилки, где я работал очень много, сложно перестроиться.И особенно сложно работать мало. Может быть, совсем не работать было бы ещё относительно легко, а вот работать мало получается с трудом. В жизни осталась работа над сервисом подбора психологов Alter: его нельзя поставить на паузу, им надо заниматься.Там совсем не 40 часов в неделю, и я стараюсь, чтобы это не становилось полноценной работой. Но у меня то получается многовато Альтера, то вроде бы ничего не делаю, но нахожусь в тревожном состоянии: мне кажется, что образовался какой-то странный вакуум, «наверное, я делаю что-то не так».— На Хабре и других ресурсах есть миллион текстов о том, как быть продуктивнее и делать больше, но не вспоминаются тексты о том, как делать меньше. Попробуем восполнить этот пробел: что ты успел понять на пути к отдыху, можешь ли посоветовать что-то другим?— Ну, во-первых, я вот понял, что для меня это непросто, особенно когда немножко работы всё-таки есть. И в связи с этим я стараюсь перестроить свою работу в Alter так, чтобы она была хорошо локализована. Чтобы у меня не было диффузной работы, когда я вроде бы отдыхаю, но при этом каждый час что-то делаю по Альтеру. Так вообще не катит.Ещё оказывается, что когда есть свободное время, нужно очень много выбирать, чем заняться. Чтобы отдых получился действительно отдыхом, приходится замечать, чем ты заполняешь время, выбирать то, что будет действительно радовать и не будет утомлять.Уже понял, что очень важна физическая активность, чтобы был какой-то спорт, какая-то нагрузка. Потому что от этого сильно зависит настроение.Ещё понятно, что суперважны люди и общение. Для восстанавливающей умиротворённой жизни очень важно, чтобы были люди, с которыми приятно, понятно и хочется видеться. Вот, это какие-то очень простые базовые вещи. А всё остальное пока непонятно. Я полтора месяца как выключился из очень напряжённой работы, и понятия не имею, как теперь жить!Но смотрю с оптимизмом, я уверен, что разберусь.— В посте об уходе ты упоминал, что у тебя большой бэклог идей для проектов (как айтишных, так и неайтишных). Понятно, что сейчас рано говорить о воплощении чего-либо из бэклога. Но любопытно заглянуть в него: можешь ли привести примеры идей?— Там много разного. Есть идеи приложений для конечных пользователей. Можно сделать что-то интересное не совсем из сферы психотерапии, а из вещей «рядом» с ней. Например, приложение для того, чтобы помогать людям вспомнить всю свою жизнь, восстановить историю жизни. На мой взгляд, это очень интересно. Но, возможно, уже есть аналоги, я даже не проверял.А можно заниматься, грубо говоря, донесением до широкой публики текстов по социально значимым темам. Например, про гендерные вопросы пишут достаточно много, но многие люди это не читают, потому что там специальная терминология, какие-то активистские лозунги и так далее. И можно всё это адаптировать, чтобы людям было гораздо более доступно.Ещё одна идея (которой я, скорее всего, не буду заниматься) — это сделать какую-то человечную альтернативу языку SQL. Потому что язык SQL — это, конечно, преступление против человечности.То есть вот три совсем разных примера: технический проект, нетехнический проект и «чуть-чуть технический» проект.— Существуют «серийные стартаперы», которым интересно создавать новые проекты и справляться с вызовами ранней стадии, а когда проект уже «встал на рельсы», становится скучно и нужен новый. Ты с нуля развивал и Kotlin, и Alter, а в твоём объявлении об уходе сказано «I’m not a lifetime project type of person». Ощущаешь ли ты себя «серийным стартапером», интересна ли тебе именно ранняя фаза?— Совершенно не ощущаю. Эта начальная фаза, самая нервная, сейчас ощущается очень утомительной. И сейчас на ещё один проект даже не замахиваюсь, потому что у меня нет сил на эту фазу. Мне со временем всё больше нравится роль если не консультанта, то, по крайней мере, человека, который много участвует в обсуждениях и проработке идей, а в execution погружён меньше. Чем дальше, тем больше мне кажется, что в этой роли я реально полезен, и тут действительно могу принести что-то редкое. А в execution я такой же, как все, со своими сильными и слабыми сторонами, но совершенно не выдающийся. И вот тут у меня есть ощущение, что на горизонте образовалась какая-то приятная роль, а серийным стартапером себя вообще не чувствую.— В некоторые профессии люди приходят на всю жизнь, а из других обычно со временем уходят. Среди разработчиков можно увидеть дискуссии о том, до скольки лет кодить и переходить ли в управление. В связи с твоим уходом из Kotlin интересно: а профессия language designer из какой категории? Насколько типична ситуация, когда человек уходит из разработки языка, который он сам и создал?— Мне кажется, не очень типична. Из того, что я знаю про основателей популярных языков, часть из них ушла из своих проектов, а часть до сих пор связаны с ними.Но думаю, это не то же, что «я уже должен кем-то руководить» или «я должен уйти из IT до 40», а немного другая история. Мне кажется, если кому-то скучно в IT (будь то в 30 или 40), то человек оттуда уходит просто потому что скучно и ничего интересного больше нет. Или разочарование, или усталость, есть какие-то причины уйти из профессии.И это связано не столько с тем, что человек в IT делал, сколько с тем, что у него внутри происходит. Устать может как основатель большого проекта вроде языка программирования, так и человек, который ничего сам не основывал, просто был в команде и чувствовал себя хорошо, пока не стал чувствовать себя хуже. Мне кажется, это такие ортогональные вещи. Есть ещё такой фактор в случае, когда ты начал что-то вроде языка программирования: у меня лично было ощущение, что страшно это бросить, пока не уверен, что подберут реально хорошие люди. Для меня было важно собрать управленческую команду, которая и без меня будет делать отлично, а потом уже уходить. И мне кажется, среди основателей успешных проектов это должна быть достаточно распространённая история: жалко бросить, не будучи уверенным, что проект будет жить.— В некоторых профессиях есть очевидные варианты «куда идти дальше»: спортсмен может стать тренером, и так далее. А в случае с разработкой языка есть ли какая-то напрашивающаяся роль?— Думаю, нет такой особенной профессии «человек, который работал конкретно над языком». Я инженер, который занимался сложной инженерной системой, руководил большой командой — технический менеджер с сильным инженерным бэкграундом. По идее, в индустрии есть куча работы для таких людей. Можно и дальше руководить инженерами в других местах. Если не хочется руководить инженерами, можно идти дальше работать каким-то инженером, принимающим много решений. Но это не связано именно с работой над языком.— Но работа над языком требует годами загружать в голову много довольно специфического контекста. Есть ли работа, где этот багаж знаний окажется востребованным?— Сложный вопрос, точно не знаю ответ. Понятно, что есть очень похожие сферы. Например, статический анализ. Инструменты для автоматического нахождения уязвимостей, багов или ещё чего-то подобного. Другие средства, связанные с разработкой — те же IDE, профайлеры. Там нужны знания подноготной, связанной с языками.И такого достаточно много, но это всё очень близко. Это даже происходит внутри той же самой компании JetBrains. Поэтому мне странно говорить про «переход» туда.А кроме этого — ну, всегда есть преподавание. Надо преподавать и общую теорию языков программирования, и конкретные языки. Но это обычно «совместительская» роль. Вряд ли я внезапно захотел бы уйти в преподавание на фуллтайм. Это для меня было скорее хобби, которым я много занимался, так или иначе проработал в преподавании девять лет.— А начинаешь ли резко отличаться от «среднестатистического» преподавателя, когда за плечами собственный опыт разработки языка?— Ты знаешь, нет. У меня и так всегда было ощущение, что я довольно сильно выделяюсь на фоне среднестатистического преподавателя просто из-за того, что я был действующим инженером, а не только преподавателем. А никаких космически сложных вещей всё равно никогда не преподаёшь. Самое сложное — какой-нибудь спецкурс для очень маленького количества студентов. На регулярных курсах вещи достаточно базовые. И их люди, которые не работают в индустрии, тоже могут неплохо преподавать.Поэтому, мне кажется, с точки зрения преподавания нет большой разницы, достиг ты больших успехов в индустрии или ты просто погружён в её практическую жизнь.— Дальше будут вопросы про Alter, и поскольку он связан с психотерапией, перед ними хочется спросить так: а как думаешь, насколько терапия сказалась на твоём решении об уходе? Не оказалось бы без неё, что ты бы думал «возглавлять большой успешный проект круто и бросать его глупо», а она помогла понять, что на самом деле тебе это не нужно?— Думаю, терапия вполне могла сказаться, но не совсем так. Что она помогает делать? Убирать искажения, ошибки. И без терапии я мог бы думать, что я «должен» тянуть Kotlin. Не что глупо его бросить, а что это мой долг.Сейчас ощущения, что это мой долг, у меня нет, и думаю, что терапия в этом поучаствовала (хотя и невозможно достоверно это проверить). Она помогла мне избавиться от ошибок «я должен это тянуть, потому что начал» и «без меня никто ничего не сделает». Я достаточно трезво оцениваю и свои сильные стороны, и сильные стороны других людей, и отлично понимаю, что они справятся, всё будет хорошо.
Alter— Что именно сейчас входит в твою работу над Alter?— Как сооснователь я участвую во всяких стратегических разговорах, планированиях и так далее. Также мы с тимлидом строим команду разработки, вместе собеседуем и обсуждаем кандидатов. У нас сейчас три человека, включая тимлида, и нам нужно ещё трое. Так что, если вы это читаете, можете присылать резюме!Помимо этого, я передаю оставшиеся знания по кодовой базе. Частично обсуждаю техническую стратегию — я в такой роли технического директора. Занимаюсь какой-то технической инфраструктурой для всей большой команды (не только программистской).— Когда-то в связи с Alter ты говорил, что снова руками писать код — большое удовольствие. Теперь, когда освободилось время, не возникло желания сесть и активно кодить для Alter просто ради удовольствия?— Ну, что-то я периодически пишу. Из-за того, что в команде маловато людей, бывает необходимо помочь. И да, мне приятно что-нибудь написать, потестировать, задеплоить, всё это здорово. Но всё-таки даже писать код для Alter в своё удовольствие — это всё равно работа, потому что это ответственность. И поскольку я стараюсь сейчас акцентировать своё внимание на отдыхе, то стараюсь и не уходить в написание кода так, чтобы это становилось работой-работой. — В вашей вакансии написано «бэк на Django, фронт на React». Вероятно, у многих возникнет вопрос: «А почему не Kotlin?»— Правильный вопрос, очень понятный. На самом деле просто из-за того, что мы начинали писать эту систему, когда Kotlin ещё не был готов. Нельзя было просто взять и нанять разработчиков с рынка. Поэтому исторически код на Python.В какой-то момент была завиральная мысль переехать с Python на Kotlin, но уж больно накладно, много кода уже. Сейчас было бы, конечно, самое то на Котлине писать. Но, к сожалению, уже нет.— Окей, понятно, почему не Kotlin. Но от создателя языка, где важна статическая типизация, не ожидаешь выбор Python с динамической. Почему был выбран он? Из-за того, что проект небольшой, поэтому разница не так ощутима? — Во-первых, проект действительно не очень большой, и он никогда не станет настолько огромным, чтобы динамическая типизация стала огромной проблемой.Во-вторых, статическая типизация — не только стандартный инструмент в языке программирования вроде Kotlin или Java, а ещё и дисциплина. В Python есть опциональная статическая типизация, мы ей пользуемся. Сначала писали без неё, а сейчас её добавляем.Не то что бы всё становится как в Kotlin, конечно. В Котлине компилятор действительно за тебя всё проверит. В Питоне это просто подсказки, которые немножко помогают.Но я не адепт статической типизации ради статической типизации. Я адепт прагматичных инструментов. И в своё время я выбирал, на чём писать Alter, исходя из того, каких программистов можно найти на рынке за доступные стартапу деньги. Тогдашнему стартапу, который зарабатывал совсем мало и был не готов платить большие зарплаты, как мы делаем сейчас. Из тех технологий, которые были доступны, Python был хорошим компромиссом. — Понятно, что работа над Alter во многом отличается от Kotlin. Но поскольку здесь тоже участвуешь в ответственных стратегических решениях — почему в случае с Kotlin устал и ушёл, а в этом случае так не устал? Чем различаются эти случаи лично для тебя?— Во-первых, там я руководил сотней человек, и это очень большая менеджерская ответственность. А здесь у меня минимальная менеджерская ответственность (именно как человека, который заботится о команде, непосредственно руководит людьми). Я скорее в роли человека, личное мнение которого как сооснователя очень важно, и в этом случае я отвечаю сам за себя. Это совершенно другой уровень напряжения. Во-вторых, масштабы совсем другие, команда всё-таки намного меньше. Тем более та часть команды, в которую я заглядываю. Ещё важно, что здесь всё-таки совсем другая сфера, всё делается ради совсем других идеалов. Это проект, можно сказать, с социальной миссией. Здесь мы делаем так, что такие же люди, как мы сами, могли получать доступ к хорошей качественной психотерапии. И здесь я не один самый главный, мы сооснователи с Олей Китаиной, она СЕО, то есть на ней много лидерских функций и тому подобных вещей. Я в этом смысле нахожусь в гораздо более расслабленной позиции.— Раньше ты был в проекте с большими ресурсами (человеческими, финансовыми и так далее), а теперь в куда менее масштабном. Нет ли ощущения, что пересел с танка на самокат, и для решения задач не хватает привычной мощи?— Про танк и самокат хорошо сказано: я очень люблю кататься на самокате, это одна из моих отдушин. Про ресурсы очень интересно. С одной стороны, действительно, в JetBrains их гораздо больше и доступно многое, что недоступно в Alter. А с другой — ресурсов всё равно постоянно не хватает. Если работать достаточно амбициозно, то быстро доходишь до пределов. Поэтому в огромной котлиновской команде на много десятков разработчиков всё время не хватало рук. Просто потому что идей и интересных нужных задач гораздо больше, чем людей.В это состояние обязательно попадаешь, если у тебя есть немножко креатива и немножко пользователей. И в этом смысле в обеих компаниях одинаково. Разница больше ощущается в том, что это совсем другой технический профиль: в Alter веб-разработка, а в Kotlin компиляторная работа. Это совсем другие люди, пришлось перестроиться в том, как мы ищем и нанимаем людей. Но в целом я совершенно не жалею. У меня нет ощущения, что здесь я играюсь в какой-то песочнице и это «несерьёзно», а вот в Kotlin было «серьёзно». Там серьёзно и тут серьёзно. Там были международные масштабы, но и тут есть международные амбиции, хотя пока что на международный рынок не вышли. И здесь речь о своей собственной компании. Мы с Олей начали с того, что вдвоём запускали первый прототип на коленке, я его собирал в самолёте, это был полный трэш и угар. А сейчас это уже компания, которая окупает себя, за прошедший год выросла по выручке в 6 раз, готовится к дальнейшему росту. Успешно конкурирует на непростом рынке, где конкурентов куча. И субъективно это ощущается как большое достижение, совершенно сравнимое с теми, которые были в Kotlin. Понятно, что при этом масштабы в цифрах совсем разные. А субъективно очень похоже.
Последний вопрос про Kotlin— И напоследок. Ты 10 лет отвечал на бесконечные технические вопросы про Kotlin, а теперь их будут задавать другим людям. Хочется адресовать тебе вопрос в последний раз. Многие люди хотели появления тернарного оператора, и ты ранее говорил, что вы вроде бы нашли способ удачно реализовать его. Почему в итоге он не появился?— С тернарным оператором всё оказалось печально: была мысль, что мы синтаксически разобрались, но оказалось, что всё же не до конца. В общем, там очень замороченно, нет способа добавить его дёшево и элегантно. И платить за тернарный оператор какую-то осмысленную цену я не решался. А Рома просто решил, что не будет этого делать. И правильно сделал!— Спасибо за ответы. Обычно напоследок желают успеха в каких-то деятельных начинаниях, а здесь пожелаем успешно отдохнуть!
Если вы добрались до конца этого текста, с высокой вероятностью вы либо Android-разработчик, либо бэкендер с JVM-опытом. В первом случае вас может заинтересовать онлайн-конференция Mobius(13-16 апреля), а во втором — JPoint (13-17 апреля). На сайте каждой уже можно узнать программу.Но даже если вы не из мира Android/Java — у нас найдётся интересное и по другим темам (JS, .NET, тестирование).
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, Карьера в IT-индустрии, Научно-популярное] Русские хакерши: разговор с Алисой Esage Шевченко
- [Управление персоналом, Законодательство в IT, Карьера в IT-индустрии] «Вам здесь больше не рады...» Или что делать, если вы думаете, что работаете здесь, а начальник думает, что уже нет
- [Управление персоналом, Карьера в IT-индустрии, Читальный зал] Каким должен быть ИТ-лидер в 2021 году. Версия Gartner (перевод)
- [Управление персоналом, Карьера в IT-индустрии, Лайфхаки для гиков] Как добраться до людей, когда тебя нанимает робот
- [Java, Kotlin] Создаем свою инспекцию для IDEA
- [Habr, Учебный процесс в IT, Контент-маркетинг, Карьера в IT-индустрии, Управление медиа] Синдром самозванца у айтишников. Немного логики для тех, кто подумывает писать в блоги
- [Open source, Программирование, Администрирование баз данных, Интервью] «Представь, что ты нашел решение, про которое можешь сказать: оно лучшее в мире» — интервью с создателем ClickHouse
- [Программирование, *nix, Локализация продуктов, Kotlin, Изучение языков] Интернационализация и локализация приложения на Kotlin/Native
- [Программирование, Разработка под Android, Kotlin] Как можно использовать шейдеры в Android View и как Android View может использовать шейдеры (перевод)
- [JavaScript, Node.JS, MongoDB] Passport.js + mongoose объединяем две коллекции
Теги для поиска: #_java, #_kotlin, #_karera_v_itindustrii (Карьера в IT-индустрии), #_intervju (Интервью), #_kotlin, #_java, #_jetpack_compose, #_alter, #_andrej_breslav (Андрей Бреслав), #_blog_kompanii_jug_ru_group (
Блог компании JUG Ru Group
), #_java, #_kotlin, #_karera_v_itindustrii (
Карьера в IT-индустрии
), #_intervju (
Интервью
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:15
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Для многих в IT-сообществе имя Андрея Бреслава было почти синонимичным с названием языка программирования: «мы говорим Бреслав, подразумеваем — Kotlin». Неудивительно, поскольку Андрей возглавлял этот проект десять лет подряд, начиная с самого его создания. Но теперь ситуация изменилась, потому что в ноябре он объявил об уходе из проекта.Беспокоиться за будущее языка не приходится: там всё в надёжных руках Романа Елизарова, и недавно мы опубликовали интервью с ним. Но захотелось расспросить и Андрея. Мы уже обсуждали с ним положение дел в 2017-м, 2018-м и 2019-м, а теперь решили подвести черту под этой серией ещё одним интервью:
Жизнь после Kotlin— Как выглядит сейчас твоя жизнь?— Я нахожусь в процессе адаптации. Мне нужно привыкнуть жить без работы по 40 часов в неделю, моя задача — отдохнуть. Хочу как минимум в ближайший год по возможности много отдыхать, постараться восстановиться, потому что я сильно устал. Но после десятилетней молотилки, где я работал очень много, сложно перестроиться.И особенно сложно работать мало. Может быть, совсем не работать было бы ещё относительно легко, а вот работать мало получается с трудом. В жизни осталась работа над сервисом подбора психологов Alter: его нельзя поставить на паузу, им надо заниматься.Там совсем не 40 часов в неделю, и я стараюсь, чтобы это не становилось полноценной работой. Но у меня то получается многовато Альтера, то вроде бы ничего не делаю, но нахожусь в тревожном состоянии: мне кажется, что образовался какой-то странный вакуум, «наверное, я делаю что-то не так».— На Хабре и других ресурсах есть миллион текстов о том, как быть продуктивнее и делать больше, но не вспоминаются тексты о том, как делать меньше. Попробуем восполнить этот пробел: что ты успел понять на пути к отдыху, можешь ли посоветовать что-то другим?— Ну, во-первых, я вот понял, что для меня это непросто, особенно когда немножко работы всё-таки есть. И в связи с этим я стараюсь перестроить свою работу в Alter так, чтобы она была хорошо локализована. Чтобы у меня не было диффузной работы, когда я вроде бы отдыхаю, но при этом каждый час что-то делаю по Альтеру. Так вообще не катит.Ещё оказывается, что когда есть свободное время, нужно очень много выбирать, чем заняться. Чтобы отдых получился действительно отдыхом, приходится замечать, чем ты заполняешь время, выбирать то, что будет действительно радовать и не будет утомлять.Уже понял, что очень важна физическая активность, чтобы был какой-то спорт, какая-то нагрузка. Потому что от этого сильно зависит настроение.Ещё понятно, что суперважны люди и общение. Для восстанавливающей умиротворённой жизни очень важно, чтобы были люди, с которыми приятно, понятно и хочется видеться. Вот, это какие-то очень простые базовые вещи. А всё остальное пока непонятно. Я полтора месяца как выключился из очень напряжённой работы, и понятия не имею, как теперь жить!Но смотрю с оптимизмом, я уверен, что разберусь.— В посте об уходе ты упоминал, что у тебя большой бэклог идей для проектов (как айтишных, так и неайтишных). Понятно, что сейчас рано говорить о воплощении чего-либо из бэклога. Но любопытно заглянуть в него: можешь ли привести примеры идей?— Там много разного. Есть идеи приложений для конечных пользователей. Можно сделать что-то интересное не совсем из сферы психотерапии, а из вещей «рядом» с ней. Например, приложение для того, чтобы помогать людям вспомнить всю свою жизнь, восстановить историю жизни. На мой взгляд, это очень интересно. Но, возможно, уже есть аналоги, я даже не проверял.А можно заниматься, грубо говоря, донесением до широкой публики текстов по социально значимым темам. Например, про гендерные вопросы пишут достаточно много, но многие люди это не читают, потому что там специальная терминология, какие-то активистские лозунги и так далее. И можно всё это адаптировать, чтобы людям было гораздо более доступно.Ещё одна идея (которой я, скорее всего, не буду заниматься) — это сделать какую-то человечную альтернативу языку SQL. Потому что язык SQL — это, конечно, преступление против человечности.То есть вот три совсем разных примера: технический проект, нетехнический проект и «чуть-чуть технический» проект.— Существуют «серийные стартаперы», которым интересно создавать новые проекты и справляться с вызовами ранней стадии, а когда проект уже «встал на рельсы», становится скучно и нужен новый. Ты с нуля развивал и Kotlin, и Alter, а в твоём объявлении об уходе сказано «I’m not a lifetime project type of person». Ощущаешь ли ты себя «серийным стартапером», интересна ли тебе именно ранняя фаза?— Совершенно не ощущаю. Эта начальная фаза, самая нервная, сейчас ощущается очень утомительной. И сейчас на ещё один проект даже не замахиваюсь, потому что у меня нет сил на эту фазу. Мне со временем всё больше нравится роль если не консультанта, то, по крайней мере, человека, который много участвует в обсуждениях и проработке идей, а в execution погружён меньше. Чем дальше, тем больше мне кажется, что в этой роли я реально полезен, и тут действительно могу принести что-то редкое. А в execution я такой же, как все, со своими сильными и слабыми сторонами, но совершенно не выдающийся. И вот тут у меня есть ощущение, что на горизонте образовалась какая-то приятная роль, а серийным стартапером себя вообще не чувствую.— В некоторые профессии люди приходят на всю жизнь, а из других обычно со временем уходят. Среди разработчиков можно увидеть дискуссии о том, до скольки лет кодить и переходить ли в управление. В связи с твоим уходом из Kotlin интересно: а профессия language designer из какой категории? Насколько типична ситуация, когда человек уходит из разработки языка, который он сам и создал?— Мне кажется, не очень типична. Из того, что я знаю про основателей популярных языков, часть из них ушла из своих проектов, а часть до сих пор связаны с ними.Но думаю, это не то же, что «я уже должен кем-то руководить» или «я должен уйти из IT до 40», а немного другая история. Мне кажется, если кому-то скучно в IT (будь то в 30 или 40), то человек оттуда уходит просто потому что скучно и ничего интересного больше нет. Или разочарование, или усталость, есть какие-то причины уйти из профессии.И это связано не столько с тем, что человек в IT делал, сколько с тем, что у него внутри происходит. Устать может как основатель большого проекта вроде языка программирования, так и человек, который ничего сам не основывал, просто был в команде и чувствовал себя хорошо, пока не стал чувствовать себя хуже. Мне кажется, это такие ортогональные вещи. Есть ещё такой фактор в случае, когда ты начал что-то вроде языка программирования: у меня лично было ощущение, что страшно это бросить, пока не уверен, что подберут реально хорошие люди. Для меня было важно собрать управленческую команду, которая и без меня будет делать отлично, а потом уже уходить. И мне кажется, среди основателей успешных проектов это должна быть достаточно распространённая история: жалко бросить, не будучи уверенным, что проект будет жить.— В некоторых профессиях есть очевидные варианты «куда идти дальше»: спортсмен может стать тренером, и так далее. А в случае с разработкой языка есть ли какая-то напрашивающаяся роль?— Думаю, нет такой особенной профессии «человек, который работал конкретно над языком». Я инженер, который занимался сложной инженерной системой, руководил большой командой — технический менеджер с сильным инженерным бэкграундом. По идее, в индустрии есть куча работы для таких людей. Можно и дальше руководить инженерами в других местах. Если не хочется руководить инженерами, можно идти дальше работать каким-то инженером, принимающим много решений. Но это не связано именно с работой над языком.— Но работа над языком требует годами загружать в голову много довольно специфического контекста. Есть ли работа, где этот багаж знаний окажется востребованным?— Сложный вопрос, точно не знаю ответ. Понятно, что есть очень похожие сферы. Например, статический анализ. Инструменты для автоматического нахождения уязвимостей, багов или ещё чего-то подобного. Другие средства, связанные с разработкой — те же IDE, профайлеры. Там нужны знания подноготной, связанной с языками.И такого достаточно много, но это всё очень близко. Это даже происходит внутри той же самой компании JetBrains. Поэтому мне странно говорить про «переход» туда.А кроме этого — ну, всегда есть преподавание. Надо преподавать и общую теорию языков программирования, и конкретные языки. Но это обычно «совместительская» роль. Вряд ли я внезапно захотел бы уйти в преподавание на фуллтайм. Это для меня было скорее хобби, которым я много занимался, так или иначе проработал в преподавании девять лет.— А начинаешь ли резко отличаться от «среднестатистического» преподавателя, когда за плечами собственный опыт разработки языка?— Ты знаешь, нет. У меня и так всегда было ощущение, что я довольно сильно выделяюсь на фоне среднестатистического преподавателя просто из-за того, что я был действующим инженером, а не только преподавателем. А никаких космически сложных вещей всё равно никогда не преподаёшь. Самое сложное — какой-нибудь спецкурс для очень маленького количества студентов. На регулярных курсах вещи достаточно базовые. И их люди, которые не работают в индустрии, тоже могут неплохо преподавать.Поэтому, мне кажется, с точки зрения преподавания нет большой разницы, достиг ты больших успехов в индустрии или ты просто погружён в её практическую жизнь.— Дальше будут вопросы про Alter, и поскольку он связан с психотерапией, перед ними хочется спросить так: а как думаешь, насколько терапия сказалась на твоём решении об уходе? Не оказалось бы без неё, что ты бы думал «возглавлять большой успешный проект круто и бросать его глупо», а она помогла понять, что на самом деле тебе это не нужно?— Думаю, терапия вполне могла сказаться, но не совсем так. Что она помогает делать? Убирать искажения, ошибки. И без терапии я мог бы думать, что я «должен» тянуть Kotlin. Не что глупо его бросить, а что это мой долг.Сейчас ощущения, что это мой долг, у меня нет, и думаю, что терапия в этом поучаствовала (хотя и невозможно достоверно это проверить). Она помогла мне избавиться от ошибок «я должен это тянуть, потому что начал» и «без меня никто ничего не сделает». Я достаточно трезво оцениваю и свои сильные стороны, и сильные стороны других людей, и отлично понимаю, что они справятся, всё будет хорошо. Alter— Что именно сейчас входит в твою работу над Alter?— Как сооснователь я участвую во всяких стратегических разговорах, планированиях и так далее. Также мы с тимлидом строим команду разработки, вместе собеседуем и обсуждаем кандидатов. У нас сейчас три человека, включая тимлида, и нам нужно ещё трое. Так что, если вы это читаете, можете присылать резюме!Помимо этого, я передаю оставшиеся знания по кодовой базе. Частично обсуждаю техническую стратегию — я в такой роли технического директора. Занимаюсь какой-то технической инфраструктурой для всей большой команды (не только программистской).— Когда-то в связи с Alter ты говорил, что снова руками писать код — большое удовольствие. Теперь, когда освободилось время, не возникло желания сесть и активно кодить для Alter просто ради удовольствия?— Ну, что-то я периодически пишу. Из-за того, что в команде маловато людей, бывает необходимо помочь. И да, мне приятно что-нибудь написать, потестировать, задеплоить, всё это здорово. Но всё-таки даже писать код для Alter в своё удовольствие — это всё равно работа, потому что это ответственность. И поскольку я стараюсь сейчас акцентировать своё внимание на отдыхе, то стараюсь и не уходить в написание кода так, чтобы это становилось работой-работой. — В вашей вакансии написано «бэк на Django, фронт на React». Вероятно, у многих возникнет вопрос: «А почему не Kotlin?»— Правильный вопрос, очень понятный. На самом деле просто из-за того, что мы начинали писать эту систему, когда Kotlin ещё не был готов. Нельзя было просто взять и нанять разработчиков с рынка. Поэтому исторически код на Python.В какой-то момент была завиральная мысль переехать с Python на Kotlin, но уж больно накладно, много кода уже. Сейчас было бы, конечно, самое то на Котлине писать. Но, к сожалению, уже нет.— Окей, понятно, почему не Kotlin. Но от создателя языка, где важна статическая типизация, не ожидаешь выбор Python с динамической. Почему был выбран он? Из-за того, что проект небольшой, поэтому разница не так ощутима? — Во-первых, проект действительно не очень большой, и он никогда не станет настолько огромным, чтобы динамическая типизация стала огромной проблемой.Во-вторых, статическая типизация — не только стандартный инструмент в языке программирования вроде Kotlin или Java, а ещё и дисциплина. В Python есть опциональная статическая типизация, мы ей пользуемся. Сначала писали без неё, а сейчас её добавляем.Не то что бы всё становится как в Kotlin, конечно. В Котлине компилятор действительно за тебя всё проверит. В Питоне это просто подсказки, которые немножко помогают.Но я не адепт статической типизации ради статической типизации. Я адепт прагматичных инструментов. И в своё время я выбирал, на чём писать Alter, исходя из того, каких программистов можно найти на рынке за доступные стартапу деньги. Тогдашнему стартапу, который зарабатывал совсем мало и был не готов платить большие зарплаты, как мы делаем сейчас. Из тех технологий, которые были доступны, Python был хорошим компромиссом. — Понятно, что работа над Alter во многом отличается от Kotlin. Но поскольку здесь тоже участвуешь в ответственных стратегических решениях — почему в случае с Kotlin устал и ушёл, а в этом случае так не устал? Чем различаются эти случаи лично для тебя?— Во-первых, там я руководил сотней человек, и это очень большая менеджерская ответственность. А здесь у меня минимальная менеджерская ответственность (именно как человека, который заботится о команде, непосредственно руководит людьми). Я скорее в роли человека, личное мнение которого как сооснователя очень важно, и в этом случае я отвечаю сам за себя. Это совершенно другой уровень напряжения. Во-вторых, масштабы совсем другие, команда всё-таки намного меньше. Тем более та часть команды, в которую я заглядываю. Ещё важно, что здесь всё-таки совсем другая сфера, всё делается ради совсем других идеалов. Это проект, можно сказать, с социальной миссией. Здесь мы делаем так, что такие же люди, как мы сами, могли получать доступ к хорошей качественной психотерапии. И здесь я не один самый главный, мы сооснователи с Олей Китаиной, она СЕО, то есть на ней много лидерских функций и тому подобных вещей. Я в этом смысле нахожусь в гораздо более расслабленной позиции.— Раньше ты был в проекте с большими ресурсами (человеческими, финансовыми и так далее), а теперь в куда менее масштабном. Нет ли ощущения, что пересел с танка на самокат, и для решения задач не хватает привычной мощи?— Про танк и самокат хорошо сказано: я очень люблю кататься на самокате, это одна из моих отдушин. Про ресурсы очень интересно. С одной стороны, действительно, в JetBrains их гораздо больше и доступно многое, что недоступно в Alter. А с другой — ресурсов всё равно постоянно не хватает. Если работать достаточно амбициозно, то быстро доходишь до пределов. Поэтому в огромной котлиновской команде на много десятков разработчиков всё время не хватало рук. Просто потому что идей и интересных нужных задач гораздо больше, чем людей.В это состояние обязательно попадаешь, если у тебя есть немножко креатива и немножко пользователей. И в этом смысле в обеих компаниях одинаково. Разница больше ощущается в том, что это совсем другой технический профиль: в Alter веб-разработка, а в Kotlin компиляторная работа. Это совсем другие люди, пришлось перестроиться в том, как мы ищем и нанимаем людей. Но в целом я совершенно не жалею. У меня нет ощущения, что здесь я играюсь в какой-то песочнице и это «несерьёзно», а вот в Kotlin было «серьёзно». Там серьёзно и тут серьёзно. Там были международные масштабы, но и тут есть международные амбиции, хотя пока что на международный рынок не вышли. И здесь речь о своей собственной компании. Мы с Олей начали с того, что вдвоём запускали первый прототип на коленке, я его собирал в самолёте, это был полный трэш и угар. А сейчас это уже компания, которая окупает себя, за прошедший год выросла по выручке в 6 раз, готовится к дальнейшему росту. Успешно конкурирует на непростом рынке, где конкурентов куча. И субъективно это ощущается как большое достижение, совершенно сравнимое с теми, которые были в Kotlin. Понятно, что при этом масштабы в цифрах совсем разные. А субъективно очень похоже. Последний вопрос про Kotlin— И напоследок. Ты 10 лет отвечал на бесконечные технические вопросы про Kotlin, а теперь их будут задавать другим людям. Хочется адресовать тебе вопрос в последний раз. Многие люди хотели появления тернарного оператора, и ты ранее говорил, что вы вроде бы нашли способ удачно реализовать его. Почему в итоге он не появился?— С тернарным оператором всё оказалось печально: была мысль, что мы синтаксически разобрались, но оказалось, что всё же не до конца. В общем, там очень замороченно, нет способа добавить его дёшево и элегантно. И платить за тернарный оператор какую-то осмысленную цену я не решался. А Рома просто решил, что не будет этого делать. И правильно сделал!— Спасибо за ответы. Обычно напоследок желают успеха в каких-то деятельных начинаниях, а здесь пожелаем успешно отдохнуть! Если вы добрались до конца этого текста, с высокой вероятностью вы либо Android-разработчик, либо бэкендер с JVM-опытом. В первом случае вас может заинтересовать онлайн-конференция Mobius(13-16 апреля), а во втором — JPoint (13-17 апреля). На сайте каждой уже можно узнать программу.Но даже если вы не из мира Android/Java — у нас найдётся интересное и по другим темам (JS, .NET, тестирование).
=========== Источник: habr.com =========== Похожие новости:
Блог компании JUG Ru Group ), #_java, #_kotlin, #_karera_v_itindustrii ( Карьера в IT-индустрии ), #_intervju ( Интервью ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:15
Часовой пояс: UTC + 5