К сожалению, сайт не работает без включенного JavaScript. Пожалуйста, включите JavaScript в настройках вашего броузера.

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


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

В конце мая 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 — инструментов, которые во многом определяют удобство и производительность труда современных программистов. Мы решили, что такая позиция в информационном поле — уникальная возможность «продвинуть» свой язык, сделать так, чтобы его заметили.

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

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

 

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

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

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

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

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

 

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

—  Каковы были главные сложности при разработке Kotlin?  

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

—  Можете оценить общий объем инвестиций в создание Kotlin?

 

—  Общий объем инвестиций в Kotlin за семь лет мы оцениваем примерно в $15 млн.

— Как быстро росла аудитория?  

—  До выпуска первой официальной версии 1.0 (это было в феврале 2016 года) пользователями языка были только самые отчаянные энтузиасты (которых, тем не менее, было больше 1000 человек каждый день). С момента релиза 1.0 количество пользователей плавно увеличивалось и за год выросло более чем в пять раз. За 2016 год языком пользовались примерно 160 000 программистов. Сразу после объявления Google был резкий скачок более, чем вдвое: за один день пришло очень много новых пользователей, и теперь мы ожидаем гораздо более быстрого роста, чем раньше. За первый год после релиза мы выросли примерно в 2,2 раза, а за три недели с момента объявления Google — в 2,7 раза

— Какие изменения вы вносили уже после релиза? Были серьезные «повороты» в продуктовой стратегии?

 

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

Исторически было несколько крупных изменений в языке до 1.0, когда мы советовались с нашими пользователями внутри и вне компании, выясняли, что неудобно и сильно перерабатывали язык. Самые заметные изменения были, опять же, в области взаимодействия с Java: что-то оказывалось недостаточно удобно, мы искали решение, которое было бы по-настоящему прозрачным для пользователей.

— Какие инструменты работали для популяризации Kotlin?   Для языка программирования вообще применимы термины  «продвижение», «маркетинг»?

—  Мы в JetBrains в принципе считаем, что продукты должны распространяться по принципу «сарафанного радио». Если разработчикам нравится инструмент, они рассказывают о нем другим: за чаем на работе, в блоге и в твиттере, на конференциях и т.д. В этом смысле наши продукты распространяются «снизу»: инженеры хотят их использовать, поэтому их руководство принимает решение о приобретении лицензий. То же самое случилось и с Android: программисты из разных компаний постоянно задавали представителям Google вопросы о Kotlin, и в конечном счете убедили производителя платформы поддержать наш язык официально.

 

Рекламу в обычном смысле мы для Kotlin практически не используем. В основном, опираемся в продвижении на блог, Twitter, наш собственный форум, Slack, выступления на конференциях, поддержку пользовательских групп и тематических митапов в разных странах. В самом начале мы использовали как стартовую площадку аудиторию пользователей продуктов JetBrains, а дальше сообщество прирастало сначала энтузиастами, которые писали о языке на разных ресурсах, потом и другими интересующимися. Наша задача — предоставить людям информацию и возможность ее обсуждать, а также быть всегда на связи. Программисты из нашей команды много общаются с пользователями на открытых площадках, отвечая на вопросы, обсуждая возможности и собирая мнения.

— Какова, по вашим оценкам, текущая аудитория Kotlin?

— За май 2017 года Kotlin использовали более 100 000 человек — это примерно в 2,7 раза больше, чем в апреле. Есть пользователи из всевозможных стран, включая экзотические, такие как, например, Тринидад и Тобаго. Больше всего пользователей в Китае, США, России, Германии, Индии, Японии, Великобритании, Польше, Бразилии и Канаде.

—  Для создания каких продуктов  чаще всего он используется?

 

— До объявления от Google половина наших пользователей делала серверные приложения на JVM, а вторая половина — мобильные приложения под Android. Сейчас пропорции могут измениться, но мы ожидаем, что серверное комьюнити тоже будет расти.

— А каковы типичные сценарии использования  Kotlin именно для мобильной разработки?

—  В принципе Kotlin целесообразно использовать для написания приложений от начала до конца, но, если уже есть приложение, написанное на Java, типичным сценарием будет постепенный переход. Можно плавно добавлять новый код на Kotlin и/или конвертировать Java-код, но не весь сразу, а постепенно. Совместимость с Java максимально упрощает такой сценарий

—  Когда вы впервые стали общаться с Google?

 

Мы сотрудничаем с Google уже несколько лет, с тех пор как официальной средой разработки стала Android Studio, построенная на основе нашей платформы IntelliJ. Мы постоянно поддерживаем деловые контакты, наши инженеры иногда ездят в США общаться с коллегами из Google. Во время нашего визита на Google I/O 2017 нам оказали очень радушный прием, было очень приятно.  В Google в основном отказывались комментировать вопросы про Kotlin до официального объявления. Официальная поддержка была их решением, мотивированным потребностями и запросами пользователей.

— В чем ценность Kotlin для бизнеса JetBrains в целом, раз сейчас это полностью общедоступный инструмент?

—  Кроме улучшения нашей собственной производительности от перехода на Kotlin, мы получаем широкое распространение бренда JetBrains, что способствует повышению интереса к нашим продуктам. Со временем еще больше людей будут покупать, например, IntelliJ IDEA, потому что это «главная» среда разработки для Kotlin. Большое значение имеют также коммерческие продукты, которые мы в дальнейшем сможем разрабатывать на основе Kotlin. Так, например, мы рассматриваем создание на базе бесплатного компилятора Kotlin/Native коммерческих инструментов разработки для iOS, встроенных систем и других платформ.

— На ваш взгляд, как будут в дальнейшем развиваться языки программирования? Будет ли все большая специализация?

 

—  Все наиболее популярные сегодня языки достаточно универсальны. Даже JavaScript уже несколько лет успешно работает на серверах и мобильных телефонах. Я думаю, что будущее за многоплатформенной разработкой, именно поэтому мы развиваем Kotlin не только на JVM и Android, но и для браузеров и устройств без виртуальных машин (iOS, IoT и т.д.).

— Как будет меняться рыночная среда языков программирования? Как может измениться роль open source? Какими будут способы монетизации или прямой монетизации не будет?   

— На текущий момент практически не остается широко используемых коммерческих компиляторов (программы, которые переводят код, написанный программистами, в машинный код, который «понимает» процессор — Forbes). Если еще в 1990-е годы язык программирования как таковой был продаваемым продуктом, то сегодня это как правило бесплатное ПО с открытым кодом. Прямой монетизации языков программирования, скорее всего, уже не будет. Остаются, конечно, какие-то нишевые коммерческие проекты, но это тоже не просто языки, а интегрированные решения вроде Wolfram Mathematica (система для математических вычислений, работает с языком программирования Wolfram Language — Forbes). Будучи важными элементами инфраструктуры, практически наравне с Linux, OpenSSL или MySQL, компиляторы и интерпретаторы языков программирования (интерпретатор фактически решает те же задачи, что и компилятор, но на лету – Forbes), скорее всего, будут разрабатываться в Open Source при поддержке одной или нескольких коммерческих компаний. Сегодня так разрабатываются, например, компиляторы C++, Swift, C#, Java и Kotlin. Торговые марки при этом могут принадлежать производителю, но код открыт и компилятор распространяется бесплатно.

— А как будут меняться соотношения сил между энтузиастами и сообществом и крупными компаниями?

 

— Я не думаю, что это соотношение когда-нибудь заметно поменяется. Язык программирования — это довольно сложная система. Чтобы ее согласовано поддерживать и развивать, нужен довольно централизованный процесс дизайна, где решения принимает узкий круг экспертов. У большинства современных языков, включая Kotlin, есть один «главный архитектор», который в конечном счете принимает все ключевые решения. Естественно, исследовательскую часть, прототипирование, апробацию и еще много чего может делать множество других людей, но решения в конечном счете зачастую принимает кто-то один. Это необходимо для «синхронизации» идей и получения согласованного дизайна. Что касается реализации, то современный компилятор — это технологически весьма сложный продукт, поэтому нельзя ожидать существенного вклада от большого количества добровольцев. В большинстве случаев тут нужны инженеры, имеющие высокую квалификацию в весьма узкой области, и им нужно платить довольно большую зарплату.

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

— Если говорить о разработке языков широким кругом пользователей, довольно давно существует концепция предметно-ориентированных языков (Domain-Specific Languages, DSLs). Идея состоит в том, чтобы предоставить пользователю инструментарий для того, чтобы легко создавать «маленькие» языки для узкого круга задач. Несмотря на то, что было испробовано множество подходов, включая весьма интересную систему MPS (система создания новых языков программирования, разработанная в JetBrains – Forbes), на сегодня самый популярный способ создания DSL — это использование достаточно гибкого языка общего назначения, синтаксис которого можно приспособить под узкоспециализированные нужды предметной области. Kotlin весьма неплохо справляется с такой задачей, так что можно сказать, что наши пользователи могут сами делать маленькие языки, когда это нужно.

— Многие сервисы уходят с ПК в мобильную среду, как это повлияет на развитие языков программирования?

 

—  С точки зрения языков мобильная разработка все меньше отличается от разработки для больших компьютеров. Есть ограничения по энергопотреблению, но на языках это мало сказывается. Больше всего на языки может влиять появление специализированных процессоров. Сегодня, например, популярны GPU (графический процессор – Forbes) со своими системами программирования, такими как CUDA и OpenCL, это не отдельные языки, но со временем нельзя исключать специализированных добавлений такого рода в языки общего назначения.

— А как на развитие языков программирования влияют новые типы взаимодействий (m2m) или появление новых типов интерфейсов (VR/AR)?

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

Мы в соцсетях:

Мобильное приложение Forbes Russia на Android

На сайте работает синтез речи

иконка маруси

Рассылка:

Наименование издания: forbes.ru

Cетевое издание «forbes.ru» зарегистрировано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций, регистрационный номер и дата принятия решения о регистрации: серия Эл № ФС77-82431 от 23 декабря 2021 г.

Адрес редакции, издателя: 123022, г. Москва, ул. Звенигородская 2-я, д. 13, стр. 15, эт. 4, пом. X, ком. 1

Адрес редакции: 123022, г. Москва, ул. Звенигородская 2-я, д. 13, стр. 15, эт. 4, пом. X, ком. 1

Главный редактор: Мазурин Николай Дмитриевич

Адрес электронной почты редакции: press-release@forbes.ru

Номер телефона редакции: +7 (495) 565-32-06

На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети «Интернет», находящихся на территории Российской Федерации)

Перепечатка материалов и использование их в любой форме, в том числе и в электронных СМИ, возможны только с письменного разрешения редакции. Товарный знак Forbes является исключительной собственностью Forbes Media Asia Pte. Limited. Все права защищены.
AO «АС Рус Медиа» · 2024
16+