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-разработка;
- Выступления, блоги и презентации на YouTube, Medium и SlideShare.
Кроме того, в плагине для 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, их собственной конференции в конце этого года в Сан-Франциско.
Узнать подробнее о курсе.