[Перевод] Kotlin vs Java
И снова здравствуйте. В преддверии старта нового курса «Backend-разработка на Kotlin», мы подготовили для вас перевод статьи, в которой рассказывается о том, чем же Kotlin отличается от Java.
«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-разработки. С тех пор интерес к языку, его применение и сообщество выросли в разы.
По сравнению с 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.
Выводы 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, их собственной конференции в конце этого года в Сан-Франциско.
Узнать подробнее о курсе.