Андрей Бреслав, JetBrains: «Прямой монетизации языков программирования, скорее всего, уже не будет»

Впервые опубликовано на портале Forbes.ru 08.06.2017.

Один из создателей Kotlin, недавно ставшего официальным языком разработки
для Android, — о том, зачем коммерческим компаниям инвестировать в открытые решения, как JetBrains общается с Google и избавит ли искусственный интеллект программистов от рутинной работы.

В конце мая Google на конференции для разработчиков объявила, что одним из официальных языков разработки приложений на  Android станет Kotlin – язык, созданный петербургской компанией JetBrains.  О компании, появившейся в 2000 году петербургскими программистами, Forbes уже писал. Компания была основана разработчиками Сергеем Дмитриевым, Евгением Беляевым и Валентином Кипятковым и  стала прибыльной с первого года работы.  Вначале они запустили Renamer — небольшую программу, которая позволяла делать простой рефакторинг в программах на Java. Затем предложили пользователям CodeSearch — плагин к JBuilder, быстро находивший все использования заданного метода или класса в программе.

Сегодня главный продукт JetBrains — интегрированная среда разработки (IDE, Integrated Development Environment, то есть «умный редактор») IntelliJ IDEA  для программирования на Java. Компания выпускает продукты для разработки на языках C#, Java, C++, Ruby, PHP, JavaScript, Python, Objective-C и других.  Спустя  17 лет JetBrains выросла в международный бизнес (формально головной офис уже находится в Праге) с годовым оборотом в $176 млн, с аудиторией активных пользователей в 4 млн и с 600 сотрудниками в штате.

По данным составителей рейтинга самых популярных языков программирования  TIOBE,  Kotlin занимает  43-е место по уровню востребованности. Большинство языков программирования, хотя их создание требует крупных вложений финансов и ресурсов, — открыты и общедоступны.  Разработчики языков не гонятся за быстрой прибылью, а рассчитывают собирать вокруг языков программирования сообщества за счет open source-решений. Какие перспективы открывает поддержка Android для приложений, созданных на основе Kotlin? Что вообще может измениться  в монетизации языков программирования, если, например, в Kotlin компания вложила $15 млн, а он остается бесплатным и общедоступным? Об этом Forbes поговорил с Андреем Бреславом, возглавляющим разработку Kotlin в JetBrains.

С чем было  изначально связано решение создавать новый язык программирования, еще в 2010 году?

На 2010 год ситуация на рынке языков программирования была такой, что нам самим было не на чем писать, кроме Java, а Java развивалась (и продолжает развиваться) крайне медленно и консервативно. За двадцать лет «эры Java» понимание того, как должен быть устроен современный язык программирования продвинулось довольно далеко, и интегрировать все эти идеи в существующий язык технически крайне сложно. Поэтому возникла потребность в новом языке. Попытки предпринимались и ранее (наиболее успешные —  Groovy и Scala), но по разным причинам сферы их применения оказались ограниченными.

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

Andrey Breslav

А с точки зрения бизнес-перспектив, почему «взяли курс»?

Потому что мы считаем, что этот проект приносит нам выгоду на нескольких уровнях:  эффективность нашей собственной разработки,  распространение бренда JetBrains, повышение привлекательности наших продуктов на рынке. Мы начинали с того, что Kotlin стали пользоваться те, кто уже любит другие наши продукты. Со временем эта ситуация перевернется: люди будут выбирать наши продукты, потому что мы сделали Kotlin.

В  чем должны были оказаться особенности нового языка? На что вы решили сделать ставку? Что должно было стать конкурентным преимуществом, раз попытки создать «альтернативу Java» уже были?

Есть несколько ключевых аспектов языка, от которых зависит стоимость его «эксплуатации», то есть расходы компаний, которые будут писать на этом языке.
Во-первых, если язык очень сложный, то программистам, которые на нем пишут, придется платить большую зарплату. Во-вторых, если программы сложно понимать, если сложно искать в них ошибки и вносить изменения,  то разработка затягивается и становится дороже. В-третьих, если программы получаются медленными из-за свойств языка, приходится вкладывать деньги в их ускорение (от найма дорогих специалистов по оптимизации до покупки более быстрого «железа»).

Поэтому Kotlin — достаточно простой для изучения язык, и средний программист, работающий за среднюю зарплату, может легко его освоить. Синтаксис языка, система типов и инструментальная поддержка делают его удобным в использовании, так что производительность разработчиков весьма высока (выше, чем в Java).  Например,
data-классы, свойства, вывод типов и многие другие возможности языка позволяют писать (а значит и читать) меньше кода для типичных задач, встроенный контроль нулевых ссылок и механизм smart casts помогают раньше и быстрее обнаруживать ошибки, а гибкие абстракции (функции расширения, функциональные типы и т.д.) позволяют повторно использовать больше кода.  К тому же, программы получаются такими же быстрыми, как на Java (иногда даже немного быстрее).

Среди существовавших ранее языков для платформы Java такое сочетание не встречалось: другие языки оказываются слишком дорогими для широкого класса проектов. Java слишком «многословная», поэтому код сложнее читать, писать и модифицировать, к тому же Kotlin позволяет исключить некоторые виды ошибок, которые часто встречаются в программах на Java. Scala слишком сложная, хорошо ей пользоваться могут только дорогие специалисты. Groovy слишком медленный для многих задач и подвержен ошибкам. У каждого языка есть своя ниша, в которой он очень хорош, просто вопрос в размере этой ниши. Для Kotlin она весьма велика, для других альтернативных языков — несколько уже.

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

Продолжение интервью читайте в полной версии на портале Forbes.ru.