...

суббота, 31 декабря 2016 г.

«Меня разрывает, когда я не могу писать код» — интервью с Максимом Шафировым, CEO JetBrains

В новогоднем выпуске «Без слайдов» — Максим shafirov Шафиров, CEO компании JetBrains.

Вот о чем мы поговорили с Максимом:

  • Важен ли для JetBrains российский рынок?
  • Почему Максим не прекращает писать код?
  • Насколько помогает догфудинг и в чём его ограничения?
  • Почему компания редко закрывает продукты?
  • Как появился Kotlin, и какими компания видит его перспективы?
  • Почему компания не была продана, несмотря на щедрые предложения?
  • Как в JetBrains появилась должность PMM?
  • Как JetBrains одновременно конкурируют и сотрудничают с Microsoft?

Как обычно, под катом — полная текстовая расшифровка беседы.

О работе на российском рынке


— Начну с цитаты из интервью РБК, которое ты давал этим летом. Кстати, называлась статья очень интересно: «Как построить глобальный бизнес на эмпатии».

— Как ты, конечно, понимаешь, название придумал не я. Журналисту главное — придумать название…

— Ну, на самом деле, это довольно близко к тому, что про вас говорят: вы сами кастомеры собственных продуктов, и эмпатия, наверное, правильное слово. Мне понравился заголовок. А цитата такая. Журналист делает вводную о том, что российский рынок является для JetBrains периферийным, и ты говоришь следующее: «Сейчас ситуация несколько изменилась — мы открыли российское отделение продаж, чтобы отечественные покупатели могли не отправлять деньги в Чехию, как происходило раньше, а платить внутри страны. Так что сейчас я подписываю все эти бумаги. И вот, судя по объему бумаг, на российском рынке дела тоже идут неплохо — заказы есть, их становится больше».

Каждый раз, когда я разговариваю на мероприятиях вроде JavaOne с ребятами, которые заняты разработкой продуктов, они говорят одно и то же: «Россия для нас — не рынок». Потому что мало продаж, люди не привыкли платить за софт, и ещё ряд известных причин.

Для JetBrains Россия — рынок или не рынок?

— Ну, настолько же, насколько российский рынок софта является частью мирового. Все знают, что самый большой рынок софта — это Штаты (если не считать Китай, где сейчас специфическая ситуация). Потом идёт Европа, потом все остальные. Россия занимает где-то один-два процента. Ну и вот эти 1-2% в нашей структуре продаж точно так же фигурируют. Рынок это или не рынок? Да, рынок, и хороший.

— Влияет ли [на вас] как-то тот факт, что большинство ваших разработчиков находятся в России и компания корнями отсюда, на продажи, маркетинг?

— Никак не влияет.

— Несмотря на то, что есть каналы типа Хабра, и много людей в тусовке, все всех знают?

— Скажем так, я не знаю способа корректно измерить это влияние, но мне кажется, что оно не особо чувствуется. Нам приятно, что нас знают, это помогает нам как HR-бренду нанимать хороших людей, потому что они знают, что будут делать: то, чем сами пользуются в своей работе каждый день. Это польза. А с точки зрения денег — не знаю.

— Но всё равно рынок растёт? Рука не устала бумаги подписывать?

— Устала. Мы пытаемся внедрить какие-нибудь системы (оказывается, российские производители тоже такие делают), где можно подписывать документы электронным образом.

— А есть какие-то истории с интеграторами, людьми, которые это продают? Вот Microsoft в России продаётся через партнёров.

— Да, конечно, есть, но мы совершенно не отслеживаем, кому они продают, никак не участвуем в работе с конечными клиентами. Без этого у нас вообще не было бы никаких корпоративных продаж в России, потому что чисто технически обосновать передачу денег за границу для многих компаний трудно.

— Да, есть валютный контроль, НДС, целая история…

— Но это не чисто российская история. Такие реселлеры, чтобы чисто деньги собрать, есть во многих странах мира.

— Вы будете что-то с Россией специально делать, или воспринимаете рынок таким, какой он есть?

— Он хороший, нам нравится. Зачем с ним что-то специальное делать? Я думаю, что продуктовые российские компании к нам так или иначе все приходят, мы их знаем, вы их знаете. Можно назвать имена, но это ничего не расскажет дополнительного. Есть такой специальный сектор, как государственные компании или просто государственные структуры, вот с ними можно было бы как-то специально работать, но у нас тут случился казус, и теперь им нельзя покупать наш софт!

— То есть для них вы не российская компания?

— Для них мы не российская компания, потому что интеллектуальная собственность принадлежит чешской компании. У нас так устроен бизнес, что чешская компания заказывает разработку российской, российская делает на заказ за денежку, интеллектуальная собственность остаётся на балансе у чешской. Когда вы покупаете что-то, вы покупаете это у чешской компании. А [для продаж госкомпаниям] нужно быть в специальном реестре. И если в этом реестре есть хоть что-нибудь, отдалённо напоминающее конкурента по названию или по рубрике, то вы не можете купить зарубежный продукт, вы должны купить российский.

— Так а ведь нет же никого!

— Фактически нет, а если почитать реестр — то есть.

— Есть IBM с Eclipse, есть Oracle с NetBeans — и они же все тоже иностранные.

— Ты перечисляешь реальные конкурентные альтернативы, а есть бумажные конкурентные альтернативы.

— Это довольно забавно. То есть это всё с импортозамещением связано, с такими вещами?

— Ну, нас это не особо печалит, потому что с точки зрения денег, там их и не было. Нас печалит, что пользователи, которые хотели бы что-то купить у нас, не могут этого сделать, пишут нам «давайте вы внесётесь в этот список, Касперский же внёсся каким-то образом». А мы не можем им помочь. Обидно.

О совмещении разработки и управления


— У вас есть ещё линейка серверных продуктов.

— Да.

— Довольно большая, и если я правильно понимаю, когда у вас было два СЕО, Олег Степанов больше занимался ими. В связи с чем у вас было такое разделение?

— Ну, просто функционально сложилось. Не то что мы делили сферы ответственности, но я занялся инфраструктурой продаж в тот момент и был крепко занят этим, а Олег занялся чем-то другим.

— А что такое инфраструктура продаж?

— Это система, в которой идёт учёт всех лицензий, в которой карточки, ремайндеры, оплаты…

— А почему вы не взяли готовое решение? Наверняка много таких решений есть на рынке.

— Все решения на рынке тебя загоняют в какую-то канву. У нас исторически сложилось так, что наша идея лицензирования софта — нестандартная. Кроме того, когда нам пришло в голову, что надо бы навести порядок, у нас уже было довольно много клиентов, так что выкинуть историю и начать с нуля мы не могли себе позволить. Наверное, мы могли ее кому-то заказать. Мы даже посмотрели на какие-то варианты ERP-систем типа SAP и NetSuite — и это страшно, туда вкладываться страшно.

В некоторых подразделениях, в частности, в пражском, мы стандартизовали NetSuite, потому что там банально не было бухгалтерии in-house, она была на аутсорсе. И это был чрезвычайно мучительный процесс, так что хорошо, что мы не перевели на NetSuite систему обслуживания клиентов.

— У вас есть важное преимущество: вы люди, которые разрабатывают софт!

— Да.

— Ты сам до сих пор тоже занимаешься разработкой?

— Да.

— Расскажи, тебя вообще не разрывает от этого, когда у тебя и «код писать», и «за компанию отвечать»?

— Меня разрывает, когда я не могу писать код. Это, может быть, высокопарно или банально прозвучит, но если я за день не написал ни строчки кода, я чувствую себя очень плохо, я чувствую некоторое неудовлетворение. Несмотря на то, что я решал жутко важные вопросы, где-то кому-то с чем-то помогал или какие-то разговоры вёл, всё-таки для меня важно что-то написать, чтобы что-то работало.

— А ты думал в ключе «для бизнеса важно, чтобы я уделял больше внимания бизнесу, а код за меня напишет кто-то другой, у нас много умных ребят»?

— Да, думал. А потом придумал вот эту отмазу с эмпатией, и мне стало очень хорошо! Мне нужно понимать, как работает бизнес, зачем он работает, для кого он работает. И сейчас я его понимаю и с той, и с другой стороны.

О догфудинге


— Очень здорово — начинать историю на эмпатии, на догфудинге. Но в какой-то момент ты вычищаешь всю боль из продукта, и у тебя уже всё хорошо.

Если спросить у пользователя IDEA со стороны, что изменилось в IDEA за последние пять лет, тебе скажут — ну, появилась тема Darcula, ну, лямбды стали поддерживать. И у меня как у пользователя IDEA тоже нет ощущения, что она меняется. Вы же наверняка ведёте громадную работу — и перфоманс, и UI, и всё подряд, но это не чувствует пользователь. Вот как вы эту дихотомию для себя решаете?

— Надо в первую очередь признаться, что то, что «пользователь не видит» — это эффект восприятия, это ощущения пользователя. Потому что количество функциональности, которое мы делаем, зависит, как бы ни банально это прозвучало, от количества сил, которое мы туда вложили. Если у нас в начале над IDEA работало 3 человека, то за год появлялось 3 человекогода фич, а когда работает 90 человек, появляется 90 человеколет фич. Происходит накопление, и каждый следующий релиз отличается от предыдущего уже не в 10 раз, потом не в 2 раза, не в полтора, а, скажем, на 5%. А по объёму эти 5% — это даже больше изменений, чем происходило раньше.

В каждый конкретный момент времени каждому конкретному человеку понятно, как улучшить продукт. То, что это не всегда складывается в какую-то целостную картину, которую можно с точки зрения маркетинга подать пользователям — ну и бог с ним. Мы-то знаем, что продукт становится лучше. И в конечном итоге мы видим, что пользователи с нами согласны: деньги несут. Не были бы согласны — не несли бы.

— Всегда есть разрыв между тем, как воспринимает продукт инженер, который его делает, и как воспринимают его пользователи. Вы пытались выделить эту разницу, и если выделили, то что нарыли интересного?

— Постоянно пытаемся, и это мучительный процесс. Надо признать, что догфудинг — он несколько однобокий. То, что касается core-фич, работы с языком, каких-то generic-историй, рефакторингов, лампочек и инспекций — с ними всё понятно. Но с другой стороны, все люди, которые работают сейчас над проектом IDEA, пишут проект IDEA. Он стартовал 15 лет назад, он большой, специфический, в нём определённая структура модулей, и его не надо начинать с нуля. А когда к нам приходит какой-то новый разработчик, ставит продукт… В начале своей работы он понимает, что можно СТОЛЬКО улучшений сделать! Например, когда я сам из проекта IDEA вышел и попытался делать что-то сбоку, у меня волосы дыбом встали. Оказывается, всё не так шоколадно, как мне казалось!

Другое дело, что до команды эту историю нужно перманентно доносить. JetBrains не состоит из одной IDEA, он состоит из людей, которые разрабатывают и другие продукты. И в команду IDEA идёт поток информации не только от пользователей, но и от нас тоже, от «другого JetBrains». И подвижки есть, как мне кажется.

— У меня давно есть тезис, что догфудинг — это ловушка, в которую легко попасться. Он очень помогает на первых этапах, но начинает мешать потом. Но вот вы много лет используете догфудинг и при этом бешено растёте. Значит, мой тезис неверен? Видишь ли ты какую-то проблему в том, что у вас сплошной догфудинг? Если видишь, то как вы с этим боретесь?

Как вы, например, узнаете мнения о своих продуктах от людей снаружи? Я знаю, что у вас есть публичный багтрекер, но мы с тобой при этом понимаем, сколько людей пишут на Java, а сколько из них ходят в багтрекер IDEA. Очевидно, что это очень разное количество людей.

— Количество разное, но выборка статистически, я думаю, вполне репрезентативная.

— То есть в ваш багтрекер приходит много пользователей?

— Много. Это сотни тысяч человек, наверное.

— Ты писал систему, связанную с продажами — эта система отвечала только за продажи, или и какие-то маркетинговые вещи тоже, за трекинг каналов, например?

— Нет, тут мы использовали Marketo, пытались с ней интегрироваться. Мы пытались интегрироваться со всем, чем ни попадя.

— И как ощущения?

— Не очень. Если бы я делал продукт для маркетинга, наверное, я бы сделал что-нибудь более удобное.

— Мы (JUG.ru Group) тоже пытаемся отслеживать каналы — кто как о нас узнал, кто кому нас порекомендовал и так далее. Для нас это очень тяжёлая история, но мне кажется, что очень важная. Вы активно эту проблематику исследовали?

— Нет.

— У вас не было такой необходимости?

— Нет. Дело в том, что если компания-клиент маленькая, то она действительно с одного человека очень быстро, вирусно, подсаживается на наши продукты. Или нет. Это «работа снизу». А если компания большая, то необходима работа и сверху тоже. Не то что пытаться продавать кому-то — CTO или высшему менеджменту — но требуется работа сейлзов просто для обеспечения коммуникации. Какие-то скидки, личные взаимоотношения, помощь с апробацией, исследованием. Потому что люди в больших корпорациях вроде банков этого ждут, им это просто необходимо. Иначе ты для них выглядишь как какой-то мелкий вендор, который не отвечает за то, что он делает.

О пути в компании


— Ты же в JetBrains очень давно?

— 1 октября исполнилось 15 лет.

— Это с самого начала существовании компании?

— Почти с начала. Когда я пришёл, IDEA была версии 2.5.

— Каким ты был по счету сотрудником?

— Десятым.

— У тебя же были какие-то этапы: ты был инженером, потом продуктовым или проектным менеджером...

— Да, но я при этом всегда был инженером.

— А сейчас ты СЕО. А ты можешь какие-то этапы для компании выделить, которые как-то её меняли?

— В своём разрезе?

— Изнутри — раз, в разрезе рынка — два.

— Сейчас, вспомню все 15 лет… Когда я пришёл, у компании был один продукт — IDEA. И я лично начал с того, что я делал инспекции в IDEA, и начал я с самого простого, конечно — State Flow анализ, который подсказывает: «Вот эта область всегда true, а здесь вылетит NullPointerException». Сарказм в том, что это до сих пор наиболее продвинутая технология: инспекций мы написали полторы тысячи, но именно эта почему-то наиболее могучей оказалась.

— Ну, может быть, потому что NullPointerException — это «Billion Dollar Problem»?

— Не, его просто прикольнее всего было писать.

— Я к тому, почему до сих пор…

— Почему он полезный? Потому что он фундаментальный. Все остальные — они как шаблоны: «так не пишите, пишите вот так», и ещё пояснительная записка, почему так правильно, а эдак нет. А эта инспекция пытается понять структуру и семантику кода, которая напрямую в самом коде может быть не отражена, но вывести её оттуда можно. Я помню, первые полгода меня коллеги вызывали со словами «вот тут у тебя полная лажа», «вот этого не может быть», а я приходил и объяснял: «посмотри вот сюда, вот здесь условие такое-то, здесь вот это присвоится в это, а потом этот придёт отсюда, и вот тогда у тебя будет...» — «а, да, действительно!». Первые полгода мне никто не верил, но потом постепенно перестали ко мне ходить.

— То есть ты написал, на самом деле, кусок компилятора?

— Да, и даже чуть больше. Оно компилировалось действительно в некоторый псевдокод, и внутри ма-а-аленький интерпретатор а-ля виртуальная машина, который пытается разобрать все неэквивалентные состояния памяти по control flow graph’у, а потом, соответственно, посмотреть их на совместность и выделить какие-то условия, которые могут быть интерпретированы как баги.

Потом Сергей Дмитриев, основатель, довольно много чего написавший, написал первую версию редактора.

— То есть изначально это был не редактор, а какой-то отдельный инспекшен? Как это работало?

— Не-не, ты запутался. Кроме inspections, я начал поддерживать редактор.

— Ты конкретно?

— Да, конкретно я. Исправил там миллион проблем, просидел с профайлером в первый раз в жизни, на Pentium III, я специально попросил себе машинку, которая…

— … не тормозила?

— Нет, наоборот, которая тормозила! Потому что пользователи жаловались нам: «У вас лаги и код печатать невозможно!», а я на Pentium 4 не мог этого увидеть.

— Это тоже догфудинг, только в другом разрезе.

— Запустил первый профилировщик в своей жизни, и он СКРИПЕЛ. Это было так: ты нажимаешь клавишу, чтобы проверить скорость того, как это печатается, и можно было через десять минут подойти и получить трейс того, что происходило в это время, а потом как-то пытаться это оптимизировать.

Занимался в редакторе фолдингом, перфомансом, исправил кучу багов, сделал кучу фич. А потом пришёл Сергей Дмитриев (основатель и президент JetBrains — прим. авт.) и сказал: «Давай ты будешь руководить IDEA». Вот в такой постановке вопроса. Я говорю: «Вы чё, офигели, что ли?»… Ну ладно, говорю: «Как же так?».

Потом дня три походил с «Как же так?» в голове, и решил, что надо попробовать. И попробовал. Собрал кучу шишек. Когда говорят, что из программистов получаются плохие менеджеры — это, конечно, в определённом смысле правда. Все те же шишки, которые какой-то менеджер уже где-то собрал, тебе придётся собрать заново.

О том, как закрываются некоторые проекты


Ладно, я же про компанию рассказываю, да? Ну вот, к тому времени у нас уже был проект Fabrique, который оказался закрыт. Это была идея «давайте мы сделаем такой мега-инструмент для написания веб-приложений, там будет какой-то серверный движок, чтобы UI можно было рисовать на картинке, AJAX там поддержим, WYSIWYG».

— Это была середина двухтысячных?

— Да, слово AJAX только начало появляться, ещё не вошло в мейнстрим, это был, наверное, 2004-й год. Так вот, проект Fabrique был закрыт за десять дней до своего первого релиза.

— Не полетело?

— Пришло осознание, что не полетит.

— А как вообще принимаются решения о закрытии? Вы же вложили очень много сил в этот проект? И это же наверняка не единственный проект, который вы закрыли?

— Мы очень мало что закрывали. Положа руку на сердце — наверное, можно было бы закрыть больше. Но легко закрывать проект, пока ты не выкатил его пользователям. Потому что после того, как ты его выкатил, даже если у тебя нет никаких прямых обязательств (вроде тех, что они заплатили тебе денег или рассчитывают на багфиксы, сопровождение), всё равно есть коммитмент. Закрытие зарелизенного проекта негативно влияет на то, как люди воспринимают твою компанию.

Компания Google, наверное, может позволить себе закрывать проекты направо и налево просто потому, что может. Сколько было шума про закрытие Reader? Им пользовались миллионы человек! Компания Google осознала, что не может себе позволить сопровождать такой проект, просто некому внутри этим заниматься, никто не хочет. Они могут закрыть даже то, про что сами раньше с фанфарами трубили: «Wave — это новый способ коммуникации, e-mail-киллер, вы сейчас все будете писать в Wave»… Пробуешь — действительно красиво. Но не пошло. Взяли и закрыли.

У нас не так. Мы закрыли Fabrique, мы закрыли OmniaMea — это был такой написанный на .NET информационный аггрегатор: ридер имейла, ньюзгруп, RSS-фидов, отслеживание контента сайтов… Если нужно отслеживать какой-то большой объём информации, есть коробочка, которой это удобно делать. И там была куча смарт-фич. Как бизнес это не полетело, и приняли решение закрыть. И это чуть ли не всё из закрытий продуктов.

— Получается, что как только ты свой продукт кому-то продал, для тебя это сразу легаси. Есть то, что у тебя растёт, а есть то, от чего не можешь отказаться, потому что у этого чего-то есть кастомеры. Есть ли сейчас проекты, которые тянут вас вниз?

— Я бы не хотел это комментировать. Скажем так: есть проекты, которые приносят меньше денег, чем мы на них тратим.

— Понятно. Портфель для того и нужен, чтобы диверсифицировать. Была ли в своё время история с запуском ReSharper попыткой диверсифицировать ваш бизнес?

— Да, конечно, абсолютно.

— А что вас тогда напугало? IBM и Eclipse? Расскажи чуть-чуть про это, что вы тогда чувствовали?

— А я тогда был инженером. Это довольно забавно для меня, сейчас ретроспективно я понимаю, что когда Сергей Дмитриев сказал «а давай ты будешь руководить IDEA», он на самом деле имел в виду, что IDEA конец, потому что Eclipse её сейчас убьёт. И не важно, кто будет этот проект дальше развивать, но нужно, чтобы какое-то время проект побыл на плаву…

— Потому что есть кастомеры…

— Да. Ну и может, ещё побарахтаемся…

— Как интересно.

— Ну, может, он и не признается сейчас в этом, но я как-то так это сейчас вижу. Ну и действительно была такая ситуация: все действительно либо закрылись, либо переписали свои IDE на базе Eclipse — Borland Together, например.

И возвращаясь к твоему вопросу о том, что «мы во всём правы и догфудинг очевидно хороший способ, потому что мы хорошо зарабатываем» — нам еще конкуренты помогают, и это тоже довольно существенно.

— Что ты имеешь в виду?

— Ну, я наблюдаю, что у Eclipse сейчас дела идут не очень хорошо.

— То есть вы учитесь на их ошибках, или просто они сами себе могилу роют?

— Роют, причем откровенно: их пользователи жалуются на качество. Они и раньше жаловались, но была какая-то динамика развития. А сейчас — есть сайты, где можно посмотреть, сколько в Eclipse коммитов делается (IDEA Community и Eclipse — опенсорсные). И у нас, например, две сотни коммитов в день, а у них двадцать коммитов в месяц в такой же по функциональности code base.

— Есть ощущение, что они сдаются?

— Они не сдаются, конечно, просто у них нет финансирования. Это некоммерческая организация, которую финансируют разные большие корпорации.

— Это интересная история, потому что народ привык про опенсорс рассуждать как про какие-то некоммерческие вещи, но мы же отлично понимаем, что Java спонсируется Oracl-ом, Eclipse спонсируется IBM-ом и так далее — то есть, разработчики этих проектов работают не бесплатно.

— Бывают истории, когда люди работают бесплатно, но это не может продолжаться вечно.

— Это не про большие продукты. В то, что OpenSSL бесплатно делают три человека — я готов поверить. Но, например, в Linux контрибьютят сотрудники крупнейших вендоров, таких как Red Hat и Intel.

Почему я про это заговорил: мне очень нравится, что вы продаёте продукт за деньги. В России как-то не принято покупать. И, может быть, не только в России. Вообще эта история с опенсорсом и free software немножко пугает, потому что пользуются этими продуктами программисты, которые получают за свою работу деньги. Но вот платить за эти продукты их компании часто не готовы. Это чисто российское явление, или в остальном мире это тоже наблюдается?

— С одной стороны, в мире считается, что хорошо быть Open Source и плохо быть proprietary. С другой — в России есть ещё такая штука, что весь Software Development — это некоторое донкихотство. Нужно быть рыцарем в белых доспехах, делать хорошие вещи бесплатно, делиться им с миром. И в принципе зарабатывать в России много денег имеет некий флёр постыдности. Олигархи, «если у тебя хорошая машина — значит, ты наворовал»… К сожалению, есть такой шлейф. Это пройдёт, конечно.

— Но деньги помогают делать интересные вещи — например, создавать новый язык программирования.

— Не только. В первую очередь, деньги помогают делать то, что ты делаешь. Я абсолютно уверен, что пользователи наших продуктов заинтересованы в том, чтобы платить нам деньги. Потому что эти деньги будут использованы на то, чтобы сделать их инструменты лучше.

О Kotlin


— Я хочу поговорить про Kotlin. Я очень давно знаю Андрея Бреслава, он меня учил еще в школе, потом в институте — и я ему безумно за это благодарен. И в какой-то момент Андрей вернулся в Питер и сказал «я теперь делаю язык Kotlin в JetBrains». Кому и как вообще пришла в голову идея сделать свой язык программирования?

— Давай я всю историю расскажу. Пришёл Сергей Дмитриев и говорит: «Знаете, мне кажется, нам надо что-то интересное сделать. IDE, тулинг — это всё понятно, а что бы такого сделать, чтобы вывести компанию на новый уровень?» И Дима yole Жемеров ляпнул: «А давайте язык программирования сделаем!»

И Дмитриев пришёл ко мне: «Вот Жемеров говорит, давай язык программирования сделаем». А я отвечаю: «Господи, что за фигня? Где JetBrains, и где язык? Язык имеет смысл, только если он популярен. Вот IDE может захватить 5% рынка и отлично чувствовать себя на нём. А язык не может так, он имеет смысл, только если он мейнстрим». Я до сих пор так считаю.

— Ну, 5% для языка — это очень хорошо. По индексу TIOBE в районе 5% заканчивается первая десятка (на самом деле — тройка — прим. авт.).

— Хорошо, 5% — это я загнул. И мне в какой-то момент казалось «ну нет, это невозможно просто потому что невозможно». А потом я подумал: вот мы поддерживаем языков 20 или 30, я уже даже сбился со счёта. Всяких разных. И мы знаем, как люди на них пишут. Мы знаем, где в каждом языке разложены грабли, знаем все их плюсы и минусы — не только с точки зрения каких-то формальных фич и чекбоксов, а с точки зрения практического использования всех этих языков.

— То есть вы накопили экспертизу.

— Да. И пришло понимание, что, наверное, JetBrains — самая технологически подкованная компания для того, чтобы сделать язык программирования, который будет действительно использоваться в индустрии. Потом мы провели все эти стандартные разговоры, «почему не Groovy?», «почему не Scala?», «почему не что-нибудь еще?» И мы начали думать, какой это будет язык. Мы были абсолютно уверены, что нужна статическая типизация, потому что статическая типизация — это тулинг, а тулинг — это IDE, а IDE — это деньги, ну и вообще — это удобнее и быстрее. Мы накидали какой-то список фич, а потом Андрей Иванов привёл Бреслава, и тот начал нас спрашивать.

И это был Jam Session. Я его отлично помню от первой до последней минуты. Он начал задавать вопросы, я отвечал на них — почему не Scala, почему не Groovy, все те самые. Он довольно скептически был настроен, но, тем не менее, открыт к диалогу.

И к концу разговора, часа, наверное, через четыре, у нас уже было чёткое понимание, что Андрей у нас работает, и делает он вот это и вот это. Потом он уехал в Microsoft Research на год, делал там какое-то исследование, потом он вернулся, и мы с ним где-то полтора года сидели в комнате и просто дизайнили новый язык.

— То есть сначала вы это вдвоём делали? В четыре руки, в две головы?

— Ну, это слишком нескромно. Участвовали другие люди, конечно. Всякие идеи обрабатывались и апробировались в коридоре. Очень много ребят (тот же Дима Жемеров, тот же Илья Рыженков, Володя Решетников, который сейчас в Microsoft), высказывали массу идей, комментировали. Или Рома Елизаров — он пришёл к нам, потому что я позвал: «Ром, я буду в JetBrains рассказывать, как мы будем делать язык программирования, приходи».

— Какой это был год?

— 2011-й. Может, 2012-й. Рома пришёл, послушал, сказал: «Чуваки, всё классно… Но Nullability». И мы такие: «Ну это трудно: дженерики, interoperability с Java»… Он: «Nullability, чуваки». И появилось Nullability.

— Это очень интересно, потому что Рома Елизаров зимой тоже был в «Без слайдов», и тогда он ещё был сотрудником компании Devexperts, а теперь он сотрудник компании JetBrains и внезапно он делает Kotlin Native, о котором мы ещё поговорим. То есть он ещё тогда, на том этапе, был человеком, который существенно повлиял на язык?

— Да, именно Рома предложил конкретно Nullability. И это сейчас, наверное, одна из самых главных фич в Котлине — это понятная вещь, удобно объяснять пользователю. Но Рома дал идею, а нам пришлось действительно сильно пыхтеть для того, чтобы сделать её реализацию в языке удобной, потому что Nullability в типовой системе… Если её наложить на Java, этим невозможно будет пользоваться. Нужны ещё какие-то механизмы в языке: вопросики, точки…

— Я видел, Андрей рассказывал: один восклицательный знак, два восклицательных знака, вопросительный знак…

— Всё это довольно итеративно появлялось.

— Когда вы это запускали, у вас был прогноз «тогда-то мы выпустим язык»?

— Да. У нас был прогноз, что мы выпустим язык через полтора года. Потому что «чё там делать — надо всего лишь написать компилятор».

— А релиз состоялся, как я понимаю, этой весной?

— Лет через пять после той даты, когда мы сказали, что будет через полтора года.

— Пять лет: сначала два, потом пять, сейчас уже чуть ли не тридцать или даже больше, делают новый язык программирования. Это огромное количество сил, нервов и, конечно, денег. То есть, скорее всего, каждый год на этот проект компания тратит миллионы долларов. Как вы вообще оцениваете эту инвестицию с точки зрения бизнеса?

— Как стратегическую.

— То есть вы делаете серьёзную ставку на Kotlin?

— Да, абсолютно. Когда Kotlin станет мейнстрим-языком, значение компании JetBrains для рынка Software Engineering, на котором она работает, будет совершенно другим. То есть, про нас будут говорить, что мы не какие-то ребята, которые делают удобные, но в любой момент заменяемые инструменты, а как про тех, кто делает некоторую корневую фичу экосистемы, на которой всё строится. Это другой вес, другой информационный поток, и деньги, я думаю, тоже другие.

— На момент интервью в РБК ты называл годовой оборот, по-моему, в 147 миллионов долларов. Это большие деньги. Вы инвестируете вообще в другие проекты, кроме Kotlin? Вот языки вы уже все съели, только IDE для Go, наверное, нет. (интервью было взято до анонса Gogland — прим. авт.)

— Будет!

— Отлично, теперь все узнали, что таки-будет. Есть язык Go, есть JetBrains…

— «Вы привлекательны, я чертовски привлекателен, чего зря время терять»…

О серверных тулах


— С этой историей мне всё понятно. А вот что дальше? Позволяет ли вам ваш нынешний объём инвестировать в разные проекты исследовательские, может быть, в другие компании?

— Смотри. С точки зрения JetBrains мы для себя определили на ближайшие сколько-то лет, что JetBrains всё-таки занимается Software Development. Всё-таки наш клиент — это программист или команда программистов, и мы будем делать продукт, который сфокусирован на этой группе. Конечно, это не только IDE.

В частности, ты говорил про серверные тулы — на мой взгляд, сейчас у нас в них не полная картинка. У нас есть тулы, которые закрывают какие-то конкретные фичи, а других конкретных фич не хватает. Это какое-то кусочное вырезание, аппликация из общего одеяла. А нам бы хотелось сделать инструмент, который является для команды настолько же интегрированной средой, насколько IDE является средой для программиста.

И анекдот заключается в том, что когда мы начинали, например, TeamCity, наш первый серверный продукт, у нас была ровно такая мысль. Мы сказали: «Вот, ребята, мы сделали IDE, можно сказать, что она готова— в принципе уже в 2005-м от IDE ничего больше было не надо.

Инкрементальные улучшения, конечно, имеют большой эффект кумулятивно, но, тем не менее, это инкрементальные улучшения. И вот мы думаем: окей, давайте мы сделаем Integrated Team Environment, но с чего-то нужно начать, с какой-то конкретной истории. Тогда для Continuous Integration, был CruiseControl — это такая система, которая хранится на одной машинке, которую нужно конфигурировать xml-ным файлом. И если у тебя, например, два проекта, нужны две машинки, если билд идёт долго, то опять же нужны две машинки, их надо отдельно настраивать, никакой интегрированной истории, в общем, трэш и угар.

— Но в то время Косукэ Кавагути уже работал над Hudson, который сейчас Jenkins.

— Тогда мы не знали про Hudson, знали только про CruiseControl, это был конец 2004-го. Так вот, что такое Integrated Team Environment, было еще непонятно, и мы решили сделать понятную конкретную вещь: Continuous Integration. Сделали, по-моему, за год или полтора, выпустили, пришли пользователи, сказали «не хватает вот этого и этого», мы сделали это и это, выкатили пользователям, они сказали «нам теперь ещё вот здесь подмазать, здесь подкрасить, здесь ещё вот эту version control system интегрировать», ну и мы, что называется, увлеклись.

Этот процесс напоминает следующее: человек начинает копать ямку под дерево, а потом случайно выкапывает траншею, и по сторонам уже ничего не видно. Единственное, что он может делать — эту траншею углублять. И так же у нас получился YouTrack, так же получился UpSource (code review-тул), и сейчас мы в очередной раз пытаемся переосмыслить «а что такое вообще командный инструмент, как он должен быть устроен».

— С TeamCity я примерно понимаю, всё-таки сборка софта — это специфическая для индустрии область. Но вот, скажем, какой-нибудь YouTrack можно использовать и в не-айтишной компании. Скажем, я в JUG.ru Group делаю конференции, мы для работы используем JIRA. Мы используем её как конструктор бизнес-процессов, используем её API для интеграции с разными внешними формочками, и это крутейшая вещь! Стейт-машина, фактически. Думали ли вы о том, чтобы выходить с тем же YouTrack на какие-то не-айтишные, не-софтверные рынки?

— Он используется и у не-айтишников. Есть люди, которые делают системы продаж на YouTrack. У них какая-то форма, в которой клиент заполняет какие-то поля, в результате это оказывается в YouTrack issue, там настроен workflow-процесс обработки этого заказа, и всё.

— То есть тоже как классическая стейт-машина.

— При этом, поскольку всё кастомизируется и там навороченные workflow на MPS можно рисовать, то да. Но всё это инициатива конкретных пользователей, и YouTrack туда пришёл в эти компании через каких-то девелоперов. Для того, чтобы делать продукт, ориентированный на бизнес в целом, надо научиться заходить к этому бизнесу с каких-то сторон, про которые мы толком не знаем. И, может быть, это и было бы полезно, но, с другой стороны, у нас есть наша любимая пользовательская база, о которой мы многое знаем, что можем сделать для неё в разы больше. И нам не нужно будет придумывать какую-то историю про то, чем JetBrains на данный момент не является.

О конкуренции с Microsoft


— Мы немного затронули тему Eclipse, IBM, и это, видимо, было начало двухтысячных. Сейчас вы выводите на рынок с Rider.

Это вообще было очень смешно, потому что год назад в «Без Слайдов» пришёл Серёга Шкредов, и на vjq вопрос «Будете ли вы делать C# IDE?» ответил: «Нет, ты что!» А через неделю вышел анонс, что JetBrains такую IDE таки делает. Было весело!

Вы сейчас, фактически, выходите на рынок против Microsoft. Rider — это конкурент Visual Studio, который отъест у неё некоторую долю рынка. И это немного отличается от ситуации с Java, потому что там был отдельно вендор, который делал технологию Java (в то время — SUN Microsystems), и были отдельно вендоры, которые делали для нее IDE — IBM и вы. Была сановская технология и две компании, которые делали для нее тулинг.

.NET — это технология, которая фактически принадлежит Microsoft, несмотря на все их опенсорсы. Они ваши партнёры, ваш ReSharper работает поверх их Visual Studio, и так далее. Имея весь этот сложный бэкграунд, выводить на рынок конкурирующий продукт — это страшно, не страшно? Как вы это всё видите?

— Смотри. Во-первых, кроме Sun Studio, NetBeans, был ещё JBuilder и куча других игроков. «Конкурент Visual Studio» совсем не означает «конкурент Microsoft», потому что Microsoft — большой. Microsoft как компания в целом, заинтересован, чтобы их платформа была как можно более широко используема. Для платформы здоровая конкурентная среда, в которой есть тулинг, инфраструктура, является конкурентным преимуществом. Одной ногой мы их конкуренты, потому что отъедаем у них какую-то денежку, которую недополучит Visual Studio, но другой ногой мы привлекаем к ним новых клиентов, которые сядут в Azure и будут писать на .NET.

— Очень хорошо, что ты сказал про Azure. У меня постоянно происходят разговоры в индустрии, и один человек из Microsoft год назад мне сказал следующее: «Для нас .NET — это legacy-технология». Он сказал, что ставки делаются на какие-то другие вещи: на мобайл, на Azure, на IoT. И, в принципе, это хорошо видно по тем маркетинговым активностям, которые они сейчас делают.

Когда вы делаете Rider, который позиционируется как C# IDE, учитываете ли вы, что у Microsoft немножко другое направление и видение и с Azure, и с мобильными вещами…

— Microsoft большой. Microsoft — это не человек, который может принять для себя решение, что он пойдёт на запад, а не на север. Microsoft может пойти во все стороны одновременно, потому что их 70 000 человек (на самом деле, более 100 000 — прим. авт.). Если они будут развивать Azure, это не значит, что они не будут развивать .NET.

Понятно, что они, наверное, сейчас не делают на .NET главную ставку. Понятно, что история с мобильным Microsoft не взлетела, и это, похоже, стало ясно самому Microsoft. Тем не менее, Enterprise-приложения во всяких банковских структурах в большом количестве пишутся на .NET. Банки могут хотеть, например, слезть с виндовой инфраструктуры на Linux, потому что это дешевле операционно. Для этого они сядут на Mono или .NET Core, отсюда есть необходимость в кроссплатформенной разработке. Есть Xamarin — тоже некоторая кроссплатформенная история.

— Microsoft идёт в Linux Foundation.

— А все везде идут. Вот Google идёт в .NET Foundation.

— Получается, что у гигантов индустрии есть интересы вообще везде?

— Конечно. Это подтверждает то, о чем я говорю. Они и не должны ставить на какую-то одну лошадь.

Об отношении к деньгам


— Ещё интересная история — то, что вы частная компания. Вас пытались ли купить?

— Да.

— Приходили предложения о покупке, и они как-то обсуждались. Что вы в этой ситуации чувствовали, как принимали решение и за счёт чего до сих пор остались компанией без IPO и не принадлежащей другой компании?

— Какая-то философщина сейчас пойдёт. Смотри: по идее, бизнес делается с целью зарабатывания денег.

— В уставе любого ООО написано: «с целью извлечения прибыли». Философствования философствованиями, а в уставе у компании должно быть это!

— Конечно, написано. Но у нас в JetBrains есть ощущение, что зарабатывание денег является не целью, а некоторым средством для того, чтобы делать интересные и полезные вещи. Чем больше мы заработаем денег, тем более интересные и полезные вещи мы сможем сделать.

Периодически возникает ситуация, когда то, что мы сделали, интересно какому-то большому игроку. Потому что повторять всю эту историю — дорого, долго, пока ни у кого ещё не получилось, и 15 лет ждать, пока оно вырастет, а может, не вырастет… В общем, дешевле купить, сколько бы это ни стоило. Но нам-то это зачем?

— То есть вам это не нужно?

— Вот exit: представляешь, ты делаешь 15 лет классный продукт, а потом тебе предлагают много денег (ну, ты и так много имеешь, но предлагают вообще очень много денег), и ты меняешь дело жизни на кучку денег. Зачем?

— Это интересный подход. Сейчас вокруг мы видим огромную истерию вокруг стартапов, и недавно даже был на эту тему обозленный пост на Медиуме. Мне очень понравилась мысль оттуда, что мы живём в мире, в котором «стартаперского дискурса» стало как-то очень много. Сам подход «сделать что-то и продать это кому-то за миллионы» становится чуть ли не доминирующим в мире. И вы на этом фоне смотритесь очень…

— Инородно.

— Да, правильное слово. Как вам удаётся удержаться?

— От какого соблазна?

— Ну вот приходит к вам Oracle, предлагают котлету денег, 10 миллиардов.

— Ну, ты загнул, но…

— Ну я же не знаю цены, говорю наобум. Многие люди, особенно стартаперская среда, привыкли оперировать словами «инвестиция», «цена» и всеми этими страшными аббревиатурами, которые были в том самом посте. Очень интересно, что вы вообще это для себя не рассматриваете. Вы не чувствуете этого давления? Мне кажется, это должно создавать давление. Должна ли быть цель какая-то за пределами денег?

— Ну конечно. Много денег банально тяжело осмысленно потратить. А если ты пытаешься заработать деньги чисто ради спорта, то надо откровенно признаться себе, что это спорт. «Вот он заработал два миллиарда, а я пять. Кто круче? Я». Нет.

— Вы сильно выросли. Вы растёте, как я понимаю, на десятки процентов в год, если не быстрее…

— У нас, как ни странно, линейный рост: мы нанимаем порядка 50-70 человек в год.

— Это по количеству людей, а по деньгам — у вас, очевидно, экспонента. А не боитесь, что выйдете на плато, когда, условно, съели всех Java-программистов, и на этом всё остановится, и надо что-то делать? У вас нет инвесторского давления «вы должны расти, должны больше денег», понятно, что частной компании в этом смысле чуть легче — но ощущаете ли вы сами, что плато близко? Насколько далеко до него, по твоим ощущениям?

— Возможно ли плато? Конечно, возможно, куда денется. Я думаю, что запас есть лет на пять.

— Вы уже начинаете думать о том, что вы будете делать дальше?

— Конечно! Kotlin, например. И интегрированную среду для команд разработчиков. И ещё у нас есть инициатива вложиться в образование.

— Это история со Stepik.org?

— Это целый комплекс историй.

По вашим ощущениям, сам IT-рынок растёт? Количество Java-программистов, .NET-программистов, PHP-программистов увеличивается с каждым годом?

— Суммарное число — да, конечно. Есть мнение, что софт вообще всё сожрёт.

— Герман Греф, например, говорил год назад на гайдаровском форуме, что Сбербанк будет трансформироваться из банка в IT-компанию.

— Надо понимать, что для банка это чрезвычайно сложная трансформация. Я не могу представить себе, как это фактически будет реализовано. Но, тем не менее, надо отдать Грефу все возможные кредиты, что он вообще про это задумывается, что он такие цели ставит, это просто здорово.

О том, кто такой Product Marketing Manager


— У вас есть должность, которая называется Product Marketing Manager (далее — PMM). Что это за история, придумывали ли вы сами или откуда-то взяли, и довольны ли вы тем, что в итоге получилось?

— Ой, сразу распишусь в собственной безграмотности: я не знаю, спёрли ли мы или это наша придумка. Но сложилось очень здорово. Это была такая трансформация. Сначала у нас был отдел маркетинга. После того, как программисты написали какую-то фичу и сделали релиз, нужно было побеседовать со специальными людьми, рассказать «смотрите, у нас в релизе, как нам кажется, такие-то фичи есть, напишите блог-пост». Потом приходил блог-пост, глядя на который, я выбирал весь свой лимит матерных слов, вырывал все оставшиеся волосы на голове… Эти посты подходили для продажи зубной пасты, пива. Превосходные термины…

— «Awesome», «perfect», «brilliant», «excellent»… У меня закончился словарный запас!

— Приблизительно так. Причём у человека есть словарный запас приблизительно таких эпитетов, и он по одному подставляет их к очередной фиче.

— Нельзя же повторять одно и то же слово, ты должен чередовать awesome и perfect!

— Человек с образованием, который умеет писать тексты, понимает, что нельзя, а что можно. Но у программистов, нашей целевой аудитории, есть очень серьёзный булшит-фильтр: если ты видишь булшит, срабатывает флаг в голове. Я не могу извлечь семантику из текста, в котором есть определённый уровень булшита. Текст должен быть содержательным, а не красиво и правильно написанным. Выяснилось, что нам нужны люди, которые могут написать такие тексты.

А потом выяснилось ещё, что они не могут написать такие тексты, если они не являются частью команды. Если они не понимают семантики слов, которые пишут, если они просто делают редактуру, то никакой гениальный человек не может сделать хороший не-булшитовый текст. Так мы пришли к тому, что у нас человек просто сидит в команде, пишет тексты, общается с пользователями наравне с программистами и доносит миру, что происходит.

Потом выяснилось, что в каждом продукте такой человек есть, и что они должны общаться между собой, чтобы JetBrains выглядел как не две-три кучки разрозненных чуваков, каждая из которых делает свой продукт по собственному разумению, а как слаженная общая история. И теперь эти PMM’ы, с одной стороны, в продукте, а с другой, они общая кучка, которая постоянно между собой общается. И кроме PMM’ов, мы пытаемся эту историю в других областях применять, вроде DevOps, например.

— Возвращаясь к истории про догфудинг. PMM-ы у вас вырастают из разработчиков, а не из маркетологов. Встает вопрос про необходимость маркетингового образования для них, про понимание функционирования рынков и т.п. Но они же бывшие инженеры. Как одно матчится с другим?

— Очень кусочно. Я не могу сказать, что мы следуем всем новомодным тенденциям в маркетинге, что мы прочитали все умные книжки. Кто-то из PMM-ов читает профессиональную литературу, кто-то пытается заниматься самообразованием, кто-то работает по наитию, кто-то внимательно слушает, что ему говорят коллеги, а кто-то, наоборот, внимательно не слушает, потому что коллеги говорят полную хрень. Каждый себе на уме.

На самом деле, в PMM’ы приходят самыми разными путями. Есть люди, которые не инженеры, не умеют писать продакшен-код. Но, в принципе, понимают, как это делается. Есть среди них и боевые инженеры, что-то делавшие, но у которых больше развиты социальные функции.

О найме сотрудников


Есть какие-то ключевые функции бизнеса: разработка, продажи, маркетинг, HR. Если не секрет, что из этого всего для тебя — головная боль? Или где ты видишь наибольшие перспективы?

— Те проблемы, которые я вижу, я пытаюсь решать. Но есть проблемы, которые я не вижу. Есть проблемы, которые неизбежно должны вырасти просто потому, что компания растёт — коммуникации, может быть, обмен информацией, стандартизация, какие-то политики, и так далее.

— По тем признакам, которые видны снаружи, вы скорее стартап, но по финансовым показателям вы — серьёзный бизнес. Как вы это матчите?

— Это очень просто матчится, вообще нет никакого конфликта. У нас организация такая, что команда, которая делает продукт, автономна. В принципе, ей ничего ни от кого не нужно. Нужны определённые сервисные функции: чтобы в офисе было тепло, сухо и комфортно, чтобы была техника, инфраструктура работала, чтобы был налаженный диалог с HR’ом, приходили хорошие новые люди. Если эти проблемы решены, команда сработает сама. Она зарабатывает N денег. Другая точно такая же команда заработает 2N денег. Ну и что?

— HR — это же не только про найм людей. У тебя есть бизнес, и ты, наверное, в идеале хочешь понять, какие нужны люди, чтобы бизнес развивался. «А тут мне нужно закрыть дыру». И это довольно трудно, особенно с точки зрения программирования: понять, какой программист мне нужен, чтобы он вытянул новый продукт. Вот, условно говоря, Андрей Бреслав — Language Architect. Это же вообще ни фига не простая задача — найти архитектора языка.

— Ты же понимаешь, что мы не выходили на рынок, не писали вакансию на HeadHunter: «Нам нужен Language Architect, чтобы писать язык». Так не делается. Просто встретились, и выяснилось, что человек может делать эту работу. До этого мы не знали, что он нам нужен. И так же во всём остальном.

У нас есть другая проблема (не знаю, правда, проблема ли это). Мы не можем нанимать людей на руководящие позиции. То есть мы много про это думали, но я до сих пор не понимаю, как это делать.

— Такой человек не интегрируется в компанию?

— Cкорее всего, интегрируется, мы просто не знаем, с какой стороны к этому подойти. Скажем, пусть у нас есть продукт, в котором слабый руководитель — чисто теоретически, я ничего не имею в виду. Как? Что, перебрать? Это же не секретарь на ресепшен, про которого можно за полтора часа собеседования понять, что он из себя представляет с точки зрения этих функций.

— Люди, которые у вас работают, изучали много математики, изучали программирование, IT. А когда с человеком происходит трансформация и он становится руководителем, ему становятся нужны совершенно другие компетенции. Нет ли здесь ловушки?

— У нас обычно руководителем де-юре становится тот, кто уже является руководителем своей команды де-факто.

— И вы просто официально это закрепляете.

— Да. То есть это человек, у которого есть авторитет среди коллег, к которому прислушиваются, которого зовут что-то обсудить. Поэтому все нужные скиллы для того, чтобы работать над этим продуктом в этой команде, у него обычно есть.

О Kotlin Native


— Понятно. Наверное, последний вопрос — про Kotlin Native. Для меня важным показателем того, насколько серьёзно компания относится к продукту, является то, какие люди там работают. Сейчас в Kotlin Native появились Николай Иготти и Роман Елизаров. Приход таких мощных специалистов — это для меня показатель, что вы делаете на это направление серьёзную ставку. Ты можешь про это рассказать — почему именно Kotlin Native? Сейчас эта история (может быть, не для рынка, но вот для меня конкретно) выглядит громче и занимает в моей башке даже более серьёзную позицию, чем просто Kotlin.

— Потому что ты, что называется, слишком много знал про другую платформу и как она устроена. Смотри, глобальная история про Kotlin должна заключаться в том, что на Kotlin пишут на всём и подо всё. Язык, как мне кажется, получился хорошим и развиваемым в этом направлении. От этого возникают прекрасные сингулярные фичи, и доказательства этого мы видим в джаваскриптовом мире, где возник Node.js. Что такое Node.js? Может быть, меня сейчас закидают (хотя через экран это сложно сделать), но он ведь сделан ровно для того, чтобы можно было писать один и тот же код и на клиенте, и на сервере.

— Ну, не только. Есть вторая история «я уже знаю JavaScript, но вот мне срочно надо писать серверный код».

— Мне кажется, что это ловушка, потому что язык здесь очень маленькая часть. Сервер пишется совсем не так, как клиент, просто потому что там другая история, другая логика процесса.

— Я всё понимаю, но если у меня в руке молоток, я умею писать на JavaScript, то всё остальное мне начинает казаться гвоздём.

— Каждый из этих факторов приводит немножко разных людей в Node.js. Те люди, о которых ты говоришь — это очень публичная история. Но ведь очень серьёзные приложения пишутся на Node! Просто потому что у тебя исчезает некоторый барьер между клиентом и сервером, исчезает необходимость общаться в примитивном JSON’е. Можно писать фреймворки высокого уровня, которые синхронизируют данные в реалтайме, и прочая, и прочая.

Но на JavaScript. Если бы вместо джаваскрипта здесь был существенно более качественный язык программирования и существенно более качественная среда исполнения, то, наверное, это было бы круто.

— Правильно ли я понимаю, что, условно говоря, сейчас основной конкурент Kotlin-а — это JavaScript?

— Интересная точка зрения. Не знаю.

— JS сейчас самый быстрорастущий язык в индустрии, это видно по многим параметрам.

— Kotlin-у такие темпы роста, конечно, пока не снятся. В абсолютном выражении — в относительном, может, и снятся, я не считал. Ну да, наверное, его можно так рассматривать. И отсюда естественным образом вырастает Kotlin Native, потому что, кроме браузеров, будут ещё другие устройства. Это телефоны, это IoT. В IoT всё совсем плохо с точки зрения инфраструктуры, тулинга…

— Там со всех точек зрения плохо!

— Поэтому, если начать с языка программирования с хорошим тулингом, который при этом на сервере может логику обслуживать, то win-win, profit.

— Oracle, например, заговорил про Internet of Things, мне кажется, ещё лет пять назад, я ещё там только начинал работать, и тогда вообще никто не понимал, что это такое. Было только слово «IoT» и были гиганты со своими, отличающимися друг от друга, понятиями и концепциями. Казалось, что пройдёт два-три года, и они о чём-то договорятся. Сейчас стало чуть больше понимания, что такое IoT — много маленьких устройств, Big Data в бэкенде, но полного понимания до сих пор нет. Все с этим носятся, но никто этого не видит, не чувствует и, на самом деле, не использует. А потенциально все орут, что это наше будущее. Что ты думаешь по этому поводу?

— Понятия не имею.

— То есть вы на этот рынок не смотрите?

— Нам не надо на него смотреть. Мы точно знаем, что люди будут писать программы. Есть, конечно, вариант, когда люди будут, не знаю, наговаривать программы или брать их прямо из мозга, но пока, на ближайшую перспективу, люди пишут программы на языках программирования. И, кажется, нет обоснования того, что эти языки программирования обязательно должны быть какими-то динозавроподобными. То есть мне сложно обосновать, почему нужно писать именно на C, а не на языке, который ближе к Котлину.

— То есть что бы это ни было — или cloud, или IoT, или что угодно — JetBrains будет делать для этого инструменты?

— Да. И как в мультике про Смешариков, будем тапочки выдавать. В смысле IDE продавать.

Комментарии (0)

    This article passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
    Recommended article: The Guardian's Summary of Julian Assange's Interview Went Viral and Was Completely False.

    Комментариев нет:

    Отправить комментарий