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].

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 (12 yil avval) (2011-07-22)
Platforma
Operatsion tizim Cross-platform
Litsenziya Apache License 2.0
Fayl kengaytmalari .kt, .kts, .ktm
Vebsayt Andoza:Official URL
Bunga asos boʻlgan tillar

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

 
Kotlin maskotining 2D rasmi
 
Kotlin maskotining 3D rasmi

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

Protsessual dasturlash uslubi tahrir

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

  • Ushbu maqolada Apache 2.0 litsenziyasi ostida chiqarilgan Kotlin darsliklaridan iqtiboslar mavjud.
  1. „What is the correct English pronunciation of Kotlin?“ (2019-yil 16-oktyabr). Qaraldi: 2019-yil 9-noyabr.
  2. „kotlin-stdlib“. kotlinlang.org. JetBrains. Qaraldi: 2018-yil 20-aprel.
  3. „Kotlin for JavaScript - Kotlin Programming Language“ (en). Kotlin. Qaraldi: 2020-yil 20-avgust.
  4. „Kotlin for cross-platform mobile development“ (en). JetBrains: Developer Tools for Professionals and Teams. Qaraldi: 2020-yil 20-avgust.
  5. „Kotlin Foundation - Kotlin Programming Language“. Kotlin.
  6. 6,0 6,1 „Kotlin is now Google's preferred language for Android app development“ (en-US). TechCrunch. Qaraldi: 2019-yil 8-may. [sayt ishlamaydi]
  7. „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: 2022-yil 16-iyul.
  8. „Stability of Kotlin Components“. Kotlin (2021-yil 21-may). Qaraldi: 2021-yil 29-iyul.
  9. „Kotlin 1.5.0 – the First Big Release of 2021“. Kotlin (2021-yil 4-may). Qaraldi: 2021-yil 29-iyul.
  10. 10,0 10,1 Krill. „JetBrains readies JVM language Kotlin“. InfoWorld (2011-yil 22-iyul). 2019-yil 7-sentyabrda asl nusxadan arxivlangan. Qaraldi: 2014-yil 2-fevral.
  11. Waters. „Kotlin Goes Open Source“. ADTmag.com. 1105 Enterprise Computing Group (2012-yil 22-fevral). 2014-yil 18-fevralda asl nusxadan arxivlangan. Qaraldi: 2014-yil 2-fevral.
  12. Mobius (8 January 2015), Андрей Бреслав — Kotlin для Android: коротко и ясно, qaraldi: 28 May 2017
  13. Kieron Murphy. „So why did they decide to call it Java?“. JavaWorld (1996-yil 4-oktyabr). 2019-yil 15-martda asl nusxadan arxivlangan. Qaraldi: 2017-yil 14-oktyabr.
  14. „Why JetBrains needs Kotlin“. — „we expect Kotlin to drive the sales of IntelliJ IDEA“.
  15. „test · JetBrains/kotlin@3e4dce3“ (en). GitHub. Qaraldi: 2022-yil 17-oktyabr.
  16. „Kotlin 1.0 Released: Pragmatic Language for JVM and Android | Kotlin Blog“. Blog.jetbrains.com (2016-yil 15-fevral). Qaraldi: 2017-yil 11-aprel.
  17. Shafirov. „Kotlin on Android. Now official“ (2017-yil 17-may). — „Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin.“.
  18. „Kotlin 1.2 Released: Sharing Code between Platforms | Kotlin Blog“. blog.jetbrains.com (2017-yil 28-noyabr).
  19. „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: 2020-yil 20-avgust.
  20. „Kotlin/kotlin-full-stack-application-demo“. Kotlin (2020-yil 3-aprel). Qaraldi: 2020-yil 4-aprel.
  21. „Kotlin full stack app demo: update all involving versions to work with 1.3.70 release“. youtrack.jetbrains.com. Qaraldi: 2020-yil 4-aprel.
  22. „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: 2020-yil 20-avgust.