Kotlin
![]() | |
Paradigmalari | Koʻp paradigma: obyektga yoʻnaltirilgan, funksional, imperativ, blok tuzilgan, deklarativ, umumiy, reflektiv, bir vaqtda |
---|---|
Muallifi | JetBrains |
Tuzilgan yili | 22-iyul, 2011-yil | )
Platforma |
|
Operatsion tizim | Cross-platform |
Litsenziya | Apache License 2.0 |
Fayl kengaytmalari | .kt, .kts, .ktm |
Vebsayt | Andoza:Official URL |
Bunga asos boʻlgan tillar | |
Kotlin[1]-oʻzaro platformali, statik tarzda yozilgan, tip xulosasiga ega umumiy maqsadli dasturlash tili. Kotlin Java bilan toʻliq oʻzaro ishlash uchun moʻljallangan va Kotlin standart kutubxonasining JVM versiyasi Java sinf kutubxonasiga bogʻliq[2], lekin turdagi xulosalar uning sintaksisini yanada ixcham boʻlishiga imkon beradi. Kotlin asosan JVMni maqsad qilib oladi, lekin JavaScriptni (masalan, React[3] dan foydalanadigan frontend web-ilovalar uchun) yoki LLVM orqali mahalliy kodni (masalan, Android ilovalari bilan biznes mantiqini almashuvchi mahalliy iOS ilovalari uchun) kompilyatsiya qiladi[4]. Tilni rivojlantirish xarajatlari JetBrains tomonidan qoplanadi, Kotlin fondi esa Kotlin savdo belgisini himoya qiladi[5].
2019-yilning 7-mayida Google Kotlin dasturlash tili endi Android ilovalari ishlab chiquvchilari uchun afzal qilingan til ekanligini eʼlon qildi[6]. 2017-yil oktabr oyida Android Studio 3.0 versiyasi chiqqandan beri Kotlin standart Java kompilyatoriga muqobil sifatida kiritilgan. Android Kotlin kompilyatori sukut boʻyicha Java 8 bayt kodini ishlab chiqaradi (u har qanday keyingi JVM-da ishlaydi), lekin dasturchi optimallashtirish uchun[7] Java 9dan 18gacha maqsadni tanlash imkonini beradi yoki koʻproq funksiyalarga ruxsat beradi; Java 16da taqdim etilgan, Kotlin 1.5da barqaror deb hisoblangan JVM uchun ikki tomonlama oʻzaro ishlashni qoʻllab-quvvatlaydi.
Kotlin internetni qoʻllab-quvvatlaydi; JavaScript-ga kompilyatsiya qilish orqali (yaʼni, klassik back-endli Kotlin/JS 1.3-versiyasidan beri barqaror deb eʼlon qilingan), yangi Kotlin/JS esa (IR -asoslangan) 1.5.30 versiyasidan boshlab beta-versiyada. Kotlin/Native (masalan:: Apple silikon qoʻllab-quvvatlash) 1.3 versiyasidan beri beta hisoblanadi.[8][9]
Tarix[tahrir | manbasini tahrirlash]


2011-yil iyul oyida JetBrains bir yil davomida ishlab chiqilayotgan JVM uchun yangi Project Kotlin tilini taqdim etdi.[10] JetBrains yetakchisi Dmitriy Jemerovning taʼkidlashicha, Scala tilidan tashqari koʻpchilik tillar ular izlagan funksiyalarga ega emas. Biroq, u kamchilik sifatida Scala-ni sekin kompilyatsiya qilish vaqtini keltirdi.[10] Kotlinning belgilangan maqsadlaridan biri Java kabi tez kompilyatsiya qilishdir. 2012-yil fevral oyida JetBrains loyihani Apache 2 litsenziyasi ostida ochdi.[11]
Bu nom Sankt-Peterburg yaqinidagi Kotlin orolidan keladi. Andrey Breslav jamoa uni orol sharafiga nomlashga qaror qilganini eslatib oʻtdi, xuddi Java Indoneziyaning Java oroli sharafiga nomlangani kabi[12](garchi Java dasturlash tili orol emas, balki qahva nomi bilan atalgan boʻlsa ham).[13]
JetBrains yangi til IntelliJ IDEA sotuvini oshirishiga umid qilmoqda.[14]
Kotlin Git omboriga birinchi majburiyat 2010-yil 8-noyabrda boʻlgan.[15]
Kotlin 1.0 2016-yil 15-fevralda chiqarildi.[16] Bu birinchi rasmiy barqaror reliz deb hisoblanadi va JetBrains ushbu versiyadan boshlab uzoq muddatli orqaga qarab muvofiqlikni oʻz zimmasiga olgan.
Google I/O 2017 koʻrgazmasida Google Android -da Kotlin uchun birinchi darajali yordamni eʼlon qildi.[17]
Kotlin 1.2 2017-yil 28-noyabrda chiqarildi.[18] JVM va JavaScript platformalari oʻrtasida kod almashish funksiyasi ushbu nashrga yangi qoʻshildi (1.4 versiyasidan koʻp platformali dasturlash „eksperimental“dan yangilangan alfa funksiya[19]). Yangi Kotlin/JS Gradle plagini bilan toʻliq stekli demo yaratildi.[20][21]
Kotlin 1.3 2018-yil 29-oktabrda chiqarildi va asinxron dasturlash uchun koroutinlarni olib keldi.
2019-yilning 7-mayida Google Kotlin dasturlash tili endi Android ilovalarini ishlab chiquvchilar uchun afzal qilingan til ekanligini eʼlon qildi.[6]
Kotlin 1.4 2020-yil avgust oyida chiqarildi masalan, Apple platformalarini qoʻllab-quvvatlashga, yaʼni Objective-C/Swift interopiga biroz oʻzgartirishlar kiritilgan.[22]
Sintaksis[tahrir | manbasini tahrirlash]
Protsessual dasturlash uslubi[tahrir | manbasini tahrirlash]
Kotlin Java-ning statik usullar va oʻzgaruvchilarga faqat sinf tanasida mavjud boʻlishiga ruxsat berish cheklovlarini yumshatadi. Statik ob’ektlar va funksiyalar paketning yuqori darajasida ortiqcha sinf darajasiga muhtoj boʻlmasdan aniqlanishi mumkin. Java bilan muvofiqligi uchun Kotlin JvmName
izohini taqdim etadi, bu paket Java loyihasidan koʻrilganda ishlatiladigan sinf nomini belgilaydi. Masalan, @file:JvmName("JavaClassNam
Manba[tahrir | manbasini tahrirlash]
- Ushbu maqolada Apache 2.0 litsenziyasi ostida chiqarilgan Kotlin darsliklaridan iqtiboslar mavjud.
- ↑ „What is the correct English pronunciation of Kotlin?“ (16-oktabr 2019-yil). Qaraldi: 9-noyabr 2019-yil.
- ↑ „kotlin-stdlib“. kotlinlang.org. JetBrains. Qaraldi: 20-aprel 2018-yil.
- ↑ „Kotlin for JavaScript - Kotlin Programming Language“ (en). Kotlin. Qaraldi: 20-avgust 2020-yil.
- ↑ „Kotlin for cross-platform mobile development“ (en). JetBrains: Developer Tools for Professionals and Teams. Qaraldi: 20-avgust 2020-yil.
- ↑ „Kotlin Foundation - Kotlin Programming Language“. Kotlin.
- ↑ 6,0 6,1 „Kotlin is now Google's preferred language for Android app development“ (en-US). TechCrunch. Qaraldi: 8-may 2019-yil. [sayt ishlamaydi]
- ↑ „Kotlin FAQ“. — „Kotlin lets you choose the version of JVM for execution. By default, the Kotlin/JVM compiler produces Java 8 compatible bytecode. If you want to make use of optimizations available in newer versions of Java, you can explicitly specify the target Java version from 9 to 18. Note that in this case the resulting bytecode might not run on lower versions.“. Qaraldi: 16-iyul 2022-yil.
- ↑ „Stability of Kotlin Components“. Kotlin (21-may 2021-yil). Qaraldi: 29-iyul 2021-yil.
- ↑ „Kotlin 1.5.0 – the First Big Release of 2021“. Kotlin (4-may 2021-yil). Qaraldi: 29-iyul 2021-yil.
- ↑ 10,0 10,1 Krill. „JetBrains readies JVM language Kotlin“. InfoWorld (22-iyul 2011-yil). 7-sentabr 2019-yilda asl nusxadan arxivlandi. Qaraldi: 2-fevral 2014-yil.
- ↑ Waters. „Kotlin Goes Open Source“. ADTmag.com. 1105 Enterprise Computing Group (22-fevral 2012-yil). 18-fevral 2014-yilda asl nusxadan arxivlandi. Qaraldi: 2-fevral 2014-yil.
- ↑ Mobius (8 January 2015), Андрей Бреслав — Kotlin для Android: коротко и ясно, qaraldi: 28 May 2017
- ↑ Kieron Murphy. „So why did they decide to call it Java?“. JavaWorld (4-oktabr 1996-yil). 15-mart 2019-yilda asl nusxadan arxivlandi. Qaraldi: 14-oktabr 2017-yil.
- ↑ „Why JetBrains needs Kotlin“. — „we expect Kotlin to drive the sales of IntelliJ IDEA“.
- ↑ „test · JetBrains/kotlin@3e4dce3“ (en). GitHub. Qaraldi: 17-oktabr 2022-yil.
- ↑ „Kotlin 1.0 Released: Pragmatic Language for JVM and Android | Kotlin Blog“. Blog.jetbrains.com (15-fevral 2016-yil). Qaraldi: 11-aprel 2017-yil.
- ↑ Shafirov. „Kotlin on Android. Now official“ (17-may 2017-yil). — „Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin.“.
- ↑ „Kotlin 1.2 Released: Sharing Code between Platforms | Kotlin Blog“. blog.jetbrains.com (28-noyabr 2017-yil).
- ↑ „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.“. Qaraldi: 20-avgust 2020-yil.
- ↑ „Kotlin/kotlin-full-stack-application-demo“. Kotlin (3-aprel 2020-yil). Qaraldi: 4-aprel 2020-yil.
- ↑ „Kotlin full stack app demo: update all involving versions to work with 1.3.70 release“. youtrack.jetbrains.com. Qaraldi: 4-aprel 2020-yil.
- ↑ „What's New in Kotlin 1.4 - Kotlin Programming Language“ (en). Kotlin. — „In 1.4.0, we slightly change the Swift API generated from Kotlin with respect to the way exceptions are translated.“. Qaraldi: 20-avgust 2020-yil.