Современный статически типизированный язык от JetBrains, полностью совместимый с Java.
Kotlin разработала компания JetBrains (создатели IntelliJ IDEA) — работа началась в 2010 году, а стабильная версия 1.0 вышла в феврале 2016. Название — в честь острова Котлин под Санкт-Петербургом, недалеко от офиса JetBrains, по аналогии с Java (остров Ява в Индонезии). В 2017 году Google объявил Kotlin официальным языком для разработки под Android.
Код Kotlin компилируется в тот же байт-код, что и Java, и выполняется в виртуальной машине Java (JVM) — поэтому Kotlin может напрямую использовать любые Java-библиотеки.
Тип переменной сразу указывает, может ли она быть пустой (null) или нет — компилятор не даст случайно обратиться к пустому значению, самая частая ошибка в Java здесь встроенно предотвращена.
Типы проверяются на этапе компиляции, как в Go, но писать их вручную почти не нужно — компилятор сам определяет тип по значению.
Лёгкие «потоки» для асинхронного кода, управляемые самим языком, а не операционной системой — по идее похожи на горутины в Go, но работают поверх потоков JVM.
Заметно меньше «шаблонного» кода, чем в Java: не нужно писать геттеры/сеттеры, точки с запятой необязательны, много готовых сокращений.
Позволяет писать общую бизнес-логику один раз и использовать её в Android, iOS, вебе и на сервере, оставляя нативный интерфейс отдельно под каждую платформу.
Как и Go, Kotlin статически типизирован — ошибки в типах видны ещё до запуска. А корутины Kotlin по духу похожи на горутины Go: тоже лёгкие, тоже позволяют не блокировать поток на время ожидания. Для backend-разработки, привычной по Laravel, ближе всего фреймворк Spring Boot (полнофункциональный, как Laravel) или более лёгкий Ktor от самих JetBrains. Вместо Composer — системы сборки Gradle или Maven.
fun main() {
// Точка входа в программу
val name = "Kotlin"
println("Привет, $name!")
}