Kotlin
Kotlin | |
---|---|
Класс языка | язык JVM, свободное программное обеспечение и объектно-ориентированный |
Появился в | 22 июля 2011 |
Автор | JetBrains |
Расширение файлов |
.kt или .kts |
Выпуск |
|
Испытал влияние | Groovy, C#[2], Gosu, Java[2], Ruby, JavaScript[2], Scala[2], Python и ML |
Лицензия | Apache License 2.0[3] |
Сайт | kotlinlang.org (англ.) |
Платформа | Java Virtual Machine, Dalvik virtual machine, JavaScript, iOS, watchOS, tvOS, macOS, Linux, Windows и WebAssembly |
Медиафайлы на Викискладе |
Kotlin (Ко́тлин) — кроссплатформенный, статически типизированный, объектно-ориентированный язык программирования, работающий поверх Java Virtual Machine и разрабатываемый компанией JetBrains. Также компилируется в JavaScript и в исполняемый код ряда платформ через инфраструктуру LLVM.
Авторы ставили целью создать язык более лаконичный и типобезопасный, чем Java, и более простой, чем Scala[4]. Следствием упрощения по сравнению со Scala стали также более быстрая компиляция и лучшая поддержка языка в IDE[5]. Язык полностью совместим с Java, что позволяет Java-разработчикам постепенно перейти к его использованию; в частности, язык также встраивается в Android, что позволяет для существующего Android-приложения внедрять новые функции на Kotlin без переписывания приложения целиком.
История
Название
Язык назван в честь российского острова Котлин в Финском заливе, на котором расположен город Кронштадт[4]. Андрей Бреслав, бывший ведущий дизайнер Kotlin, упомянул, что команда решила назвать его в честь острова, так же как язык программирования Java был назван в честь индонезийского острова Ява[6] (есть мнение, что название языка было навеяно «java» — американским сленговым термином для кофе[7], который сам по себе происходит от названия острова[8]).
Разработка
Язык разрабатывается с 2010 года под руководством Андрея Бреслава[9][10], представлен общественности в июле 2011[11]. В феврале 2012 года JetBrains открыла исходный код проекта под лицензией Apache 2[12][13]. Тогда же в феврале был выпущен milestone 1, включающий плагин для IDEA, в июне — milestone 2 с поддержкой Android[14], в декабре — milestone 4, включающий, в частности, поддержку Java 7[15]. Компания JetBrains надеялась, что новый язык будет способствовать продажам IntelliJ IDEA[16].
Kotlin 1.0 был выпущен 15 февраля 2016 года[17]. Он считается первым официально стабильным релизом и начиная с этой версии, JetBrains взяла на себя обязательство по долгосрочной обратной совместимости.
В мае 2017 на Google I/O 2017 года компания Google объявила, что инструменты языка Kotlin, основанные на JetBrains IDE, будут включены в Android Studio 3.0 — официальный инструмент разработки для ОС Android[18].
Kotlin 1.2 был выпущен 28 ноября 2017 года[19]. В релиз добавлена функция совместного использования кода между платформами JVM и JavaScript (мультиплатформенное программирование)[20].
Kotlin 1.3 был выпущен 29 октября 2018 года, добавив поддержку сопрограмм для использования с асинхронным программированием[21].
На Google I/O 2019 было объявлено, что язык программирования Kotlin стал приоритетным в разработке под Android[22].
Kotlin 1.4 был выпущен в августе 2020 года, в том числе с некоторыми небольшими изменениями в поддержке платформ Apple (во взаимодействии Objective-C / Swift)[23].
В ноябре 2020 года Андрей Бреслав объявил об уходе из JetBrains, руководство разработкой языка было передано Роману Елизарову[24].
Kotlin 1.5 был выпущен в мае 2021 года.
Kotlin 1.6 был выпущен в ноябре 2021 года.
Kotlin 1.7 был выпущен в июне 2022 года, включая альфа-версию нового компилятора Kotlin K2[25].
Kotlin 1.8 был выпущен в декабре 2022 года[26].
Kotlin 1.9 был выпущен в июле 2023 года[27].
Kotlin 2.0 был выпущен в мае 2024 года[28].
Синтаксис
В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
Синтаксис языка преимущественно комбинирует наследство из двух языковых ветвей: Cи/C++/Java и ML (по словам создателей, через Scala).
Из наиболее характерных элементов от первой ветви унаследованы блоки кода, обрамлённые фигурными скобками; а от второй — постфиксное указание типов переменных и параметров (сперва идентификатор, затем разделитель — двоеточие, и затем тип) и ключевые слова «fun
» и «val
». Точка с запятой как разделитель операторов необязательна (как в Scala, Groovy и JavaScript); в большинстве случаев перевода строки достаточно, чтобы компилятор понял, что выражение закончилось.
Кроме объектно-ориентированного подхода, Kotlin также поддерживает процедурный стиль с использованием функций. Как и в Си, C++ и D, точка входа в программу — функция main
, принимающая массив параметров командной строки. Программы на Kotlin также поддерживают perl- и shell-стиль интерполяции строк (переменные, включённые в строку, заменяются на своё содержимое). Также поддерживается вывод типов.
Примеры кода
fun main() {
val scope = "world"
println("Hello, $scope!")
}
fun sayHello(maybe: String?, neverNull: Int) {
// use of elvis operator
val name: String = maybe ?: "stranger"
println("Hello $name")
}
// returns null if foo is null, or bar() returns null, or baz() returns null
foo ?. bar() ?. baz()
Примечания
- ↑ Release Kotlin 2.0.20 (Repository)
- ↑ 1 2 3 4 14 New Programming Languages To Learn In 2023 - RankRed
- ↑ https://github.com/JetBrains/kotlin/blob/v1.3.61/license/README.md
- ↑ 1 2 "Kotlin — конкурент Java и Scala". Открытые системы. 2011-07. Архивировано 10 января 2014. Дата обращения: 26 мая 2013.
- ↑ Андрей Бреслав. Язык программирования Kotlin // Открытые системы. — 2011. — № 09. Архивировано 2 мая 2013 года.
- ↑ Mobius (8 January 2015), Андрей Бреслав — Kotlin для Android: коротко и ясно, Архивировано 12 апреля 2023, Дата обращения: 28 мая 2017
- ↑ Kieron Murphy. So why did they decide to call it Java? JavaWorld (4 октября 1996). Дата обращения: 14 октября 2017. Архивировано 15 марта 2019 года.
- ↑ Merriam-Webster. Java Definition & Meaning . www.merriam-webster.com (8 июня 2023). Дата обращения: 3 июля 2023. Архивировано 4 июля 2023 года.
- ↑ Кристина Шибаева. "Создатель языка программирования Kotlin Андрей Бреслав — о недостатке женщин в IT, полиамории и психотерапии". Собака. Архивировано 8 января 2022. Дата обращения: 9 января 2022.
- ↑ Андрей Бреслав — о разработке Kotlin, профессии программиста и о том, как все успевать . ИТМО (26 ноября 2018). Дата обращения: 8 марта 2023. Архивировано 8 марта 2023 года.
- ↑ "JetBrains produces another Java alternative". The H[англ.]. 2011-07-22. Архивировано 27 июля 2013. Дата обращения: 26 мая 2013.
- ↑ Waters, John Kotlin Goes Open Source . ADTmag.com. 1105 Enterprise Computing Group (22 февраля 2012). Дата обращения: 2 февраля 2014. Архивировано 18 февраля 2014 года.
- ↑ "Java-alternative Kotlin now available as open source". The H[англ.]. 2012-02-14. Архивировано 27 июля 2013. Дата обращения: 26 мая 2013.
- ↑ "Kotlin M2 now runs on Android too". The H. 2012-06-04. Архивировано 24 июля 2013. Дата обращения: 26 мая 2013.
- ↑ "Fourth Kotlin milestone adds annotation tool". The H. 2012-12-12. Архивировано 27 июля 2013. Дата обращения: 26 мая 2013.
- ↑ Why JetBrains needs Kotlin (2 августа 2011). — «we expect Kotlin to drive the sales of IntelliJ IDEA». Дата обращения: 11 февраля 2018. Архивировано 16 августа 2023 года.
- ↑ Kotlin 1.0 Released: Pragmatic Language for JVM and Android (англ.). Kotlin Blog. Дата обращения: 15 февраля 2016. Архивировано 22 октября 2016 года.
- ↑ "Google добавила Kotlin как официальный язык программирования для Android". 2017-05-17. Архивировано 9 июля 2017. Дата обращения: 18 мая 2017.
- ↑ Kotlin 1.2 Released: Sharing Code between Platforms | Kotlin Blog . blog.jetbrains.com (28 ноября 2017). Дата обращения: 29 ноября 2017. Архивировано 24 мая 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 года.
- ↑ "Kotlin 1.1 Released with JavaScript Support, Coroutines and more". Архивировано 4 июня 2023. Дата обращения: 1 мая 2017.
- ↑ Евгений Делюкин. Google объявила Kotlin приоритетным языком программирования для разработки Android-приложений — Разработка на vc.ru . vc.ru (7 мая 2019). Дата обращения: 5 июня 2019. Архивировано 5 июня 2019 года.
- ↑ What's New in Kotlin 1.4 - Kotlin Programming Language (англ.). Kotlin. — «In 1.4.0, we slightly change the Swift API generated from Kotlin with respect to the way exceptions are translated.» Дата обращения: 20 августа 2020. Архивировано 8 июня 2023 года.
- ↑ Andrey Breslav. Roman Elizarov is the new Project Lead for Kotlin . JetBrains (19 ноября 2020). Дата обращения: 9 января 2022. Архивировано 20 января 2022 года.
- ↑ What's new in Kotlin 1.7.0 | Kotlin (амер. англ.). Kotlin Help. Дата обращения: 20 июня 2022. Архивировано 20 июня 2022 года.
- ↑ Paul Krill. Kotlin 1.8.0 adds recursive copy, delete for directories (англ.) (12 января 2023). Дата обращения: 8 марта 2022. Архивировано 8 июля 2023 года.
- ↑ Sarah Haggarty. Kotlin 1.9.0 Released (англ.) (6 июля 2023). Дата обращения: 6 июля 2023. Архивировано 28 июля 2023 года.
- ↑ Github. Kotlin 2.0.0 (англ.) (21 мая 2024). Дата обращения: 21 мая 2024. Архивировано 21 мая 2024 года.
Литература
- Жемеров Д., Исакова С. Kotlin в действии. — ДМК-Пресс, 2017. — 402 с. — ISBN 978-5-97060-497-7.
- Аделекан Ияну. Kotlin: программирование на примерах. — БХВ-Петербург, 2020. — 432 с. — ISBN 978-5-9775-6673-5.
Ссылки
- kotlinlang.org — официальный сайт языка Kotlin
- kotlinlang.ru . Перевод официальной документации по языку Kotlin. — Русскоязычное открытое сообщество любителей Kotlin. Дата обращения: 19 мая 2017.
- Андрей Бреслав. Язык программирования Kotlin // Открытые системы. — 2011. — № 09.
- "Kotlin в открытых кодах". Computerworld Россия. 2012-04. Дата обращения: 26 мая 2013.
- Интервью с COO компании JetBrains Андреем Ивановым. Реактивные мозги // Журнал Хакер. — 26.03.2013.
- Janice J. Heiss The Advent of Kotlin: A Conversation with JetBrains' Andrey Breslav . Oracle Technology Network (апрель 2013). Дата обращения: 7 июня 2013. Архивировано из оригинала 10 июля 2013 года.
- Language of the Month: Kotlin. Language of the Month: Kotlin // Dr. Dobb's Journal. — 20 January, 2012., Andrew Binstock. The JVM As Language Farm Club // Dr. Dobb's Journal. — February 14, 2012.
- Eric Bruno. A Long Look at JVM Languages // Dr. Dobb's Journal. — November 19, 2012.