Авторы ставили целью создать язык более лаконичный и типобезопасный, чем Java, и более простой, чем Scala[3]. Следствием упрощения по сравнению со Scala стали также более быстрая компиляция и лучшая поддержка языка в IDE[4]. Язык полностью совместим с Java, что позволяет Java-разработчикам постепенно перейти к его использованию; в частности, язык также встраивается в Android, что позволяет для существующего Android-приложения внедрять новые функции на Kotlin без переписывания приложения целиком.
Язык назван в честь российского острова Котлин в Финском заливе, на котором расположен город Кронштадт[3]. Андрей Бреслав, бывший ведущий дизайнер Kotlin, упомянул, что команда решила назвать его в честь острова, так же как язык программирования Java был назван в честь индонезийского острова Ява[5] (есть мнение, что название языка было навеяно «java» — американским сленговым термином для кофе[6], который сам по себе происходит от названия острова[7]).
Разработка
Язык разрабатывается с 2010 года под руководством Андрея Бреслава[8][9], представлен общественности в июле 2011[10]. В феврале 2012 года JetBrains открыла исходный код проекта под лицензией Apache 2[11][12]. Тогда же в феврале был выпущен milestone 1, включающий плагин для IDEA, в июне — milestone 2 с поддержкой Android[13], в декабре — milestone 4, включающий, в частности, поддержку Java 7[14]. Компания JetBrains надеялась, что новый язык будет способствовать продажам IntelliJ IDEA[15].
Kotlin 1.0 был выпущен 15 февраля 2016 года[16]. Он считается первым официально стабильным релизом и начиная с этой версии, JetBrains взяла на себя обязательство по долгосрочной обратной совместимости.
Kotlin 1.2 был выпущен 28 ноября 2017 года[18]. В релиз добавлена функция совместного использования кода между платформами JVM и JavaScript (мультиплатформенное программирование)[19].
На Google I/O 2019 было объявлено, что язык программирования Kotlin стал приоритетным в разработке под Android[21].
Kotlin 1.4 был выпущен в августе 2020 года, в том числе с некоторыми небольшими изменениями в поддержке платформ Apple (во взаимодействии Objective-C / Swift)[22].
В ноябре 2020 года Андрей Бреслав объявил об уходе из JetBrains, руководство разработкой языка было передано Роману Елизарову[23].
Kotlin 1.5 был выпущен в мае 2021 года.
Kotlin 1.6 был выпущен в ноябре 2021 года.
Kotlin 1.7 был выпущен в июне 2022 года, включая альфа-версию нового компилятора Kotlin K2[24].
Синтаксис языка преимущественно комбинирует наследство из двух языковых ветвей: Cи/C++/Java и ML (по словам создателей, через Scala).
Из наиболее характерных элементов от первой ветви унаследованы блоки кода, обрамлённые фигурными скобками; а от второй — постфиксное указание типов переменных и параметров (сперва идентификатор, затем разделитель — двоеточие, и затем тип) и ключевые слова «fun» и «val». Точка с запятой как разделитель операторов необязательна (как в Scala, Groovy и JavaScript); в большинстве случаев перевода строки достаточно, чтобы компилятор понял, что выражение закончилось.
Кроме объектно-ориентированного подхода, Kotlin также поддерживает процедурный стиль с использованием функций. Как и в Си, C++ и D, точка входа в программу — функция main, принимающая массив параметров командной строки. Программы на Kotlin также поддерживают perl- и shell-стиль интерполяции строк (переменные, включённые в строку, заменяются на своё содержимое). Также поддерживается вывод типов.
↑Waters, John.Kotlin Goes Open Source (неопр.). ADTmag.com. 1105 Enterprise Computing Group (22 февраля 2012). Дата обращения: 2 февраля 2014. Архивировано 18 февраля 2014 года.
↑Why JetBrains needs Kotlin (неопр.) (2 августа 2011). — «we expect Kotlin to drive the sales of IntelliJ IDEA». Дата обращения: 11 февраля 2018. Архивировано 16 августа 2023 года.
↑Multiplatform Projects - Kotlin Programming Language (неопр.). Kotlin. — «Working on all platforms is an explicit goal for Kotlin, but we see it as a premise to a much more important goal: sharing code between platforms. With support for JVM, Android, JavaScript, iOS, Linux, Windows, Mac and even embedded systems like STM32, Kotlin can handle any and all components of a modern application.» Дата обращения: 20 августа 2020. Архивировано 18 августа 2020 года.
kotlinlang.ru(рус.). Перевод официальной документации по языку Kotlin. — Русскоязычное открытое сообщество любителей Kotlin. Дата обращения: 19 мая 2017.