10 сезон · выпуск 7 · 7 декабря 2023 · 44 мин
Как JetBrains покорили рынок инструментов для разработки
Разработка Бизнес и деньги Наш человек в…
Слушать · 43:35
Язык Kotlin, платформа Space, среда разработки Fleet — все эти популярные инструменты сделали в JetBrains. Как появилась компания, изменившая работу программистов по всему миру? Сколько нужно программистов, чтобы создавать инструменты для всех остальных программистов? И как компания все время соревнуется с бесплатными продуктами? Самат Галимов говорит с генеральным директором JetBrains Максимом Шафировым.
Реклама. АНО ДПО «Образовательные технологии Яндекса» ИНН 7704282033 erid: 2SDnjeivLwa
Базовый курс Go от Практикума: https://clck.ru/36wNWp
И продвинутый курс: https://clck.ru/36t9MP
Самат Галимов вместе с ведущей подкаста «СОБЕС» Кирой Кузьменко проведут трансляцию для подписчков закрытого телеграм-канала студии «Либо/Либо». Они будут говорить о том, как IT-рынок пережил 2023 год и как айтишникам искать работу сейчас. Это случится 12 декабря в 20:00 по московскому времени. Чтобы подписаться на канал и попасть на трансляцию, переходите по ссылке: https://cutt.ly/zap1212liveeptg
Над выпуском работали
- Редакторки
- Маша Агличева и Маргарита Берденникова
- Продюсер
- Данил Астапов
- Звукорежиссер
- Юра Шустицкий
- Дизайнер обложки
- Петр Сутупов
Транскрипт
Самат Галимов, Максим Шафиров · расшифровано автоматически, ошибки возможны
-
Либо-либо. Всем привет! Меня зовут Самат Галимов и это подкаст «Запуск завтра». Как технический директор я пытаюсь разобраться, как устроены сложные и интересные штуки. Я зову профессионала, с которым можно поговорить простым человеческим языком. Наш сегодняшний гость— генеральный директор компании JetBrains. Вы наверняка слышали это название, потому что JetBrains выпускает одни из самых популярных инструментов для разработки программ. И суперпопулярный язык Kotlin тоже родом из этой компании. Максим работает в JetBrains уже больше 20 лет и рассказал нам, как компания появилась, как у нее получилось сделать одни из самых популярных инструментов для разработчиков и как искусственный интеллект поменяет работу программиста. Это подкаст студии Либо-Либо, и сделали мы его совместно с сервисом онлайн-образования Яндекс Практикум. У Практикума есть курсы по разработке, по анализу данных и по английскому языку. Но сегодня я хочу вам рассказать о курсах по языку Go. Язык Go появился совсем недавно, всего 14 лет назад, и разработали его создатели того самого знаменитого языка C. Они работали в Гугле и попытались сделать язык, который максимально учтет все проблемы, которые есть в промышленной разработке при работе в больших компаниях с большими программами. У них все получилось. Язык Go очень популярный язык промышленной разработки, и он стремительно набирает аудиторию. Программисты на Go в большом спросе. Если вы хотите изучить этот язык с нуля, то у Яндекс Практикума есть специальный курс. Он сделан специально для тех, для кого Go будет первым языком программирования. После него можно найти работу Джуна. А для тех, кто уже умеет программировать на Go, есть продвинутый курс, где можно прокачать свои навыки. Ссылка на все курсы в описании к этому эпизоду.
-
Привет, меня зовут Максим Шафиров. В данный момент я работаю CEO в компании JetBrains.
-
JetBrains известен благодаря тому, что делает инструменты для программистов. Так. Именно у вас создали, например, язык программирования Kotlin.
-
Да.
-
Вашими средами разработки пользуются миллионы программистов по всему миру. Я хочу с тобой обсудить, как все это начиналось. Вот, типа, 2000 год. Да. Часть моих слушателей вообще только родилась. Можешь описать контекст? Что происходит в мире? Кто занимается программированием? Есть ли гиганты вроде Яндекса и Гугла? Что там вообще происходит?
-
Гугл только зарождался. У Гугла был один продукт— поисковая строка. Не было почты, не было карт, уж точно не было андроида, ничего этого не было. Гугл был суперинновационной компанией, которая десраптила рынок поисковых систем. Чуваки Альтависта, Яху на тот момент еще пытались сопротивляться, но, кажется, что-то про будущее уже понимали. Майкрософт был на коне, он всегда на коне, кроме редких моментов. Что еще было в 2000 году? Только что закончился .com кризис. Помните, что такое .com кризис? Это когда вся Да-да-да, конечно, смыслительно.
-
Это когда, прибавив .com в конце названия своей компании, можно было повысить ее оценку в несколько десятков раз. Фондовый рынок очень сильно раздулся, а когда оказалось, что все эти новоявленные интернет-компании не приносят никаких денег, все с треском схлопнулось. В общем, очень похоже на крипту.
-
Вот, то есть это период, наверное, конца первой романтизации. Сейчас интернет все заполнит, и достаточно просто сделать себе страничку, и этого достаточно, и присутствие в интернете, и появление компаний, которые делают сервисы.
-
И вот три программиста основали JetBrains. Расскажи, как это было.
-
Смотри, JetBrains основали три программиста из Санкт-Петербурга. но основали они его в Праге. Потому что они в тот момент в Праге работали на предыдущую компанию, которая называлась Togethersoft. Это, кстати, очень запутанная история. JetBrains, российская компания или не российская? Нет, не российская.
-
Слушай, а я всё время думаю, что основали в Питере, а потом, значит, типа быстренько юрлицо.
-
Нет-нет-нет. Честно-честно, абсолютно честно и справедливо было наоборот. Вот, потом он, конечно же, довольно быстро уже в 2001, по-моему, году появился в офисе в Петербурге, потому что следующие сотрудники нанимались там. Это правда, да. Наверное, там можно ещё сказать, чем они занимались в компании Togethersoft. Не знаю, помнит ли кто-нибудь аббревиатуру UML в 2023 году.
-
Да, конечно.
-
Unified Modeling Language. Это была такая мечта, что ли, что программировать сложно. Языки программирования— это не для всех, и тут нужно осваивать какие-то навыки. А вот картинки рисовать точно все умеют.
-
Давайте будем рисовать схемки.
-
Да, давайте рисовать схемки. Из этих схемок уже будет каким-то образом магическим появляться программа, и эта программа будет работать. Или она не будет работать, и нам тогда нужно будет какие-то небольшие минорные изменения в полученную программу внести. Но есть отдельный нюанс, что после того, как мы несем в сгенерированные программы небольшие изменения, то программа и та спецификация, из которой она получена, разойдутся. Значит, где-то будет неправда. И вот чем ребята занимались, это задачи реверс-инжиниринга. Как по готовой программе, наоборот, поставить.
-
Блок-схему составить.
-
UML-схему, UML-диаграмму, и сделать это максимально неинтрузивным способом для того, чтобы вот мы Получили схему, сгенерировали программу, модифицировали программу, получили обратно схему. Человек мог бы понять, как мы сейчас делаем commit и читаем разницу в коде. UML-диаграмме можно было бы найти отличия, что, собственно, поменялось. Вот, и вполне в этом преуспели. В общем, продукт в свое время на рынке. Ну, по модулю того, насколько вообще UML, пардук был успешен тоже. Очень смешно, да.
-
В своем, мне кажется, время она была довольно next big thing. Все думали, что это как сейчас типа AI и биткоин. Был момент, когда все думали, что вот оно.
-
Совершенно верно, да. Не то чтобы это прямо была технология, которую все пользовались и пользуются успешно, но было ощущение того, что это вот еще чуть-чуть, вот мы еще чуть-чуть немножко доработаем технологию, и это будущее. Все перестанут программировать, а будут рисовать диаграммы.
-
что они стали делать, когда основали компанию?
-
Их задача была вот эта самая reverse engineering, как обратно по программе получить диаграмму. Вот конкретный пример, которым они решали, я еще тогда не пришел в компанию, это Rename. Все это было для языка программирования Java изначально.
-
В обычных текстовых редакторах есть функция найти и заменить. Ты говоришь, какое слово найти, на какое слово заменить. И вот это в программировании не работает, потому что у тебя может оказаться, что в некоторых местах надо заменить, а в некоторых не надо. То есть надо понимать структуру.
-
Вот, очень спасибо, хорошо, понятно объясняешь. Я пошел. Ха-ха-ха-ха!
-
Слушай, нет, давай только. Всё так украшается.
-
Ну хорошо, так побарахтаемся.
-
А чё, погоди, такого инструмента до них
-
не было, что ли? Не было. Нет, такого инструмента до них не было.
-
Серьёзно?
-
Да.
-
Офигеть! Просто это такая базовая штука, которая сейчас есть, мне кажется, в очень многих программах для программистов, ну, редактирования текста.
-
Конечно, конечно, да.
-
Это как бы функциональность, это какая-то возможность вот это сделать. Но что было, собственно, продуктом-то? Она же не может, эта функциональность, висеть в воздухе. Была какая-то программа?
-
Да.
-
Как она называлась? Что она делала еще?
-
Вот. Тогда мы сделали JBuilder. Не знаю, кто их сейчас помнит, но некоторые люди, наверное, помнят. Borland. Тогда этим продуктом пользовались все программисты на Java, в основном. с редкими исключениями. К ней можно было писать плагины, и вот этот плагин назывался Renamer и представлял функцию ренейма.
-
Офигенно. Слушай, тут надо пояснить, что это была среда разработки, да? Правильно я все формулирую?
-
Borland JBuilder, да, это среда разработки. Но это не наш продукт. Первый продукт компании JetBrains, который присуществовал где-то года полтора, наверное, он просто был плагином к другому продукту, продукту другой компании.
-
Тут надо, наверное, пояснить, что такое среда разработки. Это как текстовый редактор, типа Word, он для того, чтобы тексты писать, а среда разработки— то же самое, только для программистов, чтобы писать программы. И вот у этой популярной среды разработки для Java была возможность плагинов, то есть возможность самому запрограммировать и после этого подключить к ней модули. И ребята, по сути, сделали модуль для этой среды, который позволял как раз переименовывать вещи.
-
Да, все так. Одна простая функция.
-
Кто им пользовался? Это были, по условиям, большие компании или частные разработчики? Можешь как-то картину... И такие, и такие.
-
Вот у меня сейчас точных данных прям не могу сказать, сколько таких, сколько таких. Но я помню, что несколько крупных компаний такой инструмент купили, потому что потребность была супер насущной.
-
Ага. Как его восприняли? Там была какая-то обратная связь? Типа все так сразу обвалили сервер и пошли качать? Или это был какой-то постепенный... Там есть какая-то история за этим?
-
Это была постепенная раскрутка. И да, с точки зрения успешности бизнеса, кажется, это ключевой компонент— это возможность слушать, что эти люди говорят, и очень быстро вносить изменения. А еще был секретный компонент для нас именно, что все продукты, которые мы в JetBrains сделали, ну почти. Мы же сами используем, являемся первыми непосредственно их пользователями. Мы же продукты для программистов делаем, мы программисты. Раз-два, раз-два. Очень удобно. В результате то, как я вот раньше, когда непосредственно участвовал в разработке, ты написал среде, в которой ты разрабатываешь какой-то код, пересобрался, получил новую версию этой среды, которая содержит только твои изменения. и сразу можешь оценить, насколько твои изменения помогают или мешают тебе работать дальше. Это, скажем так, наверное, с точки зрения продукта, фидбэк-луп (feedback loop), который только можно себе вообразить.
-
Да-да-да, потому что обычно ты программируешь и после этого должен отнести людям, посмотреть, что они скажут, проверить, что они соврали, что они подумали перед тем, как сказали. А здесь ты прямо сам являешься тестером. Пользователи ваши первые, они были из России или сразу Америки?
-
Да-да-да, компания была интернациональная с самого начала, с точки зрения пользователей точно. В России тогда было софт, но все-таки старались делать бизнес как-то сразу.
-
Так, вот вы сделали этот плагин, что было дальше?
-
Очень быстро стало понятно, что хочется и еще и еще функции, которые помогают программистам в чем-то более содержательно делать их работу. И тогда пришла в голову идея, что увеличивать, так сказать, value чужой программы может быть не очень хорошей бизнес-стратегией, что лучше сделать свою программу. Это, кстати, довольно нетривиальное утверждение, не всегда верно. Вот. Лучше сделать свою программу и стараться перетащить пользователей к себе. Так и сделали. среда разработки. Конечно, какого-то функционала JBuilder не было, зато был другой функционал. Все, что касается рефакторинга. Рефакторинг— это такое преобразование программы, которое оставляет семантику, но меняет как-то содержательную структуру. Например, Extract Method. Когда вот есть какой-то блок кода, ты понимаешь, что ты хочешь этот же кусок кода где-то еще в другом месте сделать, копировать, копипестить неправильно, давайте лучше выделим метод, поймем, какие параметры туда нужно передать, и потом этот же метод в другом месте вызовем. Но это довольно нетривиальное с точки зрения текста, хотя довольно простое с точки зрения тематики упражнения. Мы изимплементировали, чем-то схлопотали поддержку одного такого человека, который Мартин Фаулер.
-
Тут надо пояснить, что Фаулер— это типа один из ключевых, ну то есть это очень известный человек в программировании.
-
Да-да-да, Мартин Фаулер, вот там куча людей, которые в том числе потом работали над Agile Manifesto и вообще идеологией Agile, много разрабатывали, и много внесли в то, как люди сейчас программируют.
-
Фаулер.
-
Да, статья называлась Crossing the Refactoring Rubicon. Имелось в виду, что после того, как у человека, у программиста в руках есть такой инструмент, жизнь не будет прежней. То есть программирование полностью поменяется.
-
Офигеть! Вот это как бы реклама!
-
Для совершенно неизвестной какой-то компании, с совершенно новым тулом, это была реклама, которая кардинально повлияла на нас, и внутри, и снаружи. Нас стали знать, использовать, но при этом ощущение внутри от того, что «Ох, ребята, кажется, мы делаем действительно какую-то очень важную людям вещь», помогло двигаться быстрее, лучше. И что там, выше, сильнее. Да, вот.
-
Слушай, а кроме Fowler еще были такие моменты, когда оно прямо выстрелило?
-
Там дальше было несколько моментов, кризисные, которые очень сильно меняли производную скорость роста. Негативно скорость роста поменял конкурент, то есть буквально через три года или даже два после того, как мы, значит, выпустили это дело на рынок, пришла компания IBM, на тот момент самая могущественная софтверная компания в мире.
-
Конечно, да.
-
Сейчас-то, может, даже не все, ну, слышали, наверное, конечно, да.
-
Ну, знаешь, про неё мало слышали, про неё мало хайпа сейчас, но она всё равно, даже сейчас она остаётся, типа 20 лет умирает, всё никак не помрёт. А тогда она ещё была вполне себе.
-
Да-да-да, наверное, это про хороший ассессмент. Вот, они тогда сказали, что они вложатся в опенсорсного нашей программы. Конкурент назывался Eclipse. Мало того, что они вложились сами, они собрали вокруг этой инициативы консорциумы самых крупных компаний мира в софтвер-девелопменте, вложили туда дикие деньги, по крайней мере, нам тогда казалось по тем временам, что эти деньги абсолютно невообразимы, которые нам даже не снились. Вот, и все это раздавалось бесплатно. А мы свой тул пытались продавать.
-
Жесть какая.
-
В принципе, вполне успешно, но было понимание того, что если бы не Эклипс, то, конечно, ситуация была бы совершенно другой. Наверное, мы барахтались, развивались, вполне позитивно. С 2003 в таком режиме по 2008 или 2009 год такой был референдум вопрос, чем идея лучше, чем Эклипс. А наши IDE, IntelliJ IDEA, сокращенно ее люди называют IDEA, чем идея лучше, чем Эклипс? Мы всегда как-то вот находили, чего ответить, чем лучше, чем лучше, чем лучше, но в ответ всегда слышали, а зато это бесплатно, а зато это бесплатно, а зато это бесплатно, а зато это бесплатно.
-
Сразу как оно стоило.
-
Там было два типа, до сих пор есть два типа лицензии. Коммерческая лицензия, это когда Когда компания покупает на свои деньги, лицензия, когда разработчик покупает на свои деньги, но может использовать, естественно, нет ограничений на чем, в том числе, может на коде компании использовать. Просто важно, чтобы компания не компенсировала ему эту покупку индивидуально. Сам решил, сам выбираю себе инструмент, переношу его на работу. Вот очень хорошая работающая схема, потому что люди, конечно, индивидуально из своего кармана готовы меньше платить, чем компания. А компаниям это выгоднее, опять же, платить из своего кармана, потому что тогда они это могут отнести на расходы и как бы сэкономить То есть, в принципе, там оно один на один и получается.
-
Порядок. Сколько это стоило?
-
Коммерческая лицензия стоила что-то там в районе 500 долларов.
-
Нифига себе.
-
Нормально. И 250 стоила персональная лицензия. В два раза меньше.
-
Дорогие друзья, в ноябре у нас вышел эпизод про 3D-движки, как создают вселенные в видеоиграх. И завтра, в пятницу у нас уходит бонусный эпизод, продолжение разговора с Денисом Мишмухаммедовым. Там мы говорим об индустрии видеоигр и как стать разработчиком игр. Слушайте наши бонусные эпизоды в Телеграме или на Apple подкастах. Все ссылки в описании. Я хочу немножечко вернуться в контекст, вот, типа, третий год. Ты пришел в компанию, сколько там человек, как это вообще выглядит? Это все еще три сооснователя или это уже большая корпорация?
-
Я, когда пришел в компанию, я стал десятым сотрудником. Так. То есть это была довольно маленькая компания.
-
И вы сидите в Питере, скорее всего, да, в этот момент? Или все еще в Праге?
-
Я был в Питере, да. Основатели частично были в Питере, частично в Праге.
-
А ты пришел программистом?
-
Да.
-
Круто.
-
Я пришел программистом, и то, чем я начал заниматься, это статический кодоанализ, то есть по коду программы пытаться находить ошибки, возможные, вероятные ошибки, и их показывать пользователю. линтерами.
-
Дико интересно.
-
Супер.
-
Это такое сложное, умное, сложное программирование.
-
Вот именно поэтому я и пришел в компанию. Потому что я занимался тоже умным и сложным программированием в предыдущей компании, но, кажется, недостаточно челленджем. Зато была какая-то задача, которая... Но она
-
звучит прямо как математическая, такая, типа, настоящая.
-
Так и есть, потому что я, чтобы ее решить, я достал статью какого-то года, там, алгебраические решётки, и его там, ну, студировал.
-
Так, хорошо, вот вы сделали первую среду разработки свою, и я уже тут как бы спойлерую, что будет не одна. Вот вы ее сделали, как дальше происходит развитие?
-
Первая развилка, наверное, когда как раз появился Эклипс, Эклипс это была идея для Java, мы подумали, а какой еще большой рынок софта есть, в котором мы что-то можем помочь со своими идеями. Вот это был, народившись только тогда, .NET и C#, продукт Visual Studio и плагин для Visual Studio под названием ReSharper, который, в принципе, IntelliJ IDEA, переносит пользователь в Visual Studio. Ну, то есть, вот это ортогональная другая модель, то есть, мы могли бы оставаться плагином для GBuilder, но решили делать свою IDE, и здесь тоже могли бы, наверное, делать конкуренты Visual Studio, но в тот момент решили делать в качестве аддона, просто потому что так проще донести продукт для пользователя.
-
Ну и вообще, соревноваться с Майкрософтом— это так себе идея.
-
Хорошая мудрость. Надо её где-то себе в татуировку, что ли, сделать.
-
Да-да-да, не соревнуйся с Майкрософтом. А вы, получается, так взяли и сделали шаг назад. Ну, в каком-то смысле шаг назад, но в то же время вышли на новый рынок.
-
Так и есть. Первый раз мы тогда диверсифицировались на другой, так сказать, программистский сегмент. вот Java-программисты, а это вот C-Sharp программисты. Потом выяснилось, что таких вот разных сегментов очень много, и всем нужна помощь, и тут как-то нужно каждый раз с нуля не изобретать решение. а пытаться тиражировать хотя бы те наработки, которые есть. И мы отрефакторили Codebase IntelliJ IDEA таким образом, чтобы вычленить какие-то общие части, которые касаются IDE, реализовать поддержку каждого языка в отдельности, и из этих вот кубиков собрали по IDE для каждого сегмента разработки.
-
Вот как произошел переход из того, что у нас есть разные инструменты для двух языков, то, что у нас есть конструкторы, с которыми мы собрали среды разработки для, не знаю, 5-10 самых популярных языков программирования?
-
Как произошел переход такой? Да, альтернативная развилка, но это нормально горизонтальное скалирование рынка. То есть есть какая-то ниша, ты думаешь, какие соседние ниши ты можешь занять. Можно этот продукт растягивать, чтобы он подходил на соседние ниши, а можно в каждый ниш сделать по своему продукту. Две, в общем-то, равнозначные стратегии. Нам с точки зрения product fit тогда показалось, что более правильно делать по продукту на нишу. И тогда я считаю, что это было правильное решение. Альтернативно можно было делать один продукт, но тогда он должен очень сильно измениться, потому что, ну, скажем, наивное понимание, а давайте просто в IDE для Java налепим плагинов для Ruby, PHP, JavaScript или чего-нибудь прочего, приводит к такой Франкенштейна неудоволимой каше. программисты, начинают задавать вопросы, а что означает «давайте настроим вашу JRE». Что такое JRE и почему я должен настраивать? JRE – это Java Runtime Environment.
-
Для джавистов важно, для всех остальных нет.
-
Да, абсолютно, для джавистов важно, а для остальных даже не то, что не важно, а раздражает.
-
Скажи, пожалуйста, сколько у этих сред разработки для разных языков программирования, сколько у них общего? Насколько сложно, условно, создать среду разработки для нового языка, имея вот ваши наработки?
-
Возможно, нужно всего лишь сделать самую сложную часть, а именно анализ языка. То есть, нужно написать парсер. У нас есть набор разложенной отверточки по ранжиру, очень аккуратно. Как сделать парсер? Берешь из имеющихся инструментов, делаешь парсер. Заново изобретать не нужно, но, значит, прочитать книжку с грамматикой придется. Потом нужно провести все семантические анализы, то есть, понять, какая ссылка куда ссылается. Опять же, есть инструментарий для того, чтобы эти вещи делать, но так, чтобы вот так по щелчку пальцев поддержка нового языка появлялась, нет, такого нет. Еще важная часть работы— это понять вот эту самую нишу экосистемы, как она отличается от соседних. То есть вот почему, там, не знаю, для поддержки JavaScript'а, TypeScript'а и вообще фронтальной разработки нужно знать много всяких разных штук, нужно быть постоянно погруженным в эту экосистему, двигаться вместе с ней, двигаться быстро.
-
Который нормальному человеку, если что-то их говорят, то типа «держись подальше», какую-нибудь бэкендеру даже.
-
Да, да. Тут еще вот интересный нюанс, конечно, что есть определенная сегментация не только технологических платформ, но и людей, которые вокруг них вращаются. То есть они все друг друга показывают пальцами, говорят, вы ничего не понимаете, вы ничего не понимаете. Есть такое.
-
Еще про разработку именно сред для разных языков. Языки, кажется, постоянно обновляются. Во всяком случае, новые версии языков выходят довольно регулярно. Сколько сил нужно на поддержку уже выпущенной среды?
-
Если язык динамично развивается, то много, потом они обычно успокаиваются и меньше. Но кроме изменения языка, еще постоянно происходит изменение экосистемы вокруг языка. Это новые фреймворки, библиотеки, способы писать или генерировать программы. Вот это все нужно поддерживать, держать ухо востро. В общем и в целом, действительно, у нас много людей работает, занимаются они в основном именно этим. Те, которые работают в поддержке инструмента.
-
Получается, среда разработки состоит из поддержки двух вещей. Во-первых, есть язык, такой core, и вот ты рассказывал про как раз то, что надо научиться понимать семантику этого языка, нужно там учиться его разбирать и всё такое. А дальше есть история про инструменты вокруг этого языка. И вот я не задумывался о том, что тебе нужно и про них тоже что-то знать, про экосистему этого языка что-то понимать. Во сколько глубоко вам приходится разбираться условно в Node.js для того, чтобы для JavaScript сделать среду разработки?
-
Очень много и очень глубоко. В многих случаях нам приходится почти... Ну вот есть какой-то фреймворк. Ему даёшь source-код, и он как-то запускает программу из-за этого. Там есть какие-то конвенции, что если вот сюда положишь класс, назовёшь так, а вот сюда положишь второй, назовёшь эдак, то они как-то связываются.
-
Ruby on Rails, привет!
-
Типа того. Вот, кстати, Ruby on Rails отличный пример. Для того, чтобы предоставить с точки зрения тулинга, с точки зрения IDE какие-то инструменты для работы с этими сущностями, например, ты должен понимать, что они связаны. Вот я тот же самый Rename. А если вспомню вдруг, если ты переименуешь одну сущность, то тебе нужно и вторую переименовать связанную, потому что у них конвенция о том, что они связаны по имени. И это имя под другое. foo / foobar.
-
Вот.
-
И они как-то... Вот это ФУ, если переименуешь, то там нужно тоже сделать. Вот. И нам нужно... Во-первых, нужно очень много знать, как работают фреймворки, и в большой части их даже иногда переимплементировать внутри, под капотом. Потому что это единственный способ повторить семантику. мы делаем очень много повторяющей работы. То есть вот, наверное, самая сложная часть компиляторов всех языков, которые мы поддерживаем, в наших тулах повторена. Иногда это приводит к ошибкам, в том смысле, что она повторена, скажем, не слишком точно, или кто-то из нас не соответствует спецификации. Иногда часто это бывает так, что у нас все правильно заимплементировано. Но вот в оригинале, который мы повторяем, на самом деле ошибка, да? Ну, приходится... Приходится выравнивать, естественно.
-
Блин, я не задумывался о том, что ты, по сути, повторяешь на самом деле экосистему, которая вокруг языка выросла, тебе её надо не просто даже с ней научиться работать, а повторить.
-
Во многих случаях, да, так и есть. Жесть. Жесть, но в результате получается неплохо и полезно.
-
Ну, безусловно, потому что если ты обычный программист и, там, условным текстовым редактором работаешь, а потом всё это из командной строки запускаешь, то тебе надо во всём этом разобраться и как-то в голове у себя всё это уложить. А если ты пользуешься средой разработки, в которой всю эту интеллектуальную работу, на самом деле, по раскладыванию всего это на полочке уже сделали, то понятно, что ментальная модель ваша, наверное, не всегда совпадает с тем, как людям было бы... ну, каким-то конкретным людям было бы удобнее.
-
Это правда.
-
Но она уже какая-то есть. Это какая-то готовая система.
-
Конечно. Тут смотри, давай важную вещь скажу. Наверное, все равно каждому конкретному программисту надо разбираться, как работает фреймворк, который он использует. Это гораздо более продуктивно, чем просто, не знаю, какой-то черный ящик, который как-то делает за меня работу, и не знаю как, и знать не хочу. Потому что иначе, вот таким образом возникает магическое мышление. Когда у меня что-то не работает, и я такой, не знаю, почему не работает, давай просто переставлю эти два куска местами, может заработает. О, не помогло, тогда еще что-нибудь попробую. чего последствий я не понимаю. Такого программирования, к сожалению, очень много. Когда люди не понимают, что они делают, просто пытаются удовлетворить машину. Да работаешь ты уже же! домой пора.
-
Отлично. В чем отличие ваши среды разработки от других сред, например, PyCharm? Вообще, какие есть конкуренты, можно даже задуматься?
-
Конкурент, конечно, есть. Называется Visual Studio Code от компании Microsoft. Это наш главный конкурент сейчас. Он технически находится немножко в другой категории, потому что они себя называют редактором как раз, а мы называем себя интегрированными средами разработки.
-
Ну, надо пояснить, что из коробки VS Code на самом деле это редактор, но дальше у него есть очень богатая система плагинов, можно подключить там столько всего, что оно станет вполне себе средой разработки.
-
Да, совершенно верно. Так же, как и с Eclipse, ситуация с VS Code такая, что идеология его— это максимальная расширяемость и максимальная открытость с точки зрения того, что экстеншены могут делать кто угодно. Наши инструменты, в основном, наоборот, другую идеологию используют. Не то, что мы запрещаем писать плагины, поощряем для нас. плагин-маркетплейс, и там плагинов очень-очень-очень много. Но основная функциональность, которая потребуется 90% разработчикам вот определенной ниши, как питона, например, мы считаем, что должна быть включена в изначальную поставку. То есть человек открывает наштул, и у него все работает. То есть он не тратит время на настройку, он не тратит не то что времени, а скорее, скажем, своей ментальной капаситы на настройку и поддержание потом этой настройки в адекватном up-to-date состоянии. Это важное ключевое отличие. Какие еще? Ну, обычно люди говорят, что все еще наш анализ кода, и все, что из этого следует— код-комплишн, всякие лампочки, которые предлагают улучшение кода, код-инспекшены, которые диагностируют возможные ошибки, они существенно лучше, чем то, что пока есть для освещающихся технологий в VSCode.
-
Мы с тобой обсудили идею. Это вот первое, что вы запрограммировали для Java, да? PyCharm для Python. Для каких еще языков есть среда?
-
Это две наиболее популярные. Значит, есть два инструмента. ReSharper— это плагин для Visual Studio, и Rider ... для .NET и C#. Есть PHPStorm для PHP, соответственно. Есть WebStorm для полного стека front-end технологии. Это, собственно, JavaScript, TypeScript и, естественно, CSS, HTML и все маркапы, всякие какие только бывают. GoLand. AppCode. К сожалению, нам не удалось сделать его достаточно популярным продуктом, потому что экосистема Apple очень закрытая. На основании нашего же стэка компания Google сделал Android Studio. Это идея для Java и Kotlin в контексте андроид-разработки. То есть все андроид-приложения пишутся в ней. RubyMine для Ruby. И, кажется, всё. Хотя, конечно, будет очень обидно, если я что-нибудь забыл.
-
Ну нет, я просто скажу, что довольна, потому что реально много. Сколько у вас сейчас сотрудников?
-
Две тысячи.
-
Две тысячи. Я вот когда думаю об архитектуре такого продукта, я вижу два подхода, которые можно реализовать. Одно это такая очень большая жирная программа, такое общее ядро. и поддержку языков разных сделать такими либо настройками этого ядра, либо даже плагинами маленькими. А можно сделать очень маленькое легкое ядро, и к нему очень много специфичного кода для каждого языка. Какой подход вы используете?
-
Наверное, что-то гибридное. То есть, смотри, во-первых, во всем этом семействе продуктов это Monorepo, то есть исходники всех этих программ живут в одном репозитории и развиваются вместе. Удобно, например, рефакторить, удобно переиспользовать какой-то код, удобно вытаскивать общую базу, то, что нужно вытаскивать. Ну, кроме Android Studio, конечно. Android Studio живет отдельно, потому что это не наш продукт, а продукт Google. Но при этом каждый продукт— это отдельная команда, и она довольно самостоятельная. То есть они занимаются не только собственным написанием кода, Ну и работа с пользователем, определение, что нужно делать, чего не нужно делать, маркетингом, поездка на конференции, работа с комьюнити и все такое. То есть это маленькие бизнесы, скажем так, на данный момент. Плюс-минус мы стараемся, чтобы они были независимы, но aligned. Потому что полное независимое, конечно, приводит к тому, что один в одну сторону, у тебя другой в другую. Во-первых, очень неэффективно, во-вторых, рождает в пользователях непонимание. Важно еще, что пользователь, пересаживающийся с одного стула на другой, ощущает себя, в общем-то, как дома, потому что плюс-минус все то же самое работает, просто в другой среде.
-
Давай про бабки прямо отдельно поговорим, про бизнес-часть.
-
Давай.
-
Можешь рассказать про то, откуда основатели взяли деньги для развития компании?
-
Там было очень немного денег, это личные накопления одного из фаундеров.
-
Окей, то есть это такой бутстраппинг?
-
Да, абсолютно бутстраппинг, да.
-
Они сами на свои деньги и дальше?
-
Да.
-
Сейчас будет вопрос, он прямо дудевский, но я наберусь смелости и задам. А сколько вы сейчас зарабатываете?
-
Ну так, за 600 миллионов в этом году. Ревеню.
-
А расскажи, как вы зарабатываете?
-
На лицензию.
-
Потому что, мне кажется, до сих пор есть такое вот ощущение, что программистов... Ну, то есть вы делаете инструменты только для программистов.
-
Да.
-
Программируют, мне кажется, довольно мало людей на планете. Ну, в смысле, типа, большинство людей не является программистами.
-
Да.
-
Как на этом можно нормально заработать?
-
Нет, ну попробуйте математику посчитать. Просто скажем, программистов оценочно от 30 до 40 миллионов человек.
-
Во всем мире?
-
Да.
-
Нифига себе, как мало. Ну, с другой стороны, как бы огромный рынок, но вообще людей там 9 миллиардов, кажется, уже, или сколько?
-
Да, программистов среди них мало, и кажется, есть потребность больше. Ну, пока нет, до AI/до ИИ. Качественные инструменты нужны, потому что они кардинально увеличивают продуктивность. Поэтому, когда люди понимают, что инструмент качественный увеличивает их продуктивность, они, конечно, готовы за него платить. Я думаю, что как-то так, довольно просто. Вот, а еще важно, да, что не только люди готовы платить, но и компании готовы в это инвестировать. И очень-очень-очень много готовы инвестировать. Я считаю, что мы, наверное, оставляем много денег на столе, смогли бы больше зарабатывать у тех же самых пользователей.
-
Расскажи, пожалуйста, большинство программистов, которые пользуются вашими программами, они сами купили или им компания купила?
-
По ревеню я могу сказать, что где-то в районе 10% ревеню исходят от персональщиков и 90% от компаний. Учитывая, что коммерческая лицензия в два раза дороже, то, наверное, можно сказать, что 20 на 80. Но, тем не менее, это для нас очень суперважный инструмент, эти персональные лицензии, потому что обычно паттерн такой, что человек где-то слышал, или он работал на предыдущей работе с нашими тулами, приходит в компанию, в которой, например, наших тулов пока нету, он покупает персональную лицензию, потом начинает рассказывать своим. партнера по команде, что это такое, как этим пользоваться, показывает, представляет лучше любого человека, любого сейлзмена, которого мы могли бы привлечь для этой задачи. Так работает вирусное распространение. Потом компания смотрит, что у нее там команда 20 человек уже работает на наших тулах, она говорит, хорошо, мы, значит, вот тогда купим вам лицензии, чтобы вы не продляли подписки.
-
Есть ли у вас компании-конкуренты, которые борются за ту же самую нишу?
-
Ну вот раньше это был IBM Consortium Eclipse, а сейчас Microsoft, наш основной конкурент.
-
VS Code
-
С помощью WaysCode, да.
-
Тут очень интересно, потому что, да, я вижу, что история повторяется прям буквально зеркально, только тогда IBM сейчас Microsoft, тогда Eclipse сейчас VSCode, но VSCode— это бесплатный продукт.
-
Да.
-
В чем их интерес?
-
В чем интерес Microsoft выпускать бесплатный VSCode? Ну, есть официальные объяснения, которые они произносят, это то, что таким образом они привлекают людей выше в их клауд-платформу. Я думаю, что, наверное, так оно и
-
есть, но... Не знаю ни одного человека, который пользуется VSCode, поэтому стал пользоваться Azure.
-
Я думаю, что просто здесь не настолько прямая связь, конечно. Нельзя из весь кода прямо в Azure прыгнуть. Но эта связь возникает в голове человека. То есть он понимает, насколько много Microsoft инвестирует и вкладывается в экосистему для девелоперов. Вспоминает Стива Бэлмера, который прыгал там. Девелоперс, девелоперс, девелоперс, девелоперс. Понимает, что это важно для компании, они туда будут инвестировать. Вспоминает Microsoft, Microsoft, Microsoft, Microsoft. И, возможно, в какой-то момент, в каком-то месте возникает решение— давайте попробуем Azure.
-
Удивительно. Получается, ваш основной конкурент— это компании, которые делают бесплатный продукт.
-
И так, как я уже говорил, было всю нашу историю.
-
Жесть вообще. Так, у вас еще есть школа программирования JetBrains Academy. Образованием вам зачем заниматься?
-
Зачем заниматься образованием? Дело в том, что чем больше людей программируют, тем больше у них потребность наших инструментов. Поэтому нам выгодно, чтобы на свете было больше программировавших людей. Причем программирующих, наверное, как-то Stack Overflow, а понимающих, чего они делают, как работает вещь, как это все взаимосвязано. То есть это тоже в общем-то такой, с надеждой на рост собственного рынка. Ну и еще есть мнение, что, в принципе, тех рынок вещь, которая сама по себе может. Могут быть какие-то деньги. Успехи у нас там пока в смысле денег скромные, а в смысле привлечения, кажется, неплохие.
-
Хайрите оттуда студентов?
-
Нет, студентов мы из другого места хайрим. В смысле, у нас еще есть большая образовательная программа, работает с университетами. Мы читаем лекции, наши сотрудники читают лекции в университетах и привлекаем студентов на стажировки. И это хороший работающий инструмент для хайринга, это правда, да. Причем в России это было, конечно, прям очень сильно масштабные программы. Когда мы из России ушли, то мы сделали две программы в Европе. Одна университет в Бремени и еще университет в Пафосе, Кипр.
-
Повлияла ли на вас война?
-
Да, конечно, и самым прямым образом. И на меня лично, и на компанию, конечно, в целом. То есть, на момент начала войны у нас 75% сотрудников было в России.
-
75%.
-
75%, да. Сейчас ноль. Мы вышли максимально быстро, мы практически сразу приняли, не знаю, в первые дни решение о том, что мы выходим. И бизнес-мотивейтед решение, и этически-мотивейтед решение, конечно, одновременно. Здесь, не знаю, можно ли такие термины использовать, что нам повезло. Наверное, нельзя. Да, но во всяком случае, здесь не было дилеммы, что типа. с одной точки зрения надо было уходить, но с другой точки зрения уходить нельзя. Это был супертяжелый момент для жизни компании, потому что понятно, что все люди не могли с нами поехать. Мы предложили локацию всем, кому могли предложить работу. Конечно, поехать смогли не все, но много. И прощаться с тем, кто решил остаться, было очень тяжело, но необходимо. У нас была релокация в Мюнхен, Берлин, Амстердам. В Прагу мы релокировать никого не смогли, хотя у нас там есть возможности, потому что чехи перестали давать какие-либо ли визы людям с русским паспортом. Мы открыли три новых локации. Кипр, Сербия и Армения. Вот, пытаемся их сейчас развивать.
-
Круто.
-
800 семей перевезли.
-
800. Слушай, я слышал, не знаю за счет байки, но какая-то компания купила прямо чартер на самолет и вывозила самолетами. Это были вы?
-
Смотри, вот прямо во время, сразу непосредственно того, когда началась война, нет, это были мы не мы. Мы отправили всех сотрудников в отпуск. Сказали, что типа езжайте куда-нибудь, мы вам оплатим, типа там в курорт куда-нибудь. И многие воспользовались. А чартер мы заказывали, когда мобилизация началась.
-
Потому что многие... Ты ожидаешь, что все, а потом как бы пришли, тогда постучали.
-
Да-да, ну тут внутренне, конечно, очень многие были не согласны, несмотря на то, что они переехали, они не согласны, что это была правильная оценка рисков, что это все тут наводит стель на плите и прочие другие вещи. Но на тот момент, когда объявили мобилизацию, уже переехавшие сотрудники были просто почему-то оказались в России в этот момент. По личным делам. Как это повлияло дальше? Ну, когда у тебя три четверти сотрудников переехали в другую страну, ну, конечно, не может не повлиять с точки зрения продуктивности. И я нашим людям очень благодарен за то, что они нашли в себе силы продолжать что-то делать хорошо. Окей.
-
Продолжаете ли вы продавать свои продукты в России?
-
Нет, нет. Мы продажи остановили вот прямо сразу. В течение месяца, кажется, закрывали те сделки, к которым уже были подписаны договора. Кроме этого, к сожалению, вот тут я должен сказать, к сожалению, мы прекращаем поддержку образовательных программ. То есть мы раньше раздавали бесплатные лицензии и студентам лично, и университетам. Вот в этом моменте есть, короче, санкционное ограничение. Санкции сформулированы довольно не точечно, они нацелены на одно, как я понимаю. Попадает под них другое, но закон есть закон, и нам важно их соблюдать. В данном конкретном случае, например, есть в санкционных требованиях ограничение оказания функции поддержки. Здесь имеется в виду, конечно же, заложенные, в смысле заложенные, это крупные консалтинговые компании. которые консультируют бизнесы по тем или иным вопросам внутри. Вообще, в принципе, консультации, любого рода консультации, обращения в службу поддержки, например, когда человек пишет, это консультация. И по букве закона мы ее не можем делать. И мы этого не делаем. Хотел бы я найти какое-то более элегантное решение, хотел бы. Будем ли мы, как бы в экстенсии, закрывая глаза, что-то там продолжать помогать? Нет, не будем.
-
Последний вопрос. Вызывает ли у вас проблемы российские корни основателей? Потому что я понимаю, что компания основана в Чехии, и вот это все, но все равно как бы все все понимают. И вот как это?
-
Ну, бывает, да. Бывает, возникает. Но не то, чтобы это прям как-то существенные проблемы привносит. Как-то решаем. Есть какие-то люди, которые говорят, ну, там же россияне, поэтому мы не будем у них покупать, потому что это угроза кибербезопасности. Ну, что ж с них возьмешь? Для них это угроза. Ничего страшного. Бывает.
-
А чем вы сейчас занимаетесь? В чем ваш главный фокус?
-
Попробую объяснить так. Не знаю, как у тебя было. У меня в детстве, когда начал программировать, это было абсолютно космическое счастье от того, что ты получаешь немедленно какой-то результат, на который очень можешь быстро влиять. Что-то сделал, оно заработало. Ты сделал еще что-то, и оно опять заработало. Это удовольствие, которое, в общем-то, редкая деятельность приносит. Хотя, ну, почему нет? Ну, есть креативные разные люди, они в этом и черпают источник вдохновения. Но жизнь самореверного программиста обложена таким количеством препятствий, Нужно изучать новые фреймворки, которые каждый раз разные. Нужно сталкиваться с проблемой, почему они не работают. Нужно проходить очень длинный компилятор. Компилятор бесконечно. Деплой работает очень долго. Он падает, он крэшится, он флаки, он что-нибудь, да. В общем, ты делаешь какое-нибудь минорное изменение, а потом ждешь сутками, пока оно попадает куда-то, когда оно кому-то не переносит пользу. И мне кажется, что это корень проблемы, который надо решать. И наш фокус заключается в том, чтобы вот этот feedback loop.
-
Это, мне кажется, прямо такая цель... Миссия. Это миссия, да, это не цель, это миссия, потому что там часть проблем вообще бизнесовые, и мы вот, например, в своей компании 90% ускорения работы не за счет инструментов, а за счет того, что бизнес-процессы так выстроить, чтобы программисты могли быстро тестировать гипотезы. Но, согласен, если вы сможете порезать ту часть, которую инструментально можно порезать, то вы просто спасете души.
-
Окей.
-
Что собираетесь делать-то, компания?
-
Мы собираемся внедрять AI. Наверное, ленивый не собирается. Точнее, так, мы уже вот скоро-скоро-скоро будет релиз, в котором очень интересные вещи выходят. И мне кажется, что это не инкрементальное, а парадигмальное изменение в том, как программисты работают. И мы только начинаем коробочку открывать, возможности в этом месте. Из интересных вещей, которые мы сделали, которые, кажется, пока другие люди не сделали, это предоставление AI-ассистенту всей информации, которая доступна самому программисту на колечко пальцев через наш инструмент. Вот сейчас можно пойти, словно в ChargePT, скопипастить какой-то кусок кода, задать какой-то вопрос, получить какой-то ответ. Но при этом тот контекст, который видит чат GPT,— это тот контекст, который ты туда скопипастил. Остальные 40 миллионов строчек кодов, которые в твоем продукте есть, ему никак не доступны. Тут есть и технологическая проблема, то, что если 40 миллионов строчек туда положить, то оно в контекст не войдет. Так и экономическая проблема, что если при каждом запросе сначала отдавать 40 миллионов строчек кода, то это будет очень дорого.—
-
Вычислять просто.—
-
Да-да-да. Инсеренс делать. Поэтому вот OpenAI, помянем, они придумали такую штуку, Они придумали такую штуку, функция называется, при которой ты можешь объяснить модели в контексте, на какие вопросы ты умеешь отвечать, и как тебя по этим вопросам позвать. Теперь вот, внимание, это те же самые вопросы, те же самые функции, которые мы предоставляем программисту через пользовательский интерфейс. То есть, если человек хочет получить текстопределение какого-нибудь класса, мы можем предоставить этот инструмент человеку, а можем предоставить, значит, ЧПТ-агенту.
-
А ей будет дешевле, интерес будет более дешевый, и контекста будет меньше.
-
Совершенно верно, да. То есть тогда получается, что в диалоговом режиме, при котором человек не присутствует, человек ставит задачу, потом происходит диалог между GPT-агентом и инструментом, IDE. Агент вызывает функцию и запрашивает дополнительную информацию для того, чтобы дать ответ на поставленный человеком вопрос. Делает несколько хопов туда-сюда, получает всю необходимую для ответа информацию, дает ответ человеку.
-
Причем вы, как разработчики IDE, можете не делать вот эту безумную штуку, когда распознавание интерфейса, типа компьютерное зрение пытается понять, где в интерфейсе кнопки, где там выпадашки, а у вас вся эта информация уже у него есть.
-
Да, конечно, она есть.
-
Она работает с кишками напрямую.
-
Совершенно верно. Она работает с кишками, например, через API.
-
API-программы у тебя на компьютере. Это очень важно пояснить.
-
Да, API-программы у тебя на компьютере. Совершенно верно. Следующий шаг, что в принципе задачи можно делать не для того, чтобы узнать какую-то информацию, я тут не понимаю, почему так, или советы, куда мне идти, или еще что-нибудь, а можно ставить задачи по трансформации кода. Раньше человек говорил, значит, так, запускаем рефакторинг, rename вот этой вот функции.
-
Кликаешь на имя функции, правой кнопкой, переименовать.
-
Переименовать, говоришь новое имя. Да. В принципе, я думаю, что не за горами время, когда можно будет сказать, слушай, вот тут у меня всё в одну кучу свалено, в один модуль.
-
Разбери, пожалуйста, аккуратно по файликам.
-
Разбери, скажем так, давай-ка ты выделишь отсюда, значит, интерфейсный уровень, Data Access Layer, ну и что-нибудь ещё.
-
Стандартные уровни, которые есть во всех программах, принято разбивать программы. Сделай сама. Сделай.
-
Зачем? В смысле, зачем нагружать человека механической работой?
-
Слушай, это гениально, потому что очень часто же ты пишешь прототип все в одну кучу, и когда убеждаешься, что оно хоть как-то работает, ты начинаешь это сначала садишься и разбираешь, а потом что-то доделываешь. А можно все это поручить программе.
-
И это, скажем так, заход в сторону, как вооружить программиста ядерной бомбой. То есть мы его нагружали сначала вот к автоматам Калашникова, а теперь мы можем в руки дать ему гораздо более мощный инструмент. Надеюсь, он будет использовать его по назначению. Есть другой подход, который говорит, что в принципе надо, конечно, просто поисследовать. Это пока только исследование. Потому что можно дать инструмент в руки не программиста, а в руки, скажем, продукт-менеджера. То есть в принципе человек, который знает, какую программу он хочет получить на выходе, просто программировать не умеет.
-
Это вот то, почему мы начинали про UML на самом деле. Потому что мне кажется, UML— это язык программирования для менеджеров. Придумывался изначально.
-
Да, кажется, что идея обретает сырое дыхание на новом уровне технологической эволюции. Посмотрим, что получится. Будем вкладываться сюда.
-
Это супер цикличная история. Очень красиво. Слушай, а всё это оффлайн? В смысле, всё это локально или для новых ваших инструментов нужно будет подключение к облаку к вашему?
-
Нужно будет подключение к облаку, конечно, потому что супергигантские модели. Я встречаю много озабоченностей среди крупных бизнесов, которые считают, что они не могут себе позволить. Ну, некоторые даже просто с точки зрения...
-
Юридически, технически, скорее всего.
-
Да-да-да, для них тоже будем делать.
-
Типа, купите лицензии, а еще купите четыре стойки серверов, которые вы поставите в свой дата-центр, и от своего контура это все будет бегать.
-
Так и есть. И, конечно, люди пойдут на эти инвестиции просто потому, что те, кто не будут пользоваться такого рода новым поколением инструментов, вероятно, не будут экономически competitive.
-
Ты считаешь, что это новое поколение инструментов настолько увеличит производительность программистов, что ты будешь замечать производительность одних команд и производительность команд без этих инструментов?
-
Ну, скажем, на нашем уровне инструментария, то есть вот наши инструментария, мы просто тестировали, мы привлекали консультантов из какой-то фирмы, и они нам сфарганили отчет, да, как использование наших инструментов увеличивает ROI на 750%. Не знаю, откуда они взяли эту цифру, цифра есть, есть методик.
-
Извини, если бы я был консультантом и заплатил немного денег, я бы тоже, наверное, что-нибудь нашел. Некоторый цинизм... Справедливая.
-
Нет, справедливая, конечно, справедливая. Нет, ну тут смотреть можно. Кажется, что интуитивно люди понимают, что хороший инструментарий увеличивает производительность труда. С этим спорить странно.
-
Это одна из вещей. Мы у себя в компании всегда покупаем самые лучшие инструменты для своих программистов. Так что да, это понятная идея.
-
Тут можно спорить об эффектах или, там, скажем, о том, когда эти эффекты возникают, о масштабе или, там, о сроках. Об этом можно спорить, конечно. О том, что они работают, спорить даже странно.
-
Максим, спасибо тебе огромное, что пришел. Спасибо, Сан. Суперинтересный разговор, мне очень понравилось.
-
Спасибо, мне тоже было интересно.
-
Это подкаст Студии Либо-Либо, и сделали мы его совместно с сервисом онлайн-образования Яндекс Практику. Над подкастом работали редакторки Маша Агличева и Рита Берденникова, продюсеры Настя Медведева и Данил Остапов, звукорежиссер Юрий Шустицкий. За джингл спасибо Алексею Зеленскому. Редактор субтитров А.Синецкая Корректор А.Егорова