Код
#статьи

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.

Java — один из самых используемых языков программирования в мире. Источник

Теперь посмотрим статистику быстроразвивающихся языков программирования по версиям Octoverse GitHub и Stack Overflow — Kotlin на четвёртом месте. Это показывает, что развитие Kotlin не влияет на популярность Java и пока Android поддерживает два языка — новые приложения будут выпускаться на них обоих.

Kotlin — один из самых быстрорастущих языков программирования. Источник

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. Серая часть — приложения, переписанные с Java в Kotlin

Java и Kotlin требуют работодатели

Откроем Хабр Карьера и посмотрим среднюю зарплату начинающего мобильного разработчика. Во второй половине 2020 года джунам платят 60 тысяч рублей.

Средняя зарплата младшего мобильного разработчика. Источник

Перейдём на hh.ru и рандомно выберем вакансию андроид-разработчика с зарплатой от 60 тысяч рублей. От кандидата требуется опыт программирования на Java и Kotlin.

Вакансия андроид-разработчика с зарплатой от 60 тысяч рублей. Источник

Увеличим выборку и посмотрим все вакансии hh.ru, где новичкам готовы заплатить 40–80 тысяч рублей. На момент обзора опубликовано 56 объявлений: восемь работодателей требуют только Java; пять — только Kotlin; 43 — Java и Kotlin.

Статистика по языкам программирования в сентябре 2020 года. Источник

В каком порядке учить

Java → Kotlin

Если учитесь самостоятельно — начинайте с Java: посмотрите синтаксис, объекты, классы, ООП и другие элементы языка. Когда разберётесь — переходите на Kotlin.

Kotlin → Java

Если учитесь с преподавателем — лучше начать с Kotlin: так вы быстро перейдёте к практике и выучите нужные Java-библиотеки вроде RxJava.

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

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Освойте топовые нейросети за три дня. Бесплатно
Знакомимся с ChatGPT-4, DALLE-3, Midjourney, Stable Diffusion, Gen-2 и нейросетями для создания музыки. Практика в реальном времени. Подробности — по клику.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована