- Java vs Kotlin для Android-разработки: ответы «за» и «против»
- Авторизуйтесь
- Java vs Kotlin для Android-разработки: ответы «за» и «против»
- Возраст языка
- Kotlin
- Количество кода
- Kotlin
- Что выбрать на старте Android-разработки
- Kotlin
- Среда разработки
- Kotlin
- Для каких целей выбирается язык
- Kotlin
- Перспективы
- Kotlin
- Дополнительные ответы экспертов
- Android-разработчик IT-компании MediaSoft
- Senior Android Developer в DataArt
- Software Engineer EPAM
- Заключение
- Java vs Kotlin для Android: мнения разработчиков
- «Основной поток останется на Java, а Kotlin будут использовать для быстрой разработки»
- «Если вы новичок и хотите работать с Android — учите Kotlin. В остальных случаях я бы выбрал Java»
- «Kotlin-разработчики могут использовать Java-фреймворки и библиотеки и писать более понятный и простой код»
- «Kotlin не лучше Java в целом, но лучше в мире Android»
- «Сейчас никто не ищет разработчика со знание только Java или только Kotlin. Нужно быть универсальным специалистом»
Java vs Kotlin для Android-разработки: ответы «за» и «против»
Авторизуйтесь
Java vs Kotlin для Android-разработки: ответы «за» и «против»
Когда в мае 2019 года компания Google объявила Kotlin предпочтительным языком для Android-разработки, споры по выбору языка разгорелись с новой силой. С одной стороны, всё просто: писать нужно на том языке, на котором удобно лично вам. Но нельзя отрицать и ряд факторов, которые способны склонить чашу весов в пользу Java или Kotlin.
Мы составили свой список плюсов и минусов каждого языка, опираясь на факты и мнения опытных разработчиков. Выводы можно посмотреть в конце статьи.
Возраст языка
Большое комьюнити, много библиотек, решений и готовых модулей. Грубо говоря, если разработчик сталкивается с какой-то проблемой, он может быстро получить ответ на свой вопрос.
Kotlin
А вот в случае с Kotlin всё наоборот. Молодость языка и связанных библиотек, таких как Kotlinx.Serialization или Exposed, заставляет потратить немало времени на поиск решений. К тому же, документация языка часто сводится к объяснениям в духе «это сделано как на Java, только тут нужно немного поменять».
Количество кода
Да, синтаксис Java предполагает, что код будет более громоздким, чем в Kotlin, а потому написание займёт больше времени.
Хоть эти языки внешне очень похожи, но вместе с тем и сильно отличаются друг от друга. Вот пример того, как без библиотек происходит присвоение текста полю:
Java
Kotlin
Kotlin
Kotlin позволяет написать то же самое, что и Java, используя меньшее количество строк (Extensions, Null Safety, Data Classes). Отдельно стоит отметить работу с UI: благодаря Android Extensions больше не нужно заниматься бойлерплейтом с findViewById.
Что выбрать на старте Android-разработки
Сегодня для разработки под Android лучше всего подойдёт именно Kotlin. Но если вы начинающий программист, то на старте лучше выбрать Java: этот язык более старый, и можно легко найти информацию о том, как решить ту или иную проблему. Не стоит также забывать, что Kotlin — это обёртка над Java, и в процессе компиляции он конвертируется в байт-код Java.
Сейчас трудно представить Android без Kotlin, но документация Kotlin подразумевает, что вы знаете Java, поэтому, если вы только начали свой путь в Android-разработчики, лучше начать изучение именно с Java, а после переходить на Kotlin.
Kotlin
Вы можете начать изучение Kotlin без знания Java. Но Kotlin всё ещё использует JVM и не является полноценной альтернативой, хотя и занимает определённую нишу в Android-разработке. Если же вы всё-таки намерены выбрать Kotlin, лучше начать изучение с оглядкой на Java или вообще учить оба языка одновременно.
Среда разработки
Разработка приложений для Android давно и тесно связана с Android Studio. Данная среда изначально была заточена под работу с Java, а потому код можно писать буквально по одной букве — IDE самостоятельно подтянет всё необходимое.
Kotlin
Так как Android Studio базируется на Intellij Idea, а Intellij Idea и Kotlin созданы и развиваются компанией JetBrains, то в итоге разработчики получают актуальную среду разработки, тесно связанную с языком программирования, что очень упрощает разработку приложения.
Для каких целей выбирается язык
Большинство существующих Android-приложений написаны на Java, и надеяться, что их перепишут на Kotlin, не стоит. А поскольку UI операционной системы Android разработан на Java, у этого языка есть SDK и много готовых библиотек, так что ряд компаний всё так же отдаёт предпочтение Java.
Kotlin
Если приложение имеет долгий срок жизни (например мобильный банк), и вопрос о кроссплатформенной разработке даже не стоит, то мы считаем оптимальным вариантом Kotlin. Он полностью совместим с Java, то есть в рамках одного проекта можно использовать оба языка. Если сравнить с Java старых версий (7 и старше), Kotlin имеет кучу новых фишек, которые делают написание кода проще. При этом Kotlin не зависит от версии Android так, как Java 8.
Перспективы
Современные компании всё чаще разрабатывают мобильные приложения на Kotlin. Но также можно встретить специфическую библиотеку, которая работает только с Java, и если вы не знаете этот язык — вам придётся нелегко.
Кроме того, Kotlin — молодой язык, и неизвестно, что будет дальше, в то время как Java характеризуется кроссплатформенностью: на ней не только мобильная разработка держится, но и бэкенд с десктопом.
Kotlin
Сейчас Kotlin развивается достаточно предсказуемо и ориентирован именно на Android-разработку. Его всё чаще выбирают молодые компании, которые берут старт в создании мобильных приложений, и сейчас наблюдается нехватка Kotlin-разработчиков, а потому язык весьма востребован. Вряд ли в обозримом будущем он заменит Java, но вполне может сосуществовать, постепенно набирая популярность.
Дополнительные ответы экспертов
Android-разработчик IT-компании MediaSoft
Языков мобильной разработки существует множество, но Java и Kotlin — наиболее распространённые. Для разработки Android-приложений многие советуют начинать с изучения Java. Это беспроигрышный вариант, потому что если вы освоите Java, последующий переход на Kotlin не составит труда. Я считаю, что нужно знать оба языка — невозможно знать Kotlin, не зная Java.
Revolut , Удалённо , По итогам собеседования
Kotlin — статически типизированный язык программирования, появившийся относительно недавно и уже ставший довольно популярным среди разработчиков. Он максимально совместим с Java, а это значит, что при желании можно писать проект, используя преимущества двух языков.
Сейчас при разработке приложений наша команда использует Kotlin, но пока полностью отказаться от Java мы не можем из-за необходимости поддерживать старые проекты. Использовать Kotlin намного проще и удобнее: код выглядит более лаконичным и понятным, у языка есть фичи, которых нет у Java — null-безопасность, классы данных, функции-расширения и другие. Важно отметить, что Kotlin заточен под функциональное программирование и предоставляет возможность использования функций высшего порядка, лямбда-выражений и перегрузки операторов, что позволяет уменьшить время разработки.
Очевидно, что некоторые моменты лучше реализованы в Kotlin, в то время как для других лучше использовать Java. Каждый сам выбирает, на чем будет писать код, но, однажды попробовав Kotlin и поняв его особенности, вы вряд ли захотите вернуться к Java.
Senior Android Developer в DataArt
После того, как Kotlin стал официально поддерживаться для разработки приложений под Android, появляется все больше приложений и библиотек, использующих этот язык. Не буду в очередной раз упоминать про преимущества Kotlin — их у него много, и про это написано немало материалов, включая официальную документацию.
Kotlin или Java? Обычно сообщество выбирает подходящий вариант, основываясь не только на плюсах и минусах, но и на духе предлагаемого решения. Предположу, что именно поэтому Kotlin сумел так быстро завоевать симпатии многих разработчиков по всему миру и его выбирают чаще, чем Java. Много новых проектов начинается именно на Kotlin. В редких случаях начинают на Java, потому что это очень крутой язык до сих пор. Пусть и с некоторыми недостатками, но на нём с таким же успехом можно писать приложения. В Kotlin добавили более удобные возможности, убрали некоторые недостатки Java и сделали более лаконичный синтаксис. Но при этом, по моему личному мнению, нельзя сказать «не пишите больше на Java».
Выбор — скорее, дело вкуса, но для старта проекта сейчас всё чаще выбирают именно Kotlin.
Software Engineer EPAM
Что выбрать 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 vs Kotlin для Android: мнения разработчиков
В опросах Stack Overflow в 2018 году 45,3% респондентов называли Java самым популярным языком программирования, а Kotlin отдали предпочтение всего 4,5% разработчиков. Тем не менее, в мае 2019 в Google объявили приоритетным языком программирования именно Kotlin. Корпорация не призывала отказываться от С++ и Java, но споры между программистами разгорелись еще жарче.
Нетология узнала у разработчиков, какой язык программирования они используют и каким видят будущее Java и Kotlin.
«Основной поток останется на Java, а Kotlin будут использовать для быстрой разработки»
Дмитрий Качалов, ведущий программист Kelly IT Solutions
Какие языки знает. Изначально я изучал языки веб-разработки, но в какой-то момент захотел заняться и мобильной разработкой тоже. Я начал изучать разработку для Android и освоил язык Java в том необходимом минимуме, чтобы можно было писать первые приложения, запускать на телефоне, публиковать в маркете. Это было еще тогда, когда Kotlin только появился и не был известен широкому кругу разработчиков.
Какие использует. Сейчас при разработке корпоративных приложений я пользуюсь именно Java. Для него доступно много библиотек, есть готовые модули. Кроме того, Android Studio его настолько поддерживает, что буквально можно писать по одной букве, и код будет писаться сам за тебя. Это очень удобно.
В моей практике не было такого, чтобы требовалось знание другого языка. Обычно достаточно Java, потому что на нем реализовано много библиотек и можно выполнить в принципе любую задачу. Единственное, стоит учитывать ограничения самой платформы Android. Потому что какой бы ни был язык, все ограничения рано или поздно упираются в ограничение платформы. На мой взгляд, нет большой разницы, на каком языке реализовывать задачу, главное найти хорошее решение, которое будет работать в рамках конкретной платформы.
Почему предпочитает Java. На нем можно делать бесплатные сервисы, свои методы API, писать сайты, сервера, мобильные приложения. Это по сути универсальный язык, на котором можно делать большое количество операций и разрабатывать разные приложения. К нему есть много наработок и библиотек. А еще — большое сообщество, которое всегда готово ответить на вопросы и помочь.
О противостоянии и будущем языков. Kotlin — определенно, интересный шаг вперед, но на мой взгляд, он не несет в себе каких-то новых подходов и парадигм. Просто сокращает время написания кода за счет более коротких конструкций. При этом в основе все равно лежит та же самая Java.
В ближайшее время Java все равно будет самой популярной. Основной поток останется на Java, а Kotlin будут использовать для быстрой разработки в условиях быстрого прототипирования простых приложений или разработки прототипов. Хоть это и очень провокационная точка зрения. Kotlin совместим с Java, поэтому нельзя сказать, что что-то принципиально изменится.
«Если вы новичок и хотите работать с Android — учите Kotlin. В остальных случаях я бы выбрал Java»
Артем Первушов, лицензированный специалист Android ATC, автор программы курса «Android-разработчик» в Нетологии
Почему предпочитает Java. Прежде всего, надо понимать о чем Kotlin. Kotlin — это в большей степени о синтаксическом сахаре. Нужно ли мне так много сахара? Наверное, нет, я уже привык читать код на Java и не делать ошибок (почти). Должен ли новичок в программировании выбирать заведомо более сложную Java? Наверное, тоже нет.
Еще нужно учитывать выгоду вложения вашего времени. Java — это история не только про Android и desktop. На ней существует огромное число других проектов. И если вы захотите перейти из Android куда-то еще, знание языка пригодится.
О будущем языков. Может в будущем Kotlin захватит мир, а может и нет. «Захват мира» Go, Python, Ruby, JS, происходит гораздо реже, чем нам говорят поклонники этих технологий. Поэтому мой совет такой — если вы новичок и твердо решили связать свою судьбу с Android — учите Kotlin, это удобно и модно. В остальных случаях я бы остановился на Java.
«Kotlin-разработчики могут использовать Java-фреймворки и библиотеки и писать более понятный и простой код»
Семен Пилунц, Android-разработчик, эксперт курса Нетологии
Какие языки знает. Знакомство с программированием случилось у меня в институте, начал с Pascal, также изучали Basic, QBasic. Уже в конце учебных лет начал изучать C. На этом я не остановился и начал изучать другие языки — Javascript, VB 6.0, MS SQL, Java. Вскоре осознал, что ближе всех мне Java, поэтому решил сфокусироваться на нем.
Спустя пару лет по воле случая начал использовать Java для создания мобильных приложений под Андроид. Иногда приходилось в самом Андроиде использовать Javascript, HTML, SQL. Знание других языков всегда помогает.
Какие использует. Сейчас я работаю как на Java, так и на Kotlin. Пока что полностью отказаться от Java мы не можем, но постепенно переходим.
На практике, прежде, чем браться за выполнение задачи, нужно оценить ее, подобрать подход и пути выполнения. Здесь же станет понятно, какой язык лучше использовать. В таком случае не будет ситуации, когда вы не сможете справится с задачей. При этом Kotlin-разработчики могут использовать Java-фреймворки и библиотеки и писать более понятный и простой код.
Почему предпочитает Kotlin. Использовать Kotlin проще и удобнее, чем Джаву. В нем программный код получается в среднем на 40% короче. А еще он позволяет не допускать некоторых ошибок, которые могут возникнуть в ходе выполнения программы. Когда код более простой и понятный, ошибки сложнее сделать и легче обнаружить, поэтому их число стремительно снижается. Вы тратите меньше времени на разработку и тестирование.
О будущем языков. Думаю, в ближайшем будущем Котлин сможет практически полностью заменить Джаву. Уже сейчас он охватывает рынок Android на 50%, и это всего за 3 года после появления. Но все же Джаву надо знать, без нее будет трудно переносить код на Котлин. Здесь отмечу, что Котлин полностью совместим с Java, то есть вовсе не обязательно сразу полностью переписывать приложение. Часто удобнее делать это постепенно.
А еще разработка Android-приложений — не единственное направление Kotlin. Он поддерживает JavaScript, программисты могут перенести на него фронтенд, Kotlin отлично подходит для разработки серверных приложений, позволяя писать короткий и выразительный код, сохраняя полную совместимость с существующими стеками технологий на основе Java. Также создатели добавили поддержку Gradle, чтобы разработчики могли писать на нем Gradle-файлы. Активно идет развитие Kotlin Native, с помощью которого можно создавать iOS-приложения.
«Kotlin не лучше Java в целом, но лучше в мире Android»
Ильназ Гильязов, сооснователь AIMS, автор программы курса «Разработчик на Kotlin» в Нетологии
Какие языки знает. Изначально я учил несколько языков по мере необходимости: Ассемблер, C/C++, потом уже Java, JS, PHP, Python. Поскольку работал и работаю в сфере ИБ, не могу останавливаться на одном языке.
Какие использует. Сейчас выбираю инструменты в зависимости от задач и предпочтений заказчика. Для бэкенда — Java/Kotlin, для легковесных вещей без множества интеграций — Go/NodeJS, для фронтенда — JS/TypeScript + фреймворки, для системных вещей — C++/Go. То есть учитываю не личные предпочтения, а исхожу из задачи и возможностей языка и его экосистемы.
Почему предпочитает Kotlin. Преимущества языка Kotlin в свежем взгляде на вещи, в желании предоставить разработчикам простые и удобные инструменты, не требующие большого количества кода. Это и синтаксический сахар, и корутины. Kotlin позволяет писать меньше кода — это радует.
В Android выбор Kotlin вместо Java очевиден. В мире backend позиции Kotlin гораздо слабее, хотя и там он себе пробивает дорогу. В Spring Framework (который для многих — стандарт в backend) включают фишки для Kotlin, недоступные для Java. Это уже говорит о многом. В большом и сложном backend мы пока по-прежнему работаем на Java, хотя и используем в некоторых местах Kotlin. В случае микросервисной архитектуры, где для конкретного микросервиса не требуется большого количества интеграций, Kotlin чувствуют себя прекрасно.
Kotlin не лучше Java в целом, но лучше в мире Android. Хотя с этим тоже можно поспорить — все зависит от параметров, по которым мы оцениваем.
О противостоянии и будущем языков. Противостояние между разработчиками на Kotlin и Java иногда наблюдаю в проектах, где нет общей договоренности и используют оба языка. А еще есть фанатики, которые верят в единственно правильный язык. В остальном все более-менее гладко, хотя в вопросах интеграции остаются шероховатости. Если вы хотите стать профи в Android, придется знать оба языка. Да и вообще, стоит привыкнуть к тому, что придется постоянно осваивать новые языки, библиотеки, фреймворки, идеи и подходы.
Сейчас будущее Java в Android непонятно. Когда мы перевели все свои Android-проекты на Kotlin, Java в Android застряла на уровне седьмой версии с некоторыми фишками из восьмой. И до сих пор неясно, собирается ли Google решать свои споры с Oracle и вводить поддержку новых версий, либо остановится на текущих позициях. Поэтому инвестиции в изучение, использование и поддержку Java на Android выглядят, как минимум, рискованными в среднесрочной перспективе.
Kotlin же развивается более-менее предсказуемо и предоставляет обертки, которые позволяют использовать все современные возможности языка, добавляет ряд удобств и возможностей именно для разработки под Android. Это немаловажный фактор, который влияет на удовлетворенность разработчиков.
В ближайшем будущем я не думаю, что Kotlin заменит Java. Скорее, он сможет сосуществовать с Java, так как изначально на это и ориентировался. Надеяться на то, что большую часть существующих популярных Java-библиотек перепишут на Kotlin не стоит. Но вы можете писать на Kotlin (разобравшись в нюансах интеграции Kotlin Java, например, рефлексии и всех подводных камнях) и использовать библиотеки, написанные на Java.
«Сейчас никто не ищет разработчика со знание только Java или только Kotlin. Нужно быть универсальным специалистом»
Дмитрий Гордин, Android developer в RoadAR
О противостояни. Чтобы не разводить демагогию и не основываться на личных ощущениях, давайте посмотрим на крупных игроков рынка. Во-первых, Google признает Kotlin основным языком разработки под Android. Во-вторых, вот так выглядят вакансии на HH.ru от топовых компаний:
- Tinkoff — «Существенный плюс: опыт разработки приложений на Kotlin»;
- Яндекс — «Приветствуется: опыт разработки на Kotlin»;
- Redmadrobot — «Желательно: опыт разработки на Kotlin»;
- даже «Почта России» — «Ожидаем от вас следующие знания и компетенции: знание технологического стека Android SDK, Kotlin/Java».
О выборе языка. Нужно знать оба языка. Невозможно знать Kotlin и не знать Java. Лига зануд может придраться и заметить, что есть Kotlin Native, который не связан с Java. Но мы говорим об Android разработке, а значит, о среде выполнения Dalvik/ART. Поэтому все работодатели, которые пишут, что ищут разработчика на Kotlin, на самом деле ищут оба языка.
По моему мнению, оптимальный путь — хорошенько освоиться с Java, а затем начать плавно переходить на Kotlin. Kotlin не переворачивает с ног на голову все, что вы знали из Java. Вы с минимальными изменениями сможете перейти на новый язык и писать в «Java-стиле», постепенно котлинизируя ваш код, добавляя в него сахар и специфичные для Kotlin фишки.
Источник