Java или Kotlin: что выбрать начинающему андроид-разработчику
Если планируете работать в компании, занимающейся Android-разработкой, и перерасти должность джуна, — вам понадобятся два языка.
vlada_maestro / shutterstock
В 2019 году Google делает Kotlin основным языком под Android, оставляет Java и запутывает начинающих разработчиков: одни делают ставку на универсальность Java, других подкупает синтаксис Kotlin.
Разбираемся, почему это так и в каком порядке учить.
На Java и Kotlin пишут новые приложения
Посмотрим на рейтинги языков программирования во второй половине 2020 года:
- TIOBE: Java — 2-е место, Kotlin — 33-е место. Считается по поисковым запросам в Google, YouTube, Bing и других посещаемых площадках.
- RedMonk: Java — 3-е место, Kotlin — 19-е место. Считается по частоте упоминания языков программирования на сайтах Stack Overflow и GitHub.
- PYPL: Java — 2-е место, Kotlin — 12-е место. Считается по поисковым запросам технической документации языков программирования в Google.
- IEEE Spectrum: Java — 2-е место, Kotlin — 18-е место. Считается по частоте упоминания в Google, Twitter, на GitHub, Reddit и других площадках.
- Stack Overflow: Java — 5-е место, Kotlin — 13-е место. Считается по результатам опроса разработчиков сообщества Stack Overflow Survey.
Везде один результат: Java в пятёрке, а Kotlin не попадает в десятку — то есть большинство мобильных разработчиков продолжают писать приложения на Java.
Теперь посмотрим статистику быстроразвивающихся языков программирования по версиям Octoverse GitHub и Stack Overflow — Kotlin на четвёртом месте. Это показывает, что развитие Kotlin не влияет на популярность Java и пока Android поддерживает два языка — новые приложения будут выпускаться на них обоих.
Java и Kotlin нужны для поддержки написанных приложений
Перейдём на developer.android.com — это официальный сайт платформы Android, где появились отзывы разработчиков о преимуществах языка Kotlin:
- код сокращается и занимает меньше места,
- компактность ускоряет работу и упрощает поддержку,
- регулярная поддержка снижает количество сбоев,
- уменьшение сбоев повышает безопасность,
- безопасное приложение проще развивать и наполнять новыми фичами.
Отзывы подкреплены статистикой:
- Kotlin используют в 70% из 1000 популярных приложений Google Play.
- Более 60% профессиональных андроид-разработчиков пишут на Kotlin.
- Языком Kotlin пользуются Slack, Robinhood, Evernote, Zomato, Adobe Reader, WordPress, Pinterest, Deliveroo, Twitter, Reddit и другие приложения.
Когда читаешь это, создаётся ощущение, что вся андроид-разработка завязана на Kotlin. Но для понимания ситуации нужно учитывать три момента:
- Kotlin подключён к Android в 2017 году. До этого в Google Play добавлено 2,9 млн приложений, большинство из которых написано на Java.
- Java — это язык корпорации Oracle. С 2010 года длится судебный процесс между Oracle и Google по иску о неправомерном использовании Java в Android — дело на стадии апелляции и выиграть может любая сторона. Если Google проиграет, то выплатит Oracle более 9 млрд долларов — сумма постоянно растёт и рассчитывается исходя из недополученной прибыли от Java-приложений на Android. По этой причине на сайте Android нет данных по распространённости Java и её масштабу по сравнению с Kotlin.
- В опубликованной на developer.android.com статистике нет ссылок на исследования и не объясняется, кого Google включил в число 60% профессиональных андроид-разработчиков и сколько кода переведено с Java на Kotlin в 70% из 1000 популярных приложений Google Play.
Конфликт Google и Oracle привёл к такой ситуации: Android переходит на Kotlin, а Java растёт и сохраняет запас кода, который Kotlin-сообществу не переписать. Не получится взять объёмное Java-приложение и автоматически компилировать его в Kotlin: языки отличаются и часть приложения нужно редактировать вручную.
Например, в языках по-разному реализованы нулевая безопасность, перегрузка операторов, конструкторы и другие моменты, зафиксированные в документации и дополненные правилами вызова Java в Kotlin. Поэтому разработчику нужны два языка, с которыми он сможет переводить Java в Kotlin или оставлять Java.
Java и Kotlin требуют работодатели
Откроем Хабр Карьера и посмотрим среднюю зарплату начинающего мобильного разработчика. Во второй половине 2020 года джунам платят 60 тысяч рублей.
Перейдём на hh.ru и рандомно выберем вакансию андроид-разработчика с зарплатой от 60 тысяч рублей. От кандидата требуется опыт программирования на Java и Kotlin.
Увеличим выборку и посмотрим все вакансии hh.ru, где новичкам готовы заплатить 40–80 тысяч рублей. На момент обзора опубликовано 56 объявлений: восемь работодателей требуют только Java; пять — только Kotlin; 43 — Java и Kotlin.
В каком порядке учить
Java → Kotlin
Если учитесь самостоятельно — начинайте с Java: посмотрите синтаксис, объекты, классы, ООП и другие элементы языка. Когда разберётесь — переходите на Kotlin.
Kotlin → Java
Если учитесь с преподавателем — лучше начать с Kotlin: так вы быстро перейдёте к практике и выучите нужные Java-библиотеки вроде RxJava.
В обратном порядке получается сложнее: Kotlin создан на основе Java и не содержит многих библиотек, встраиваемых в разработку андроид-приложений. Поэтому, если хотите попробовать и не знаете, с чего начать, — посмотрите программу обучения Java-разработчика.