Kotlin vs Java : на чем писать под Android

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

Java

Большинство разработчиков предпочитают Java при написании Android приложении, в основном и-за того что много лет Java был рекомендуемым Google языком а также тем что сам Android был написан на Java. Для тех кто не знаком с Java напомним что это строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Он является вторым по популярности языком программирования на GitHub.

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

  • прост в изучении и понимании
  • кроссплатформенность
  • Android базируется на Java — Android SDK содержит много стандартных Java библиотек
  • Java имеет огромную open-source екосистему
  • Ускоренная сборка с помощью Gradle
  • Java приложения несколько компактнее в сравнении с написанными на Kotlin

Недостатки Java

  • ограничения Java создают проблемы с архитектурой Android API
  • являясь очень подробным языком (verbose language), Java требует написания большого количества кода, что делает появление багов более вероятным
  • Java медленне в сравнение с компилируемими языками, а также использует много памяти

Kotlin

Kotlin — статически типизированный язык программирования, работающий поверх JVM и разрабатываемый компанией JetBrains. Основная цель разрабоки — добавить современных функции и фич в Java. Также Kotlin можно компилировать в JavaScript или в Native для запуска на iOS платформе. Все, что требуется, — это установить плагин Kotlin и позволить ему настроить ваш проект.

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

  • бурно развивается как язык под Android разработку, кроме того используется на бэкенде, например в Spring 5
  • легкий переход с Java на Kotlin — просто установите плагин Kotlin, добавьте его в Gradle билд файлы и нажмите кнопку ‘Convert’
  • наличие extension functions которые помогают разрабатывать чистые API
  • наличие null в системе типов, проблема с null значениями очень распространена в Java
  • Kotlin лаконичный язык, что уменьшает количество потенциальных ошибок
  • совместимый с Java — можно разрабатывать модули на Kotlin и быть уверенным что они будут работать вместе с существующим Java кодом, также Kotlin совместим со всеми Java библиотеками и фреймворками

Недостатки Kotlin

  • Довольно крутая кривая обучения при переключении целых команд на Kotlin из-за лаконичного синтаксиса языка
  • меньшая скорость компиляции в сравнении с Java
  • значительно меньшее комьюнити разработчиков, по этому может быть сложно быстро получить ответ на вопрос на Stackoverflow
  • автокомплит Android Studio и компиляция проекта работает несколько медленнее в сравнении с чисто Java проектами

Заключение

Хотя Kotlin предлагает много преимуществ, которые Java не может, все равно существуют некоторые недостатки. Но Kotlin имеет огромный потенциал как средство разработки под Android, так на конференции Google I/O 2017 команда Android объявила об официальной поддержке языка Kotlin для разработки Android-приложений.