О разделе
Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.
Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.
Теория — процессы и потоки.
В 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).
| Событие | Год |
|---|---|
| Старт разработки в JetBrains | 2010 |
| JVM Language Summit, первая демонстрация | 2011 |
| Kotlin 1.0, гарантия совместимости API | 2016 |
| Официальная поддержка Android (Google I/O) | 2017 |
| Kotlin — приоритетный язык для Android | 2019 |
| 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.
Три маршрута — выберите один
Не проходите все ветки сразу. После первой программы идите по одной колонке:
| Цель | Следующие шаги | Куда углубляться |
|---|---|---|
| Android | Compose — первый экран → мобильные на Kotlin → KotlinMobileApp / Kotlinochi | корутины, Flow, мобильный раздел |
| Backend (Ktor) | Ktor — первая программа → Ktor Client | Flow, тесты |
| Backend (Spring) | Spring Boot на Kotlin | Security (Java), JPA |
| Desktop / KMP | Compose Multiplatform | DSL, экосистема |
Сначала Groovy и Java не нужен — сразу основы Kotlin и совместимость с Java (вызов Java-классов, @JvmStatic, nullable). IDE — IntelliJ IDEA; первая программа в IDEA описана в Первая программа на Kotlin.
Базовый маршрут (язык, ~2–3 недели)
- Что знать перед Kotlin — JVM, IDE, Gradle.
- IntelliJ IDEA → Первая программа — Maven,
fun main(). 2a. fun main() — точка входа — JVM и import. - Основы → типы → операторы → циклы.
- ООП → синтаксис → конструкции.
- Теория: ошибки и исключения → иерархия в Kotlin, практика JVM — Java / 21 → коллекции и Sequence.
- Корутины → Flow — до Ktor и тяжёлого Android.
- Сравнение Java и Kotlin — критерии выбора; при двух языках в репозитории — interop.
- Справочник, итоги, чек-лист.
Справочник и углубление
- Экосистема Kotlin-приложений — Android, Ktor, KMM, SQLDelight, Koin (обзор).
- Сравнение Java и Kotlin — критерии выбора на JVM.
- Рекомендации по разработке — стиль, тестируемость, DI.
- Тестирование — JUnit 5, MockK, Kotest.
- Консольный ввод-вывод —
readln(), кодировки. - Работа с БД — JDBC и обзор ORM на JVM; практика СУБД — PostgreSQL, MySQL, SQLite, SQL Server.
Зачем этот раздел
Собрать цельный путь по Kotlin — от запуска в IDEA до реального стека (Android, Ktor или CMP), без смешивания с Java/Python на этапе "Hello World".
С чего начать
| Шаг | Материал | Зачем |
|---|---|---|
| 1 | IntelliJ IDEA → Первая программа | JDK, IDE, Maven |
| 2a | Compose → Мобильные приложения на Kotlin → Kotlin — KotlinMobileApp / Kotlin — Kotlinochi | Android UI + учебные проекты |
| 2b | Ktor | REST API |
| 2c | Spring Boot | REST на Spring |
| 2d | Compose Multiplatform | Desktop UI |
Частые ошибки при старте
| Ошибка | Что делать |
|---|---|
| Сразу Android + Ktor + KMP | Выберите одну ветку из таблицы выше |
runBlocking в UI-потоке Android | lifecycleScope / viewModelScope — см. Корутины в Kotlin |
| Gradle не синхронизирован | File → Reload Gradle Project |
| Путать Kotlin с Java | Разный синтаксис; байт-код совместим — см. Экосистема Kotlin-приложений |
Что попробовать
- Пройти Первая программа на Kotlin и изменить цикл в
main— пересобрать и запустить. - В IDEA: Show Kotlin Bytecode для
main— увидеть связь с JVM. - Одна ветка из таблицы "Три маршрута" — до рабочего мини-приложения.
- В конце — чек-лист.
История языка Kotlin
История Kotlin - создание языка JetBrains для плавной совместимости с Java и современной разработки.
Экосистема Kotlin-приложений
Экосистема Kotlin-приложений — инструменты, фреймворки и мультиплатформенные сценарии разработки.
Что требуется знать перед началом изучения языка программирования Kotlin
Kotlin — это современный язык программирования общего назначения, который работает на платформе Java Virtual Machine (JVM), а также компилируется в JavaScript или нативный код.
Рекомендации по разработке на Kotlin
Набор советов, правил, принципов и обычаев в разработке на этом языке.
Основы языка Kotlin
Основы Kotlin - архитектура проекта, платформенные модули и базовые принципы разработки на языке.
Типы данных и объявление переменных в Kotlin
Типизация и набор правил определения типа данных значений языка Kotlin.
Операторы и выражения в Kotlin
Операторы и выражения в Kotlin - логика вычислений, приоритеты операций и идиоматичный стиль записи условий.
Циклы и управляющие конструкции в Kotlin
Циклы и управляющие конструкции в Kotlin - идиоматичные способы итерации, условия и управление выполнением.
Объектно-ориентированное программирование в Kotlin
ООП в Kotlin - классы, модификаторы доступа, наследование и идиоматичное проектирование объектных структур.
Синтаксис и пунктуация в Kotlin
Кавычки, точки, запятые, скобки и прочие знаки препинания.
Ключевые слова языка Kotlin
Kotlin использует набор зарезервированных слов для построения синтаксических конструкций языка. Все ключевые слова разделены на категории по назначению.
Встроенные функции и расширения Kotlin
Набор функций, которые включены в стандартную библиотеку языка.
Синтаксические конструкции Kotlin
Синтаксические конструкции Kotlin - `val` и `var`, модификаторы, выражения и практический стиль кода.
Иерархия исключений в Kotlin
Нет проверяемых исключений — даже если функция на Java помечена как throws IOException, в Kotlin её можно вызывать без try-catch или объявления throws.
Работа с базами данных из Kotlin
Доступ к хранилищам, JDBC/ORM и интеграция с прикладным кодом на Kotlin.
Важные классы и интерфейсы стандартной библиотеки
Pair, Triple, data class и другие важные типы стандартной библиотеки Kotlin.
Первая программа на Kotlin
Гайд по установке и настройке с написанием первой программы и её запуском.
Простые приложения на Kotlin
Простые приложения на Kotlin - базовые сетевые сценарии и минимальные серверные решения на JVM-стеке.
Kotlin — KotlinMobileApp
Пошаговый практикум счётчика на Android — 6 этапов от Empty Activity до Material3-экрана с rememberSaveable и Preview.
Ktor — первая программа
REST API на Ktor — маршруты, JSON, корутины и запуск сервера с разбором для новичков.
Корутины в Kotlin
suspend, scope, async/await, Dispatchers, Flow и типичные ошибки — развёрнуто для новичков.
Тестирование на Kotlin
JUnit 5, MockK, Kotest и testApplication — с разбором для новичков.
Compose Multiplatform — первая программа
Общий UI на Kotlin для Desktop — KMP, Compose, @Composable и окно со счётчиком с разбором для новичков.
Коллекции и Sequence в Kotlin
List, Set, Map и ленивые Sequence — когда какой тип выбрать, с примерами для новичков.
Flow в Kotlin
Холодные и горячие потоки, операторы, StateFlow — развёрнуто для новичков.
Консольный ввод и вывод в Kotlin
println, readln, аргументы командной строки и CLI на JVM — с разбором для новичков.
Ktor Client — HTTP-запросы
HttpClient, GET/POST с JSON, ошибки и KMP — развёрнуто для новичков.
Jetpack Compose — первый экран
Activity, @Composable, remember, ViewModel и навигация — развёрнуто для новичков.
Kotlin — Kotlinochi
Пошаговый практикум тамагочи на Android — 9 этапов: PetState, DataStore, PetViewModel с decay, Compose UI и Canvas-питомец.
DSL и функции с получателем в Kotlin
Лямбды с receiver, type-safe builders, @DslMarker — разбор для новичков на примерах Gradle и Ktor.
Room, ViewModel и Compose — список заметок
SQLite через Room, Flow, ViewModel и Compose — пошагово для новичков.
Spring Boot на Kotlin — первая программа
REST на Spring Boot с Kotlin — стартеры, data class, контроллер с разбором для новичков.
Kotlin и Java — совместимость на практике
Вызов Java из Kotlin и наоборот — null, SAM, @JvmStatic, миграция с разбором для новичков.
Мобильные приложения на Kotlin
Маршрут Android-разработки на Kotlin — Jetpack Compose, MVVM, практикумы приложения и игры; ссылки на раздел "Мобильные приложения".
Java и Kotlin
Java и Kotlin на JVM — таблицы, примеры кода, null-safety, корутины и виртуальные потоки, плюсы и минусы, критерии выбора в 2026 году.
Справочник по Kotlin
Справочник-шпаргалка по Kotlin — типы, синтаксис, стандартная библиотека, корутины и типовые паттерны.
fun main() — точка входа Kotlin
Точка входа JVM в Kotlin, @JvmStatic, fun main() без класса и чем запуск отличается от import.
Kotlin — итоги
Итоги раздела «Kotlin» — FAQ и краткие ответы по теме.
Kotlin — чек-лист
Чек-лист раздела «Kotlin» — вопросы для самопроверки.
Kotlin — о разделе
Подборка по Kotlin — JVM, корутины, Ktor, Android (Compose), KMP; маршруты для backend, мобильной и кроссплатформенной разработки.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Бэкенд и серверная разработка — Smalltalk — о разделе, Go — о разделе, PHP — о разделе, Ruby — о разделе, C++ — о разделе, Groovy — о разделе.
Мобильная разработка — Справочник по Android, Swift — о разделе, Справочник по iOS, Мобильные игры, Особенности тестирования мобильных приложений, Беспроводные технологии - Bluetooth, Zigbee, NFC.