Что учить java или kotlin
Перейти к содержимому

Что учить java или kotlin

  • автор:

Блог

У Java и Kotlin достаточно много сфер применения, и сегодня мы с вами попробуем разобраться, какой лучше учить, если вы только начинаете разбираться в этой сфере. На стороне Java стоит возраст.
И это, как не странно, достаточно весомый плюс. Во всяком случае, если вам понадобится найти решение какого-то вопроса, или найти подходящую библиотеку, в Java это сделать несколько проще — размер экосистемы, естественно, куда солиднее. Хотя сейчас, конечно, ситуация и меняется в другую сторону.
С другой стороны, у Kotlin синтаксис более минималистичный и современный, похожий на другие молодые языки программирования. Поддержка больших компаний. На стороне Kotlin стоят рекомендации — ведь, например, для разработки на платформе Android Google рекомендует использовать именно Kotlin (но папка для кода приложения по старинке названа именно java).
Судя по всему, если развитие языка не свернет в какую-то неудачную сторону, Kotlin станет основным языком для Android — разработки, а все остальное скорее всего будет лишь не самой удачной альтернативной. Для каких целей стоит выбрать язык? Если вы собираетесь заниматься разработкой на Android и только начинаете изучать среду, вам стоит сразу сделать ставку на Kotlin. Если вы хотите, скажем так, быть немного шире в плане разработки, можете начать с Java, а только затем подтянуть Kotlin — их синтаксис похож. В таком случае путей развития у вас будет куда больше. Что касается перспектив языка, то здесь по прежнему все не очень понятно.

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

Еще статьи

Гайд для трудоустройства в IT. Навыки, профессии и возможности.

Многие люди хотят начать путь в IT, но их останавливает то, что они не понимают, с чего начать. Именно это мы слышим на наших занятиях от студентов и именно поэтому они приходят к нам.

19 января 2024

Gradle — система сборки для Java, Kotlin и C++

Сегодня мы расскажем про систему сборки Gradle, которая широко используется, например, при сборке Java — приложений.

29 апреля 2021

Golang — востребованность и сферы применения

Сегодня мы решили рассказать, что из себя представляет язык программирования Golang — зачем он нужен, и как его можно использовать. Он был придуман в корпорации Google для того, чтобы разрабатывать быстрые и надежные бекенд – приложения (однако создан для того, чтобы писать, а не читать).

Java vs Kotlin: кто же круче?

Java vs Kotlin: кто же круче?

Kotlin создавали как аналог Java. И есть мнение, что этот ученик имеет все шансы превзойти своего учителя. Мы задались вопросом, кто круче и за кем будущее Android разработки?

Предыстория

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

Официальный релиз Kotlin состоялся в 2016-ом. Примечательно, что имя для языка выбирали путём нейминга Java. Проведя параллель с известным островом Ява (Jawa), выбор остановили на одном из островов Финского залива. В его честь и назвали.

Уже в 2017 году Kotlin вошел в стандартную сборку программы Android Studio, с помощью которой пишутся все приложения для Андроид. Тогда же Google предоставила возможность разрабатывать Андроид-программы на этом юном языке.

А еще через пару лет, в 2019-ом, компания Google заявила, что использовать Kotlin в разработке теперь предпочтительнее, чем Java.

Секрет успеха языка Kotlin — в простоте. К тому же любой написанный на нем файл без проблем открывается в Java-программах. Благодаря легкой интеграции в процессе взаимодействия ошибок можно не бояться – они не появятся.

По сравнению с Java, синтаксис Kotlin более легкий, тогда как функционал языков практически не отличается.

Преимущества Kotlin

1. Повышенная производительность

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

2. Полная совместимость с Java

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

3. Простая поддержка

Kotlin встроен в большинство популярных IDE (например, в Android studio и некоторые другие SDK). Поэтому у Android-разработчиков не возникает никаких трудностей при поддержке кода. Тем более, что набор инструментов остается привычным.

4. Надежность

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

5. Простота в изучении

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

6. Официальная поддержка Android Studio

Kotlin поддерживается Android Studio, а за счет инструментов адаптации можно одновременно применять два языка: и Java, и Kotlin.

Недостатки Kotlin

1. Колебания скорости компиляции

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

2. Ограниченная поддержка сообщества

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

3. Недостаточное количество разработчиков

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

И что теперь будет с Java?

Тех, кто начал переживать за старого доброго друга, спешим успокоить – Java никуда не денется. Да, этот язык уже и морально, и физически устарел. Но есть два весомых «но»:

Во-первых, Java все еще применяется в сотнях тысяч разных программ. И он будет продолжать использоваться для их поддержки.

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

Но тогда возникает новый вопрос: если Java в любом случае остается «боссом», зачем тогда изучать Kotlin?

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

Больше интересных новостей

Нужно ли программисту знать английский язык?

Нужно ли программисту знать английский язык?

В чем секрет языка Go?

В чем секрет языка Go?

Топ-10 лучших бэкенд-фреймворков для web-мастеров в 2022 году

Топ-10 лучших бэкенд-фреймворков для web-мастеров в 2022 году

11 фильмов, посвященных виртуальной реальности

11 фильмов, посвященных виртуальной реальности

Java или Kotlin: что выбрать начинающему андроид-разработчику

Если планируете работать в компании, занимающейся Android-разработкой, и перерасти должность джуна, — вам понадобятся два языка.

Александр Бабаскин

Александр Бабаскин

Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно — возможно, вы ещё не прочли его следующую публикацию.

В 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 тысяч рублей.

Java vs Kotlin для Android: мнения разработчиков

В опросах Stack Overflow в 2018 году 45,3% респондентов называли Java самым популярным языком программирования, а Kotlin отдали предпочтение всего 4,5% разработчиков. Тем не менее, в мае 2019 в Google объявили приоритетным языком программирования именно Kotlin. Корпорация не призывала отказываться от С++ и Java, но споры между программистами разгорелись еще жарче.

Нетология узнала у разработчиков, какой язык программирования они используют и как видят будущее Java и Kotlin.

Обучение в онлайн-университете: профессия «Android-разработчик с нуля»

«Основной поток останется на Java, а Kotlin будут использовать для быстрой разработки»

Java vs Kotlin для Android: мнения разработчиков

Дмитрий Качалов

Ведущий программист Kelly IT Solutions

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

Какие использует. Сейчас при разработке корпоративных приложений я пользуюсь именно Java. Для него доступно много библиотек, есть готовые модули. Кроме того, Android Studio его настолько поддерживает, что буквально можно писать по одной букве, и код будет писаться сам за тебя. Это очень удобно.

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

Почему предпочитает Java. На нем можно делать бесплатные сервисы, свои методы API, писать сайты, сервера, мобильные приложения. Это по сути универсальный язык, на котором можно делать большое количество операций и разрабатывать разные приложения. К нему есть много наработок и библиотек. А еще — большое сообщество, которое всегда готово ответить на вопросы и помочь.

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

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

«Если вы новичок и хотите работать с Android — учите Kotlin. В остальных случаях я бы выбрал Java»

Java vs Kotlin для Android: мнения разработчиков

Артем Первушов

Лицензированный специалист Android ATC, автор программы курса «Android-разработчик» в Нетологии

Почему предпочитает Java. Прежде всего, надо понимать о чем Kotlin. Kotlin — это в большей степени о синтаксическом сахаре. Нужно ли мне так много сахара? Наверное, нет, я уже привык читать код на Java и не делать ошибок (почти). Должен ли новичок в программировании выбирать заведомо более сложную Java? Наверное, тоже нет.

Еще нужно учитывать выгоду вложения вашего времени. Java — это история не только про Android и desktop. На ней существует огромное число других проектов. И если вы захотите перейти из Android куда-то еще, знание языка пригодится.

О будущем языков. Может в будущем Kotlin захватит мир, а может и нет. «Захват мира» Go, Python, Ruby, JS, происходит гораздо реже, чем нам говорят поклонники этих технологий. Поэтому мой совет такой — если вы новичок и твердо решили связать свою судьбу с Android — учите Kotlin, это удобно и модно. В остальных случаях я бы остановился на Java.

«Kotlin-разработчики могут использовать Java-фреймворки и библиотеки и писать более понятный и простой код»

Java vs Kotlin для Android: мнения разработчиков

Семен Пилунц

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»

Java vs Kotlin для 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. Нужно быть универсальным специалистом»

Java vs Kotlin для Android: мнения разработчиков

Дмитрий Гордин

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 фишки.

От редакции

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

Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.

Java vs Kotlin для Android: мнения разработчиков

Редакция блога Нетологии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *