[Перевод] Kotlin vs Java

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

b3wmzmnntdlogp6wsw7clt8llfc.png


«Kotlin — новый язык программирования, который заставит вас отказаться от Java». На европейской конференции Zebra APPFORUM 2017 в Праге наш Android-разработчик Питер Оттен вдохновлял других начать писать на Kotlin. Расстроены, что пропустили? Не переживайте! Питер расскажет вам, почему он стал большим поклонником этого языка.

Подъем


Kotlin — это язык программирования, разработанный компанией Jetbrains, которая знаменита IntelliJ, WebStorm, PhpStorm и плагином ReSharper для Visual Studio. Они занялись поисками нового языка программирования, который был бы лучше, чем Java, но все еще функционально совместим с ним. Вдохновляясь языками Java, C#, Scala и Groovy, ребята из Jetbrains собрали команду для разработки нового языка программирования. Kotlin проектировался людьми, которые испытали всю боль Java.

Так что же такое Kotlin?


Kotlin был впервые представлен в 2011 году, а в феврале 2016 года появилась его версия 1.0 stable release, затем 1.1 в марте. Язык программирования с открытым исходным кодом компилируется в JVM (Java Virtual Machine), Android и JavaScript. Таким образом, Kotlin может использоваться одновременно на JVM и Android-устройствах (интероперабельность). Также он может запускаться на фронтенде с помощью JavaScript. Google официально объявила на своей конференции I/O в мае, что Kotlin стал официально поддерживаемым языком для Android-разработки. С тех пор интерес к языку, его применение и сообщество выросли в разы.

l7qbnmk_zj1uq-el9dvzkfv0q4e.png

По сравнению с Java


Для сравнения Java и Kotlin на презентации был приведен в пример класс POJO и то, как его можно использовать (рисунок выше). Здесь можно увидеть всю силу и лаконичность Kotlin, когда простой класс Person (с именем, геттером/сеттером и стандартными методами POJO) заменяется ключевым словом «data». Также, глядя на использование класса Person можно заметить следующие различия:

  • Методы в Kotlin называются fun (это сразу же делает программирование веселее);
  • Если метод ничего не возвращает, то тип возвращаемого значения указывать не надо (в Java нужно писать «void»);
  • В Kotlin есть интерференция типов, поэтому указывать, что «name» имеет тип «String» не нужно. Простой используйте «val».
  • Также эта особенность делает переменную неизменяемой. Если вы захотите изменить переменную «name», нужно использовать «var». Так Kotlin заставляет вас при написании кода заранее думать о переменных/полях и т.д.
  • Для создания нового экземпляра класса ключевое слово «new» не нужно;
  • Kotlin и Java совместимы. Kotlin без проблем может использовать класс Person, написанный на Java.
  • Геттеры и сеттеры из кода на Java автоматически станут свойствами, то есть «getName ()» в Kotlin будет недоступно, но можно использовать свойство «name» из Person.


sacwy4rh8s9pdjxyiujcp89oo58.jpeg

Выводы Mediaan об использовании Kotlin


После посещения других докладов о Kotlin на Droidcon в 2015 и 2016 в Лондоне и GDG DevFest 2016 в Амстердаме наша команда мобильных разработчиков решила, что пришло время взглянуть на новый язык. Мы начали использовать его в октябре 2016 года и просто влюбились в него. Первый новый проект под Android уже был на 100% написан на Kotlin. С тех пор мы не возвращались к Android-разработке на Java.

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

  • Код более лаконичен, то есть вы сможете писать и поддерживать меньшее количество кода;
  • Код более безопасный, поскольку язык заставляет вас думать о (не)изменяемости, nullability и т.д. во время написания кода;
  • Вышесказанное также ускоряет развитие. Вам становится проще делать сложны вещи.
  • Отличная поддержка IDE (мы пользуемся Android Studio);
  • Большое и растущее сообщество. Существующие библиотеки поддерживаются или мигрируют в Kotlin, интернет переполнен постами в блогах, видео, презентациями и, конечно же, вопросами/ответами на 
    StackOverflow.
  • Kotlin уже готов к продакшену. Мы используем его на продакшене также, как и многие компании, такие как Square, Pinterest, Trello и Google.


Теперь Google объявила, что Kotlin официальный язык для разработки под Android, и у вас практически нет причин, чтобы не взглянуть на этот язык и не начать его использовать.

Итак, начнете ли вы с Kotlin или перейдете на него?


Есть множество ссылок, которые помогут вам в его освоении:
Кроме того, в плагине для Android Studio есть возможность быстро конвертировать ваш текущий открытый файл на Java в Kotlin. Работает достаточно хорошо. Возможно, вам потребуется подправить кое-какие мелочи в коде, но вы мгновенно получите Kotlin-версию вашего кода на Java для сравнения и изучения. Есть еще одна удивительная возможность: когда вы работаете в файле на Kotlin и вставляете в него фрагмент кода на Java, он автоматически преобразуется в код на Kotlin при вставке.

Чтобы использовать Kotlin в уже существующем проекте или чтобы полностью перенести существующий проект на него, мы рекомендуем следующий подход:

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


О будущем


Помимо поддержки JVM, Android и JavaScript, Kotlin работает над поддержкой большего числа платформ. Поддержка машинного кода — это следующий большой шаг. Например, запустить код на RaspBerry Pi уже можно (в бета версии). Jetbrains упорно работает над добавлением поддержки для iOS, MacOS и Windows. Это значит, что Kotlin может однажды стать основной нового кроссплатформенного решения для приложений. Больше информации о дальнейшем развитии вы сможете узнать на KotlinConf, их собственной конференции в конце этого года в Сан-Франциско.
Узнать подробнее о курсе.

© Habrahabr.ru