Перевод статьи «Java Vs. Kotlin: Which One Will Be the Best in 2019?».
Какой язык программирования приходит на ум первым, когда упоминается Android-разработка? Скорее всего, вы немедленно подумаете о Java. Ведь именно на этом языке написано огромное количество Android-приложений.
Разработчики всего мира по-прежнему задаются вопросом: есть будущее у Kotlin или же нет. Но после введения Kotlin в Google I/O два года назад этот язык занял собственное место на рынке разработки Android-приложений.
Итак, вот подробное объяснение разницы между этими двумя языками программирования.
Kotlin
Kotlin это новейший статически типизированный язык программирования с открытым исходным кодом. Он может эффективно запускаться на виртуальной машине Java (JVM). Kotlin разработан JetBrains и официально поддерживается Google.
Недавний опрос Jexenter поместил Kotlin на шестое место среди технологических трендов.
В настоящее время Kotlin используется для создания Android-приложений такими лидерами бизнеса как Pivotal, Atlassian, Pinterest, Evernote и Uber.
Последняя статистика App brain показывает, что в сегменте топовых приложений 2018 года Kotlin занимает 25,3% рынка. При этом 40,76% новых инсталляций приложений также приходятся на приложения, написанные на Kotlin.
Чтобы сравнить Kotlin с Java, нам нужно понять преимущества и недостатки этого языка.
Почему Kotlin это ведущий язык программирования для разработки Android-приложений?
Улучшенная производительность
Последовательный и интуитивный синтаксис Kotlin обеспечивает повышение производительности команд разработчиков. Для написания и деплоймента программы требуется меньше времени и меньше строк кода. В результате вы получаете готовое приложение быстрее.
100% совместимости с Java
Другими словами, методы Java можно вызывать из Kotlin. Это является преимуществом не только для разработчиков, но и для компаний, имеющих большую кодовую базу на Java.
Легкость поддержки
Android-разработчикам легко поддерживать код на Kotlin, поскольку этот язык поддерживается во многих IDE, включая Android studio, и в нескольких других SDK. Кроме того, разработчики могут работать с любым привычным набором инструментов.
Надежность
Последняя версия Kotlin имеет обратную совместимость со всеми предыдущими версиями. Это избавляет Android-разработчиков от огромной головной боли – работы с разными версиями.
Легкость изучения
Kotlin изучать легче, чем Java, потому что для этого не требуется никаких знаний в сфере разработки мобильных приложений.
Поддержка Android Studio
Android Studio предоставляет расширенную поддержку Kotlin и инструменты адаптации. Разработчики могут работать одновременно на Kotlin и на Java.
Недостатки Kotlin
Скорость компиляции
Разработчики жалуются на колебания скорости компиляции кода на Kotlin. В некоторых случаях она происходит очень быстро, а в других заметно медленнее.
Меньшая поддержка сообщества
У Kotlin маленькое сообщество разработчиков, в связи с чем количество ресурсов для изучения этого языка ограничено. Вам встретится много вопросов без ответов.
Нехватка разработчиков
Очень ограниченное количество людей занимаются разработкой на Kotlin. Недостаток талантов в разработке Android-приложений касается Kotlin в большей степени, чем Java.
Java
Java считается одним из лучших языков для разработки приложений. Одной из основных особенностей этого языка является объектно-ориентированность. И она помогает далеко не только в поддержке разработки Android-приложений.
Недавний TIOBE index (декабрь 2018) показал, что Java лидирует среди топовых языков программирования.
В чем Java все еще лучше, чем Kotlin?
Портируемость
С помощью виртуальной машины Java программы на этом языке могут запускаться практически в любой системе. В результате Java получает лидерство среди Android-приложений.
Большое сообщество
Благодаря обширным сообществам на GitHub и Stack Overflow разработчики могут получить помощь практически по любой проблеме.
Кроссплатформенность
Применение этого языка не ограничивается лишь разработкой Android-приложений. Java прекрасно подходит и для разработки кроссплатформенных приложений.
Ресурсы
Поскольку Android разработан на Java, этот язык имеет уже готовые библиотеки и SDK для облегчения процесса разработки.
В чем Java отстает?
Скорость
Java требует больше памяти и, по сравнению с другими языками, работает намного медленнее.
На Java тяжелее писать код
Код на Java длинный, а следовательно, он требует больше времени для написания, в нем больше ошибок и багов.
Что есть в Java, чего нет в Kotlin
- Статические члены
- Примитивные типы, не являющиеся классами
- Частные поля
- Wildcard-типы
- Отмеченные исключения
Что есть в Kotlin, чего нет в Java
- Шаблоны строк
- Синглтоны
- Null безопасность
- Функции расширения
- Умные приведения типов (smart casts)
Заключение
Если вы разработчик, вы должны постоянно обновлять свои навыки в соответствии с последними трендами. Нет сомнений в том, что Java сохраняет свое преимущество в Android-разработке, но за тенденциями стоит следить. Я уверен, что указанные здесь преимущества Kotlin убедят вас изучить этот язык хотя бы для разработки Android-приложений.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
Что есть в Kotlin, чего нет в Java
Шаблоны строк
Синглтоны
Null безопасность
Функции расширения
Java требует больше памяти и, по сравнению с другими языками, работает намного медленнее.
Что за клоун это написал? Студент, учи мат.часть, прежде чем статьи писать ))) Это ж надо быть такой бездарной выскочкой )
Наверное он имел что Java требует больше памяти в голове у разработчика чем Kotlin ))
Многие утверждения в статься голословные, рассчитаны на начинающих разработчиков, которые верят всему, что читают.
«Java требует больше памяти и, по сравнению с другими языками, работает намного медленнее.»
Как вы мерили производительность Kotlin и Java и др. языков ?
Прикрепите бенчмарки, покажите код который сравнивали по производительности, покажите результаты сравнения, может вы вообще ничего не мерили или может вы делали некорректное сравнение ?
Язык всегда привязан к бизнесу , покажите ситуацию на рынке , сколько требуется разработчиков на Kotlin ,например, в Москве и сколько на Java.
Отмеченные исключения это огонь. Кажется, статьи пишет копирайтер, который копипастит и переводит отдельные мысли с разных сайтов
Кажется, даже PROMT в 1995 году переводил лучше =)
«Последняя версия Kotlin имеет обратную совместимость со всеми предыдущими версиями. »
Java тоже.
«Kotlin изучать легче, чем Java, потому что для этого не требуется никаких знаний в сфере разработки мобильных приложений.»
И для Java не требуются такие знания.
Android Studio предоставляет расширенную поддержку Kotlin и инструменты адаптации.
И Java тоже.
«Шаблоны строк
Синглтоны
Null безопасность
Функции расширения»
А здесь я подавился чаем от смеха.