Перейти к основному содержимому

О разделе

Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.

Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.

Корутины и JVM-потоки

Теория — процессы и потоки.

В Kotlin — корутины (легковесная конкуренция) поверх JVM; см. статьи раздела про suspend, диспетчеры и structured concurrency.

Перед ООП в Kotlin: парадигмы и ООП в разделе "Код".

Kotlin — кроссплатформенный статически типизированный объектно-ориентированный язык от JetBrains. По умолчанию он работает поверх JVM (как Java), компилируется в JavaScript и в исполняемый код ряда платформ через LLVM (Kotlin/Native, WebAssembly в перспективе). Исходники — .kt, скрипты сборки и утилит — .kts; лицензия — Apache 2.0; официальный сайт — kotlinlang.org.

Авторы ставили цель сделать язык лаконичнее и типобезопаснее Java и проще Scala — с более быстрой компиляцией и сильной поддержкой в IDE. Полная совместимость с Java позволяет постепенно переводить проекты и подключать Kotlin в существующее Android-приложение без полного переписывания.

Это не замена раздела Java: для enterprise-бэкенда на Spring чаще учат Java, для нового Android — Kotlin. Многие команды держат оба языка в одном репозитории.

Общие темы (ООП, Git, сети) — в Код и разработка. Здесь — особенности Kotlin и типовые стеки.


Кто стоит за языком

JetBrains (ранее IntelliJ Software) — чешская компания, основанная в 2000 году в Праге; среди основателей — Сергей Дмитриев и Валентин Кипятков. Первый продукт — IntelliJ Renamer для рефакторинга Java; главный флагман — IntelliJ IDEA. С 2010 года под руководством Андрея Бреслава ведётся разработка Kotlin; с 2016 года JetBrains обещает долгосрочную обратную совместимость стабильных релизов.

Название Kotlin — от российского острова Котлин в Финском заливе (Кронштадт), по той же традиции, что Java — от индонезийского острова Ява. Публичная презентация языка — июль 2011; исходный код открыт в феврале 2012 (Apache 2.0).

СобытиеГод
Старт разработки в JetBrains2010
JVM Language Summit, первая демонстрация2011
Kotlin 1.0, гарантия совместимости API2016
Официальная поддержка Android (Google I/O)2017
Kotlin — приоритетный язык для Android2019
Kotlin 2.0, компилятор K2 по умолчанию2024

Подробная хронология — в Истории языка Kotlin.


Платформы и влияния

Целевые платформы: JVM, Dalvik/Android, JavaScript, iOS, watchOS, tvOS, macOS, Linux, Windows, WebAssembly (экспериментально).

На дизайн повлияли Java, Scala, C#, Groovy, Python, Ruby, JavaScript и идеи из семейства ML (через Scala) — постфиксные типы (имя — Тип), ключевые слова fun и val, опциональные точки с запятой, вывод типов, интерполяция строк в духе Perl/shell.


Сравнение с Java

Приходите с Java, выбираете между языками на JVM или планируете миграцию — Сравнение Java и Kotlin. В статье — null-safety, корутины и виртуальные потоки, таблицы возможностей, плюсы и минусы, Android и enterprise, критерии выбора (2026). Вызовы в одном проекте — совместимость Kotlin и Java.


Три маршрута — выберите один

Не проходите все ветки сразу. После первой программы идите по одной колонке:

ЦельСледующие шагиКуда углубляться
AndroidCompose — первый экранмобильные на KotlinKotlinMobileApp / Kotlinochiкорутины, Flow, мобильный раздел
Backend (Ktor)Ktor — первая программаKtor ClientFlow, тесты
Backend (Spring)Spring Boot на KotlinSecurity (Java), JPA
Desktop / KMPCompose MultiplatformDSL, экосистема
Если уже знаете Java

Сначала Groovy и Java не нужен — сразу основы Kotlin и совместимость с Java (вызов Java-классов, @JvmStatic, nullable). IDE — IntelliJ IDEA; первая программа в IDEA описана в Первая программа на Kotlin.


Базовый маршрут (язык, ~2–3 недели)

  1. Что знать перед Kotlin — JVM, IDE, Gradle.
  2. IntelliJ IDEAПервая программа — Maven, fun main(). 2a. fun main() — точка входа — JVM и import.
  3. Основытипыоператорыциклы.
  4. ООПсинтаксисконструкции.
  5. Теория: ошибки и исключенияиерархия в Kotlin, практика JVM — Java / 21коллекции и Sequence.
  6. КорутиныFlow — до Ktor и тяжёлого Android.
  7. Сравнение Java и Kotlin — критерии выбора; при двух языках в репозитории — interop.
  8. Справочник, итоги, чек-лист.

Справочник и углубление


Зачем этот раздел

Собрать цельный путь по Kotlin — от запуска в IDEA до реального стека (Android, Ktor или CMP), без смешивания с Java/Python на этапе "Hello World".


С чего начать

ШагМатериалЗачем
1IntelliJ IDEAПервая программаJDK, IDE, Maven
2aComposeМобильные приложения на KotlinKotlin — KotlinMobileApp / Kotlin — KotlinochiAndroid UI + учебные проекты
2bKtorREST API
2cSpring BootREST на Spring
2dCompose MultiplatformDesktop UI

Частые ошибки при старте

ОшибкаЧто делать
Сразу Android + Ktor + KMPВыберите одну ветку из таблицы выше
runBlocking в UI-потоке AndroidlifecycleScope / viewModelScope — см. Корутины в Kotlin
Gradle не синхронизированFile → Reload Gradle Project
Путать Kotlin с JavaРазный синтаксис; байт-код совместим — см. Экосистема Kotlin-приложений

Что попробовать

  1. Пройти Первая программа на Kotlin и изменить цикл в main — пересобрать и запустить.
  2. В IDEA: Show Kotlin Bytecode для main — увидеть связь с JVM.
  3. Одна ветка из таблицы "Три маршрута" — до рабочего мини-приложения.
  4. В конце — чек-лист.


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

Бэкенд и серверная разработкаSmalltalk — о разделе, Go — о разделе, PHP — о разделе, Ruby — о разделе, C++ — о разделе, Groovy — о разделе.

Мобильная разработкаСправочник по Android, Swift — о разделе, Справочник по iOS, Мобильные игры, Особенности тестирования мобильных приложений, Беспроводные технологии - Bluetooth, Zigbee, NFC.