Kotlin — современный статически типизированный объектно-ориентированный язык программирования, компилируемый для платформ Java и JavaScript. Являясь полностью совместимым с Java, Kotlin предоставляет дополнительные возможности, которые призваны упростить повседневную работу программиста и повысить его продуктивность. Как подчеркивают в JetBrains, язык сочетает в себе лаконичность, выразительность, производительность и простоту в изучении.

Kotlin разрабатывается с 2010 года. Исходный код распространяется под свободной лицензией Apache 2. В 2017 году язык получил официальную поддержку на платформе Android. Как подчеркивается в блоге компании JetBrains, сегодня Kotlin дружит с Google Cloud Platform, Spring Framework и Gradle. Сообщество open source создает различные библиотеки, среди которых RxKotlin, mockito-kotlin, TornadoFX, Kodein и ΛRROW. На Kotlin переходят или планируют перейти такие проекты, как Square's Okio и LibreOffice.

Растет база знаний и на StackOverflow, а также в публичном Slack. Для того, чтобы сделать изучение Kotlin удобным, компания представляет обучающие ресурсы на официальном сайте языка программирования на английском языке, а также в блоге, доступном на шести языках, включая русский.

Как проще всего изучить Kotlin

Kotlin полностью совместим с Java (код на Java и Kotlin можно безболезненно смешивать в одном проекте). При этом, как отмечает Андрей Бреслав, руководитель проекта Kotlin в JetBrains, изначально язык задумывался как более простой и значительно удобный для разработчиков. Благодаря такой совместимости Java-программистам освоить Kotlin не составит труда, добавляет Роман Елизаров. По наблюдениям JetBrains, более половины тех, кто сейчас переходит на Kotlin — Android-разработчики, которые программировали на Java.

Роман Елизаров
Роман Елизаров

«Kotlin изначально создавался именно так, чтобы Java-программисту было легко его изучить. То есть отличия от Java были сделаны только там, где это необходимо, в остальных случаях все реализовано похожим образом. И практика показывает, что так оно и есть: для опытных Java-программистов изучение Kotlin не представляет большого труда — они изучают Kotlin от двух дней до двух недель», — говорит Роман Елизаров.

В случае с разработчиками, которые работают с другими языками, освоение Kotlin не отличается от изучения любого другого нового для него языка.

В целом, по разных подсчетам, в мире существует более двух тысяч разных языков программирования. Для старых языков постоянно выходят обновления, а также появляются новые языки.

Различные компании ежегодно составляют рейтинги наиболее популярных языков программирования (например, здесь можно посмотреть январский рейтинг от TIOBE). Несмотря на то, что Java пока удерживает лидерство, в целом расстановка сил в первой двадцатке регулярно меняется. Меняются и технологии, применяемые для создания различных программных продуктов. Именно поэтому сегодня, чтобы оставаться востребованным, программисту необходимо постоянно отслеживать появление новых инструментов и технологий и быстро учиться. По словам Романа Елизарова, профессиональный программист сегодня активно владеет как минимум тремя языками программирования, при этом в пассивном запасе у него остается еще около десятка языков.

Как начать изучать Kotlin

Тем, кто только начинает освоение Kotlin, лучше прежде всего изучить официальные ресурсы, которые выпускает команда разработчиков языка. С полной библиотекой материалов можно ознакомиться на официальном сайте Kotlin. Для новичков представлен широкий выбор ресурсов — от онлайн-курсов и книг до ссылок на актуальные блоги с разбором конкретных задач. Такое многообразие дает возможность изучать язык удобным и наиболее эффективным для каждого разработчика способом.

Книги

«Kotlin in Action» (книга также доступна на русском языке)

Авторы: Дмитрий Жемеров и Светлана Исакова

Как отмечает Дмитрий Жемеров, книга предназначена для программистов с опытом разработки на Java и рассказывает о всех возможностях языка Kotlin для разработки под JVM и Android. В ней представлен обзор особенностей языка, а также раскрываются его наиболее интересные отличительные стороны, такие как поддержка создания высокоуровневых абстракций и предметно-ориентированных языков (Domain-Specific Languages). Также уделено внимание взаимодействию Kotlin с Java и внедрению его в существующие проекты.

«Atomic Kotlin»

Авторы: Брюс Эккель и Светлана Исакова (книга находится в раннем доступе, ознакомиться с содержанием можно здесь.)

«Kotlin for Android Developers»

Автор: Антонио Лейва (Antonio Leiva)

Книга рекомендована Google и JetBrains. Материал для обучения построен на проведении параллелей между Kotlin и Java. Как подчеркивает автор, разработчики смогут на конкретных примерах увидеть, в чем различие между языками и какие конкретно возможности Kotlin помогут ускорить работу.

Онлайн-курсы

1) Курс «Introduction to Kotlin Programming»

Язык: Английский

Курс представляет собой простое введение в язык программирования. Как отмечает автор курса, эксперт-преподаватель Хади Харири (Hadi Hariri), ключевой особенностью Kotlin является его сходство с Java, C # и JavaScript, поэтому если вы знакомы с любым из этих языков, то сможете пройти этот курс без трудностей и начать понимать Kotlin в первый же день.

2) Курс «Введение в язык Kotlin» на Coursera

Язык: Русский

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

3) Курс «Kotlin for Java Developers» Светланы Исаковой и Андрея Бреслава на Coursera

Язык: Английский

Курс включает модули как по базовому обзору языка, так и обсуждение ключевых кейсов, касающихся взаимодействия с Java. Авторы курса рассматривают базовый синтаксис, функциональное программирование с Kotlin, объектно-ориентированное программирование с Kotlin, возможности стандартной библиотеки Kotlin и совместимость с Java.

На практике

Для тех, кто уже программирует на Java и кому нужно быстро на практике понять, что представляет из себя Kotlin, подойдет изучение раздела Reference на официальном сайте Kotlin. Здесь можно быстро пролистать интересующие разделы и составить впечатление о языке.

Также можно попробовать изучить язык на практических примерах с помощью Kotlin Koans. Это серия упражнений, призванных познакомить разработчика с синтаксисом Kotlin. Здесь доступны как простые, так и более сложные задания.

С Kotlin Koans можно работать тремя способами: онлайн; решать задачи прямо в IntelliJ IDEA или Android Studio, установив плагин EduTools и выбрав курс Kotlin Koans; а также клонировав проект на GitHub (в этом случае можно открыть этот проект в IntelliJ IDEA или работать с ним из командной строки, используя любимый редактор).

Добавим, что в новой мини-веб-IDE play.kotl.in есть коаны, примеры и возможность создавать встраиваемые фрагменты кода, плагин EduTools помогает изучать Kotlin прямо в IDE.

Вебинары

Для программистов всех уровней отличным отправным пунктом послужат вебинары по Kotlin 1.3. Записи всех семинаров с KotlinConf 2018 доступны на JetBrains TV.

Общение с комьюнити

Помимо официальных ресурсов, в Сети можно встретить множество других источников, где размещены материалы по Kotlin. Многие из них представлены на русском языке. Как подчеркивает Роман Елизаров, Kotlin — открытый язык, поэтому любой разработчик может предложить на GitHub свои дополнения и исправления. Здесь же, на GitHub, можно ознакомиться с гайдом для начинающих изучать Kotlin.

Кроме того, более опытные разработчики всегда помогут новичкам и подскажут решение в случае специфической задачи, именно поэтому взаимодействие с комьюнити также очень важно.

«Сторонние ресурсы стоит использовать больше как источник вдохновения, — говорит Роман Елизаров. — Конечно, новичку лучше начать освоение с официальных источников: официального сайта, изучения документации, книг и так далее. Здесь описывается в целом, как все работает, но, возможно, нет ответов на какие-то специфические вопросы. Для таких случаев есть комьюнити, блоги, где пользователи работают с какими-то специфичными проблемами. Всегда найдутся опытные программисты на Kotlin, которые помогут и, например, укажут на соответствующее место в документации. В блогах также помогут новичкам, дадут советы по тому, какой конкретный способ лучше применить в конкретной ситуации. В своем блоге, например, я обычно пишу какую-то новую информацию, поясняю, даю дополнительный материал».

Полезные ссылки на официальные источники, сообщества в социальных сетях, книги, библиотеки и многое другое также можно найти здесь. Туториалы и практические советы по Kotlin можно почитать по этой ссылке.

Kotlin в Университете ИТМО

Кроме того, сотрудники JetBrains читают отдельные курсы по Kotlin уже в нескольких вузах Петербурга, отмечает Роман Елизаров. Язык программирования преподается в рамках отдельных образовательных программ и для студентов факультета информационных технологий и программирования Университета ИТМО. Так как Kotlin с 2017 года является официальным языком для Android, сейчас язык преподается именно в контексте мобильной разработки.