Kotlin как будущее разработки приложений на Android
С момента появления версии 1.0 прошло всего несколько лет, а язык приняли на вооружение многие крупные компании и разработчики. Всё благодаря тому, что создателям языка удалось добиться целей, поставленных в начале пути — разработать инструмент, который был бы удобнее и безопаснее Java, но менее сложен, чем Scala.
В программу факультета Android-разработки GeekUniversity мы недавно добавили курс по изучению Kotlin. Сегодня предлагаем обсудить его возможности и то, почему этот язык можно считать одним из столпов будущего разработки приложений на Android. Кстати, 14 марта мы проводили вебинар «Перспективы и потенциал Kotlin в Android-разработке», так что если тема вам интересна, ознакомьтесь с ним. Ну, а пока — давайте разбираться с возможностями и перспективами Kotlin.
Итак, сам язык представляет собой удобный как для начинающих программистов, так и для разработчиков с опытом инструмент. Он очень лаконичный, компактный и понятный (по большей части — даже интуитивно). С течением времени язык совершенствуется.
Последняя версия — 1.3, с поддержкой корутин, что дало возможность читать и писать неблокирующий асинхронный код без всяких проблем. Стала доступна и масштабируемость, а еще появилась бета версия Kotlin/Native, которая дает возможность компилировать код Kotlin сразу в машинный. Это позволяет, к примеру, писать бизнес-логику кроссплатформенно.
Kotlin актуален сегодня как никогда, во-первых, благодаря всему, что говорилось выше. Во-вторых, благодаря тому, что Google еще в 2017 году взял Kotlin «в семью», признав его официальным языком для разработки Android-приложений. После признания Kotlin корпорацией Google многие приложения, изначально написанные на Java, были переписаны на Kotlin, не говоря уже о тоннах приложений, изначально писавшихся на нем.
Почему многие разработчики считают, что за Kotlin будущее Android-разработки?
Лаконичность
Это один из факторов, который стимулирует разработчиков как можно быстрее переходить на Kotlin. Та же Java, несмотря на ее универсальность выглядит весьма многословной по сравнению с этим языком. Ну, а чем меньше нужно писать, тем меньше и вероятность допустить ошибку. Это также означает повышение скорости работы. Конечно, зависимость далеко не всегда прямая, есть и другие факторы, но часто одна и та же задача на Kotlin решается быстрее, чем на Java.
Open-source
Да, c 2012 года язык является открытым. А это означает обширное сообщество разработчиков, которые помогают совершенствовать язык. Сообщество связано с сотрудниками Kotlin, обратная связь весьма надежная. Во многом это обусловлено помощью со стороны команды Kotlin Slack. Представители Kotlin прислушиваются к мнению сторонних разработчиков и часто реализуют внесенные предложения, если те позволяют улучшить язык.
Kotlin давно «созрел»
В том смысле, что большинство проблем, характерных для нового языка программирования были исправлены. Сейчас это надежный инструмент, от которого можно не ожидать подвоха в виде странного поведения компилятора или самого приложения, написанного по всем правилам. Кроме того, у Kotlin отличная поддержка IDE. Без шуток, реально отличная. IDE-плагин работает без всяких проблем, добавляя некоторые полезные фишки, характерные для Java.
В последнем случае рекомендуем использовать IntelliJ, он идет в комплекте поставки Kotlin. На Хабре, кстати, уже хвалили IntelliJ, во многом потому, что разработчики подошли к его созданию весьма грамотно. IntelliJ, к примеру, «понимает», если в файл Kotlin вставляется Java-код и предлагает транслировать его на Kotlin.
В целом, Kotlin — очень надежный язык программирования с массой функций и возможностей. При этом он постоянно совершенствуется.
Обновляемость и развитие
Совершенству действительно нет предела. JetBrains ведет очень хорошую работу по улучшению и расширению возможностей Kotlin. В последней на момент написания статьи версии (1.3.21) сделано много улучшений в плагине для Gradle, в том числе тех, что касаются мультиплатформенных проектов.
Кстати, Kotlin предоставляет возможности, аналогичные поздним версиям Java, для ранних версий Android API. Из пожеланий — было бы отлично, если бы веб-фреймворк ktor вышел из альфы и оброс большим сообществом, чтобы Kotlin стал еще ближе к fullstack-инструменту.
Null-безопасность
Это более технический пункт, чем все предыдущие, но не упомянуть о нем нельзя. Дело в том, что та же Java не может гарантировать, что переменная типа String содержит строку, а не null. Да, разработчики давно адаптировались и это по большей части не проблема, но безопасность, которая обеспечивается статической типизацией, это снижает. В результате Java-разработчикам приходится быть наготове и думать о Null Pointer Exceptions.
В Kotlin такой проблемы нет, здесь типы разделяются на non-null (значение этих типов не может быть null) и nullable (может быть null).
Писать на Kotlin легко
При прочих равных условиях писать на Kotlin проще, чем на Java или Scala. Библиотеки, требуемые для Android-приложений в Kotlin невелики и не усложняют жизнь разработчику.
Кроме того, Kotlin и Android Studio — чудесное сочетание, которое ускоряет процесс разработки. Построение проекта выполняется всего за несколько минут, хотя иногда система и может выдавать предупреждения о необходимости доустановки отсутствующего компонента.
В любой момент можно выполнять поиск по коду, БД, командам, элементам пользовательского интерфейса и прочим местам. Во многих случаях это весьма полезно. К примеру, тогда, когда забыта какая-та команда IDE. Отладка тоже выполняется без всяких проблем.
Kotlin прост в изучении
Это логичный язык, изучать который — одно удовольствие. При этом написанный код легко читаем не только автором приложения, но и сторонними программистами, которые могут быть даже не знакомы с Kotlin.
Все это стало возможным благодаря тому, что компания JetBrains, разработчик Kotlin, изначально задумывала язык как альтернативу Java, на которую легко перейти. Kotlin дает возможность программистам решать проблемы по-разному, что делает интересным не только обучение, но и работу.
Для разработчика важным может оказаться еще и то, что с Kotlin постепенно начинают работать крупнейшие компании мира. В числе прочих это Prezi, Basecamp, Amazon Web Services, Pinterest, Coursera, Netflix, Uber и многие другие компании. То есть программист, который знает Kotlin, может рассчитывать на отличное рабочее место и интересные задачи, в которые он будет погружен с первого дня. А поскольку с течением времени число компаний, которые используют Kotlin расширяется, то и востребованность специалистов по Kotlin увеличивается.
В целом, Kotlin — язык, дружественный к разработчику, он позволяет выполнять ну очень широкий спектр задач. Принимая во внимание скорость роста сообщества, и тот факт, что сам Google постепенно переводит примеры в своей документации на Kotlin, в перспективности языка с точки зрения разработки под Android сомневаться не приходится вовсе. Перспективы у него есть и в других отраслях разработки.
Статья готовилась совместно с преподавателем курса Kotlin Станиславом Хижняком, за что ему огромное спасибо!