Битва титанов: Java vs Kotlin

Java, по мнению Amazon, один из оптимальных по энергопотреблению и времени выполнения языков программирования. Он зарекомендовал себя для серверной разработки, на тех платформах, где может работать виртуальная машина. Не зря же его называют WORA (Write Once and Run Anywhere — «Напиши один раз, запускай где угодно»). Но кроме того, его применяют для разработки игр, облачных вычислений, больших данных, искусственного интеллекта и интернета вещей.

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

В мае 2017 года Google объявил, что язык программирования Kotlin теперь является предпочтительным языком для разработчиков приложений для Android. Это стало признанием отрасли.

Google оценивает, что 70% из 1 000 лучших приложений в Play Store написаны на Kotlin. Также на нём сделаны Maps, Play, Drive. Однако этот язык программирования используют и для бэкенд-разработки, например, он доступен в Spring Framework.

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

Для новичков

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

К примеру, новичку поставили задачу написать и backend server, и android-приложение, обращающееся к нему. Какие технологии для этой задачи необходимо будет изучить, чтобы выполнить задачу на Java и Kotlin?! На Java и Kotlin необходимо знать сам язык, принципы Rest взаимодействия, Android-платформу.

Минимальные специфичные для Java технологии, которые будут отличаться от Kotlin, — Spring Boot, Retrofit. Чтобы то же самое сделать на Kotlin, нужно изучить только фреймворк Ktor в дополнение к общему стеку.

Kotlin

+ официальный язык для Android;

+ кросс-платформенность: можно писать backend-, Android-, iOS- и веб-приложения, создавать IoT-решения;

+ де-факто стандарт разработки и в нём много синтаксического «сахара»;

+ более лаконичен и малословен, что позитивно влияет на читабельность;

+ более консистентен при построении межплатформенного взаимодействия.

Java

+ кросс-платформенность: мобильные и серверные приложения, работа с AI и IoT;

 не прощает ошибок: забыл запятую, и всё посыпалось.

Для опытных разработчиков

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

Например, разработчикам передали макеты приложения в Figma. Им нужно создать подходящий код, чтобы дизайн превратился в полноценный продукт. Для ускорения и упрощения разработки нужно выбирать наиболее безопасный и быстрый в плане компиляции язык.

Kotlin

+ совместимость с Java;

+ большая безопасность;

− считается молодым языком программирования с «детскими» болячками.

Java

+ сильное сообщество;

− анализ 2016 года давал преимущество Java над Kotlin в 12–15% для чистых сборок. В текущем году анализ говорит, что быстродействие сопоставимо;

− требует больше памяти.

Для бизнес-процессов

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

Например, для каждой страны должны быть создана собственная версия приложения с учётом особенностей законодательной базы. При этом запустить продукт нужно одновременно на всех рынках в короткие сроки. Должно быть достаточно команд разработки и тестирования, а также возможность быстро обучить новых ИТ-специалистов для локальных офисов.

Kotlin

+ возможность автоматической конвертации в Java и обратно;

+ классная поддержка языковых в фич в IDE экосистемы JetBrains;

− более 3 600 соискателей в Москве;

− мало литературы и обучающих курсов.

Java

+ более 42 400 соискателей в Москве;

− платная коммерческая лицензия начиная с 11 версии.

https://t.me/javatg

источник

Ответить