Kotlin

Современный статически типизированный язык от JetBrains, полностью совместимый с Java.

Kotlin разработала компания JetBrains (создатели IntelliJ IDEA) — работа началась в 2010 году, а стабильная версия 1.0 вышла в феврале 2016. Название — в честь острова Котлин под Санкт-Петербургом, недалеко от офиса JetBrains, по аналогии с Java (остров Ява в Индонезии). В 2017 году Google объявил Kotlin официальным языком для разработки под Android.

2016стабильный релиз 1.0
JetBrainsразработчик
Apache 2.0лицензия (open source)

Ключевые особенности

Работает поверх JVM

Код Kotlin компилируется в тот же байт-код, что и Java, и выполняется в виртуальной машине Java (JVM) — поэтому Kotlin может напрямую использовать любые Java-библиотеки.

Null-безопасность

Тип переменной сразу указывает, может ли она быть пустой (null) или нет — компилятор не даст случайно обратиться к пустому значению, самая частая ошибка в Java здесь встроенно предотвращена.

Статическая типизация с выводом типов

Типы проверяются на этапе компиляции, как в Go, но писать их вручную почти не нужно — компилятор сам определяет тип по значению.

Корутины (coroutines)

Лёгкие «потоки» для асинхронного кода, управляемые самим языком, а не операционной системой — по идее похожи на горутины в Go, но работают поверх потоков JVM.

Лаконичный синтаксис

Заметно меньше «шаблонного» кода, чем в Java: не нужно писать геттеры/сеттеры, точки с запятой необязательны, много готовых сокращений.

Kotlin Multiplatform

Позволяет писать общую бизнес-логику один раз и использовать её в Android, iOS, вебе и на сервере, оставляя нативный интерфейс отдельно под каждую платформу.

Где применяется

Android-разработка (официальный язык) Backend / API (Spring, Ktor) Kotlin Multiplatform (Android + iOS) Серверные и корпоративные системы Скрипты (Kotlin Script)

Если вы пришли из Laravel или Go

Как и Go, Kotlin статически типизирован — ошибки в типах видны ещё до запуска. А корутины Kotlin по духу похожи на горутины Go: тоже лёгкие, тоже позволяют не блокировать поток на время ожидания. Для backend-разработки, привычной по Laravel, ближе всего фреймворк Spring Boot (полнофункциональный, как Laravel) или более лёгкий Ktor от самих JetBrains. Вместо Composer — системы сборки Gradle или Maven.

Пример кода

fun main() {
    // Точка входа в программу
    val name = "Kotlin"
    println("Привет, $name!")
}