Java vs Kotlin для Android-разработки: ответы «за» и «против»

Аватарка пользователя Марина Александровна

Какой язык выбрать для Android-разработки — Java или Kotlin? Мы опросили опытных разработчиков и собрали всю информацию в список «за» и «против».

Kotlin или Java: какой язык предпочтительнее для Android-разработки?
Java
Kotlin
Оба языка важны
***

Когда в мае 2019 года компания Google объявила Kotlin предпочтительным языком для Android-разработки, споры по выбору языка разгорелись с новой силой. С одной стороны, всё просто: писать нужно на том языке, на котором удобно лично вам. Но нельзя отрицать и ряд факторов, которые способны склонить чашу весов в пользу Java или Kotlin.

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

Возраст языка

Java

Большое комьюнити, много библиотек, решений и готовых модулей. Грубо говоря, если разработчик сталкивается с какой-то проблемой, он может быстро получить ответ на свой вопрос.

Kotlin

А вот в случае с Kotlin всё наоборот. Молодость языка и связанных библиотек, таких как Kotlinx.Serialization или Exposed, заставляет потратить немало времени на поиск решений. К тому же, документация языка часто сводится к объяснениям в духе «это сделано как на Java, только тут нужно немного поменять».

Количество кода

Java

Да, синтаксис Java предполагает, что код будет более громоздким, чем в Kotlin, а потому написание займёт больше времени.

Хоть эти языки внешне очень похожи, но вместе с тем и сильно отличаются друг от друга. Вот пример того, как без библиотек происходит присвоение текста полю:Javafinal TextView helloTextView = (TextView) findViewById(R.id.text_view_id);helloTextView.setText(“Some text”);KotlinhelloTextView.text = “Some text”

Kotlin

Kotlin позволяет написать то же самое, что и Java, используя меньшее количество строк (Extensions, Null Safety, Data Classes). Отдельно стоит отметить работу с UI: благодаря Android Extensions больше не нужно заниматься бойлерплейтом с findViewById.

Что выбрать на старте Android-разработки

Java

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

Kotlin

Вы можете начать изучение Kotlin без знания Java. Но Kotlin всё ещё использует JVM и не является полноценной альтернативой, хотя и занимает определённую нишу в Android-разработке. Если же вы всё-таки намерены выбрать Kotlin, лучше начать изучение с оглядкой на Java или вообще учить оба языка одновременно.

Среда разработки

Java

Разработка приложений для Android давно и тесно связана с Android Studio. Данная среда изначально была заточена под работу с Java, а потому код можно писать буквально по одной букве — IDE самостоятельно подтянет всё необходимое.

Kotlin

Так как Android Studio базируется на Intellij Idea, а Intellij Idea и Kotlin созданы и развиваются компанией JetBrains, то в итоге разработчики получают актуальную среду разработки, тесно связанную с языком программирования, что очень упрощает разработку приложения.

Для каких целей выбирается язык

Java

Большинство существующих Android-приложений написаны на Java, и надеяться, что их перепишут на Kotlin, не стоит. А поскольку UI операционной системы Android разработан на Java, у этого языка есть SDK и много готовых библиотек, так что ряд компаний всё так же отдаёт предпочтение Java.

Kotlin

Если приложение имеет долгий срок жизни (например мобильный банк), и вопрос о кроссплатформенной разработке даже не стоит, то мы считаем оптимальным вариантом Kotlin. Он полностью совместим с Java, то есть в рамках одного проекта можно использовать оба языка. Если сравнить с Java старых версий (7 и старше), Kotlin имеет кучу новых фишек, которые делают написание кода проще. При этом Kotlin не зависит от версии Android так, как Java 8.

Перспективы

Java

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

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

Kotlin

Сейчас Kotlin развивается достаточно предсказуемо и ориентирован именно на Android-разработку. Его всё чаще выбирают молодые компании, которые берут старт в создании мобильных приложений, и сейчас наблюдается нехватка Kotlin-разработчиков, а потому язык весьма востребован. Вряд ли в обозримом будущем он заменит Java, но вполне может сосуществовать, постепенно набирая популярность.

Дополнительные ответы экспертов

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

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

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

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

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

Kotlin или Java? Обычно сообщество выбирает подходящий вариант, основываясь не только на плюсах и минусах, но и на духе предлагаемого решения. Предположу, что именно поэтому Kotlin сумел так быстро завоевать симпатии многих разработчиков по всему миру и его выбирают чаще, чем Java. Много новых проектов начинается именно на Kotlin. В редких случаях начинают на Java, потому что это очень крутой язык до сих пор. Пусть и с некоторыми недостатками, но на нём с таким же успехом можно писать приложения. В Kotlin добавили более удобные возможности, убрали некоторые недостатки Java и сделали более лаконичный синтаксис. Но при этом, по моему личному мнению, нельзя сказать «не пишите больше на Java».

Выбор — скорее, дело вкуса, но для старта проекта сейчас всё чаще выбирают именно Kotlin.

Что выбрать Android-разработчику — Java или Kotlin — вопрос молодой, но уже успел стать холиварным. Он беспокоит не только начинающих, но и опытных специалистов. Здесь важно понимать, что нет какого-то единственного верного ответа.

В своей работе я давно сделал выбор в пользу Kotlin, сразу подкупила его простота и

удобство использования: null-safety код, иммутабельность (англ. Immutable – неизменяемый), коллекций и наличие делегатов — всё это мало кого может оставить равнодушным. Помимо синтаксического сахара, Kotlin предоставляет корутины, которые сильно упрощают асинхронную работу.

Вышеперечисленные преимущества позволяют писать меньше кода и делать это проще, а полная совместимость Kotlin с Java позволяет сделать переход постепенным, без переписывания проекта «с нуля».

Стоит также учитывать ситуацию на рынке. На Google I/O 2017 Kotlin официально был

признан основным языком разработки под Android, Java же предлагает 8 версию языка с некоторыми новыми «фишками» (при текущей последней версии 14), и её будущее в Android остаётся неясным. Кроме того, сейчас почти в каждой вакансии указывается знание Kotlin как большое преимущество.

Думаю, что в будущем Kotlin может полностью вытеснить Java с рынка Android разработки.

Заключение

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

Java
Android
Мобильная разработка
Kotlin
47942