Kotlin vs Java: история конкуренции в мобильной разработке

Язык Kotlin начали разрабатывать в 2010 году, первый релиз сделали через шесть лет, а уже в 2017 году Google добавил поддержку Kotlin для разработки на Android. Зачем понадобилось создавать очередной язык программирования, какие качества сделали его популярным и почему он стал доминировать в мобильной разработке, хотя изначально не имел к ней никакого отношения? Рассказывает Антон Басов, исследователь истории науки и техники, автор Центра непрерывного образования факультета компьютерных наук ВШЭ.

2010 год. Компьютеры уже прочно вошли в повседневную жизнь, а Apple представила четвертое поколение iPhone, но смартфоны все еще являются дорогой и редкой новинкой. Главными брендами умных носимых гаджетов остаются Nokia и BlackBerry. Зачастую эти устройства имеют не только сенсорный экран, но и полноценную выдвижную клавиатуру. Обычно они называются карманными персональными компьютерами (КПК) или коммуникаторами.

Концепция магазина приложений также продолжает оставаться новинкой: Android и iOS обзавелись ими в 2008 году, Nokia и BlackBerry — в 2009-м. До этого пользователи были вынуждены либо обходиться предустановленными приложениями, либо скачивать их со сторонних сайтов, чему некоторые производители активно препятствовали.

Однако и смартфоны, и приложения активно набирают популярность: в 2010 году пользователи совершили 8,2 млрд установок приложений на свои устройства, а создатели ПО получили 5,2 млрд долларов дохода (для сравнения, в 2024 году количество установок приложений составило 136 млрд, а доход от них — 935 млрд долларов). Кстати, самым популярным приложением 2010 года стала игра Angry Birds.

В такой обстановке в санкт-петербургском офисе компании JetBrains начинается разработка нового языка программирования. Поначалу он назывался Jet, но затем получил новое имя — Kotlin.

Откуда появилось название Kotlin? Оно происходит от острова Котлин, расположенного в Финском заливе рядом с Санкт-Петербургом. Именно на Котлине стоит город Кронштадт. Название предложил один из авторов Kotlin, программист Дмитрий Жемеров. Как утверждал руководитель разработки Андрей Бреслав, назвать язык в честь острова решили по аналогии с Java, — ведь этот язык назван в честь Явы (вернее, в честь сорта кофе, которым славится этот остров).


Создать новый язык предложил Дмитрий Жемеров. В тот период JetBrains занималась прежде всего созданием инструментов для разработки, в первую очередь среды разработки IntelliJ IDEA для программирования на Java. Жемеров счел, что компания способна не только работать с существующими решениями, но и с нуля сделать свой язык программирования. Руководителем разработки Kotlin стал Андрей Бреслав, который поначалу скептически отнесся к этой идее.

Поначалу у меня сложилось впечатление, что люди сошли с ума.

Андрей Бреслав — о своей реакции на идею создания Kotlin

Для чего было в принципе создавать новый язык программирования? Бреслав считал, что к 2010 году язык Java с одной стороны стал использоваться практически монопольно, а с другой — сильно замедлился в развитии. Причем у этой медлительности была уважительная причина: Java — это большая экосистема, в которой нужно поддерживать обратную совместимость, то есть следить, чтобы старые решения продолжали работать после обновления языка. При таком подходе добавлять в старый язык новые идеи технически очень сложно. Именно поэтому Бреслав утверждал, что языки программирования не развиваются эволюционно. Здесь было не обойтись без качественного скачка.

Kotlin не был ни первой, ни единственной попыткой поколебать авторитет Java и при этом работать в рамках самой виртуальной машины Java. Среди его конкурентов — такие языки, как JRuby, Groovy, Clojure, Scala, Fantom и Gosu. Однако сотрудников JetBrains не устраивал ни один из существующих вариантов; такого же мнения придерживались многие программисты в компаниях по всему миру.

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

Получается, что у JetBrains была потребность в новом языке программирования, была возможность создать такой язык и, наконец, была известность, которая помогла заинтересовать языком других разработчиков.


Разработка Kotlin началась осенью 2010 года, через год JetBrains публично анонсировала новый язык. Однако первый релиз состоялся только 15 февраля 2016 года. Почему же работа над языком заняла столько времени?

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

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

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

Отталкиваясь от недостатков Java, который считается чересчур многословным, Kotlin решили сделать гораздо более лаконичным языком. За счет этого он стал гораздо производительнее: код на нем получается в среднем на 40% короче, чем на других языках. Kotlin (как и Java) — это объектно-ориентированный язык, то есть он представляет программу как набор взаимодействующих объектов. Благодаря этому его проще читать, а значит, проще находить ошибки и дорабатывать код.


KotlinJava
Возраст15 лет30 лет
Сообщество и материалыНебольшое сообщество. Меньше материалов, чем у Java, но все они сравнительно новые и простые для использованияБольшое разностороннее сообщество. Много материалов для учебы и работы, готовых решений
Сложность кодаЛаконичный и простой в написании код. Специальные инструменты автоматизируют часть задач (создание классов, оператор switch)Громоздкий, сложный код. Имеет несколько фичей, которых нет в Kotlin (тернарный оператор, проверяемые исключения)
БезопасностьВстроенная защита от многих распространенных ошибокЗащиты нет, ошибки непросто обнаружить, особенно начинающему разработчику
ПоддержкаОфициальный язык ОС AndroidПоддерживается в Android

Еще одним преимуществом Kotlin является развитая система безопасности. Это язык со статической типизацией, то есть в нем каждой переменной заранее присваивается тип данных. Случайно поменять его нельзя, иначе программа не будет компилироваться. По сравнению с Java (также статически типизированным языком), Kotlin имеет более жесткую проверку типов, что делает выполнение кода более безопасным.

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


Еще в феврале 2012 года разработчики Kotlin выложили исходный код в открытый доступ. До официального релиза четыре года спустя языком пользовались более тысячи человек ежедневно. Релиз Kotlin 1.0 привлек более 160 тыс. программистов. Однако приближалось событие, которое сделало язык по-настоящему известным.

18 мая 2017 года на ежегодной конференции Google I/O компания объявила, что Kotlin будет включен в Android Studio — инструмент разработки для операционной системы Android. Он стал третьим языком после Java и C++, который поддерживается Google.

В чем заключалась важность этого объявления помимо самого факта признания от такого титана, как Google? До этого программисты могли бояться, что язык перестанет поддерживаться и обновляться, когда JetBrains потеряет к нему интерес. Такое вполне могло произойти, ведь компания изначально рассматривала Kotlin как некоммерческий проект. Теперь же появилась гарантия, что в жизнеспособности языка заинтересованы не только его создатели, но и гигантская межнациональная корпорация. 

Когда со сцены прозвучали слова о поддержке Kotlin, шеститысячный зал зааплодировал так, что стало понятно, что это большое дело не только для нас, разработчиков языка, но и для пользователей.

Андрей Бреслав — о поддержке Kotlin со стороны Google

Внимательный читатель спросит, почему Kotlin вдруг оказался связан с мобильной разработкой на Android. Мы начали свой рассказ именно с мобильных устройств и приложений, но до сих пор никакой связи с этой областью новый язык не имел.

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

То, что именно Android-разработчики попросили Google официально поддержать Kotlin, — яркая иллюстрация рекламного подхода JetBrains. Компания считает, что ее продукты должны распространяться исключительно благодаря собственным достоинствам. Разработчики, которым нравится язык, рассказывают о нем коллегам, которые пробуют его, — и цикл повторяется.

Сразу после объявления Google о поддержке Kotlin его аудитория выросла вдвое. А на Google I/O 2019 году компания заявила, что Kotlin стал приоритетным в разработке под Android. Однако это отнюдь не означает, что язык подходит только для мобильной разработки: он широко используется для создания серверных приложений и фронтенда, применяется в обработке больших данных и физическом моделировании.


За прошедшие годы вокруг Kotlin сформировалось большое сообщество. Регулярно проводятся конференции KotlinConf — первая из них прошла еще в 2017 году. Создана Kotlin Foundation, задача которой — поддерживать, продвигать и развивать язык.

Сегодня Kotlin лежит в основе многих всем известных сервисов в диапазоне от McDonald’s и «Озона» до Slack и Reddit. Google даже публикует истории успеха от создателей приложений, использующих Kotlin, — вот, например, история о переходе Duolingo.

Оценить популярность языка можно и по его положению в международных рейтингах. В рейтинге PYPL PopularitY of Programming Language за февраль 2025 года Kotlin занимает 13 место; в рейтинге RedMonk за июнь 2024 года — 14 место. В ежегодном опросе разработчиков от Stack Overflow за 2024 год Kotlin стоит на 15 месте, им пользуются 9,4 % опрошенных программистов. Медианная зарплата разработчика на Kotlin — больше 65 тыс. долларов.

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

Ушедший из JetBrains в 2020 году Андрей Бреслав считает, что каждый язык программирования — это инструмент, который имеет свою нишу. У Kotlin эта ниша — большая, а значит, есть куда расти.

Обложка: downloaded from Freepik.

Подписывайтесь
на наши каналы в Telegram

«Хайтек»новостионлайн

«Хайтек»Dailyновости 3 раза в день

Первая полоса
Пепел Везувия превратил мозг древнего римлянина в стекло
Наука
Создан асфальт, который сам устраняет трещины с помощью спор растений
Наука
«Слизкие» белки могут защитить мозг от старения, показало исследование
Наука
«Первая частная компания на Луне» отправила новую миссию к спутнику
Космос
Физики обнаружили экзотические кристаллы электронов в сверхтонком материале
Наука
Создана нейросеть, которая подбирает лучший ИИ для разных задач
Новости
Триллион рублей потратят на цифровую трансформацию России: что это значит
Новости
Квантовый компьютер на кошачьих кубитах сделали в Amazon: что это и как работает
Новости
Физики нашли способ создать черную дыру без сингулярности
Космос
Ядро дважды магического изотопа удивило физиков: что они там нашли
Наука
Робот Unitree G1 освоил приемы кунг-фу и показал, на что способен
Новости
Полет со скоростью 20 000 км/ч: создан уникальный двигатель на обычном керосине
Новости
Информацию о самом опасном для Земли астероиде обновили
Космос
«Прогресс МС-28» завершил миссию: его затопили в Тихом океане
Космос
Сколько раз в год надо заниматься сексом, чтобы снизить риск депрессии
Наука
Марс оказался красным по неожиданной причине: прошлую теорию опровергли
Космос
Найдены следы «древнейшего транспорта»: тачки, которую волочили более 20 000 лет назад
Наука
В Северной Америке обнаружили останки гигантской белки-летяги: им 5 милионов лет
Наука
Разработана батарея, которая работает на ядерных отходах
Новости
Мыши оказывают «неотложную помощь» сородичам, потерявшим сознание, показало исследование
Наука