کۆتلین (زمانی بەرنامەداڕێژی)

لە ئینسایکڵۆپیدیای ئازادی ویکیپیدیاوە
کۆتلین
پارادایمMulti-paradigm: object-oriented, functional, imperative, block structured, declarative, generic, reflective, concurrent
داڕێژەرجێت برەین
پەرەپێدەرجێت برەین
یەکەم دەرکەوتن٢٢ی تەممووزی ٢٠١١؛ ١٢ ساڵ لەمەوبەر (٢٠١١-٠٧-22)
وەشانی جێگیر
٢٫٠٫٠[١] لەسەر ویکیدراوە دەستکاریی ئەمە بکە / ٢١ی ئایاری ٢٠٢٤؛ ھەڵە: یەکەم پارامەتر ناکرێت وەکوو ڕۆژ و کات مامەڵەی لەگەڵ بکرێت. (٢١ی ئایاری ٢٠٢٤)
جۆری دراو (تایپ)دەرکەوتە, ستاتیک, سترۆنگ
سەکۆ
سیستمی بەکارخەرینەرمامێری سەکۆبڕ
مۆڵەتApache License 2.0
پاشگری پەڕگە.kt, .kts, .kexe, .klib
وێبگەkotlinlang٫org Edit this at Wikidata
کاریگەربووە بە
کاری کردۆتە
V (Vlang)

کۆتلین ( /ˈkɒtlɪn/ ) [٢] زمانێکی بەرنامەدارێژی نەرمامێری سەکۆبڕە کە بە شێوەیەکی ستاتیکی نوسراوە ، بەکاردێ بۆ دروستکردنی گشتی بەرنامەسازی ئاست بەرز، کۆتلین بە شێوەیەک دیزاین کراوە کە بە تەواوی لەگەڵ جاڤا کار بکات و وەشانی JVM ی ستانداردی کۆتلین پشت بە پۆلی جاڤا دەبەستێت و ڕێگە بە ڕستەسازییەکەی دەدات کە پوختتر بێت، کۆتلین بە شێوەیەکی سەرەکی JVM دەکاتە ئامانج، ھەروەھا کۆد دەکرێت دەکات بۆ جاڤاسکریپت (بۆ نموونە، بۆ بەرنامەکانی وێب بە بەکارھێنانی React ) [٣] یان کۆدی مەکینە لە ڕێگەی LLVM (بۆ نموونە بۆ بەرنامەکانی ئای ئۆ ئێس کە لۆژیکی بازرگانی لەگەڵ بەرنامەکانی ئەندرۆید ھاوبەش دەکەن)[٤] تێچووی پەرەپێدانی زمانەکە لەلایەن JetBrains ەوە پاڵپشتی دەکرێت، لە کاتێکدا دامەزراوەی کۆتلین ھێمای خاوەندارێتی بازرگانی کۆتلین ھەڵدەگرێت.[٥]

لە ٧ ی ئایاری ٢٠١٩ کۆمپانیای گۆگڵ ڕایگەیاند کە زمانی بەرنامەسازی کۆتلین ئێستا زمانی پەسەندکراوی کۆمپانیاکەیە بۆ گەشەپێدەرانی بەرنامەکانی ئەندرۆید[٦] لە دوای بڵاوبوونەوەی ئەندرۆید ستۆدیۆ ٣.٠ لەساڵی ٢٠١٧، کۆتلین وەک جێگرەوەی ستانداردی جاڤا بەردەستکراوە، ئەندرۆید کۆتلین بە شێوازی پێشوەختە بایتکۆدی جاڤا ٨ بەرھەم دەھێنێت (کە لە ھەر JVMێکی دواتردا کاردەکات) و ڕێگە بە پرۆگرامەر دەدات جاڤا ٩ تا ٢٠ بکاتە ئامانج، بۆ باشترکردن[٧] یان تایبەتمەندی زیاتر؛ پشتگیری کارپێکردنی یەکتربڕی پۆلی تۆماری دووئاڕاستەی ھەیە بۆ JVM.

مێژوو[دەستکاری]

وێنەیەکی دوو ڕەھەندی ماسکۆتی کۆتلین
وێنەیەکی سێ ڕەھەندی ماسکۆتی کۆتلین

ناونان[دەستکاری]

ناوەکە لە دوورگەی کۆتلین وەرگیراوە کە دوورگەیەکی ڕووسییە لە کەنداوی فینلاند لە نزیک سەنت پیتەرزبۆرگ لەنزیک ئاندرێ برێسلاڤ، دیزاینەری سەرەکی پێشووی کۆتلین باسی لەوە کردووە کە تیمەکە بڕیاریاندا ناوەکە لەناوی دوورگەوە وەربگرن، ھەروەک چۆن زمانی بەرنامەسازی جاڤا ناوی دوورگەی جاڤای ئیندۆنیزیا وەرگیراوە،[٨] (ھەرچەندە دەوترێت ناوی زمانەکە لە " java" زاراوەیەکی زەق و زەنگی ئەمریکییە بۆ قاوە[٩] بەڵام خۆی لە ڕاستیدا لەناوی دوورگەکەوە وەرگیراوە).[١٠]

پەرەپێدان[دەستکاری]

لە تەمموزی ٢٠١١ کۆمپانیای JetBrains پەردەی لەسەر پرۆژەی کۆتلین لادا کە زمانێکی نوێیە بۆ JVM کە ساڵێک بوو لە قۆناغی پەرەپێداندا بوو[١١] دیمیتری جێمیرۆڤ سەرۆکی کۆمپانیای JetBrains ڕایگەیاند کە زۆربەی زمانەکان ئەو تایبەتمەندیانەیان نەبووە کە بەدوایدا دەگەڕان، جگە لە Scala، بەڵام ئەو کاتە خاوی کۆمپایلەری سکالای وەک کەموکوڕی ھێنایەوە[١١] یەکێک لە ئامانجە ڕاگەیەندراوەکانی کۆتلین ئەوەیە کە بە خێرایی وەک جاڤا کۆمپایل بکات، لە شوباتی ٢٠١٢ کۆمپانیای JetBrains سەرچاوە کراوەی پڕۆژەکەی لە ژێر مۆڵەتی Apache 2 وەرگرت.[١٢]

جێت برەین ھیوای خواست کە زمانە نوێیەکە ببێتە ھۆی فرۆشی IntelliJ IDEA . [١٣]

کۆتلین ١.٠ لە ١٥ ی شوباتی ٢٠١٦ بڵاوکرایەوە[١٤] ئەمە بە یەکەم بڵاوکردنەوەی فەرمی جێگیر دادەنرێت و جێت برەین پابەند بووە بە گونجانی درێژخایەن کە لەم وەشانەیەوە دەست پێدەکات.

لە کۆنگرەی Google I/O ٢٠١٧ گۆگڵ پشتگیری پلە یەکی بۆ Kotlin لەسەر ئەندرۆید ڕاگەیاند.[١٥]

ديزاين[دەستکاری]

ئاندرێ برێسلاڤ سەرۆکی پەرەپێدان ڕایگەیاندووە کە کۆتلین بە شێوەیەک دیزاین کراوە کە زمانێکی بەھێزی پیشەسازی بێت بۆ پرۆگرامسازی تەنخواز و "زمانێکی باشتر" بێت لە جاڤا، بەڵام ھێشتا بە تەواوی لەگەڵ کۆدی جاڤادا کاردەکات ئەمەش ڕێگە بە کۆمپانیاکان دەدات کۆچکردنێکی وردە وردە لە جاڤاوە بۆ کۆتلین ئەنجام بدەن.[١٦]

ڕستەسازی[دەستکاری]

شێوازی بەرنامەسازی و ڕێکارەکان[دەستکاری]

کۆتلین سنووردارکردنی جاڤا کە ڕێگە بە شێواز و گۆڕاوە جێگیرەکان دەدات تەنھا لەناو پێکھاتەی پۆلێکدا ھەبن، دەتوانرێت فرمانی جێگیر و کرادەرکان لە ئاستی سەرەوەی پاکێجەکەدا پێناسە بکرێت بەبێ ئەوەی پێویست بە ئاستی پۆلی زیادە ھەبێت بۆ گونجان لەگەڵ جاڤا، کۆتلین تێبینی JvmName دابین دەکات کە ناوی پۆلێک دیاری دەکات کە بەکاردێت کاتێک پاکێجەکە لە پڕۆژەیەکی جاڤاوە ھاوردە دەکرێت، بۆ نموونە @file:JvmName("JavaClassName").

خاڵی سەرەکی پەیوەستبون[دەستکاری]

ھەروەک لە سی، سی++، سی شارپ، جاڤا، و Go، خاڵی پەیوەستبون بۆ بەرنامەیەکی کۆتلین کرادرەکە بە ناوی "main"، کە ڕەنگە ڕیزبەندییەک تێپەڕێنرێت کە ھەر ڕێسایەکی ھێڵی فەرمان لەخۆبگرێت، ئەم کرادەر دڵخوازییە لە دوای Kotlin 1.3[١٧] شێوازی دێڕی ڕیزەکانی پێرڵ، پی ئەیچ پی و Unix shell پشتگیری دەکرێت.

// سڵاو، جیهان بە نمونە
fun main() {
  val scope = "جیهان"
  println("سڵاو, $scope!")
}

fun main(args: Array<String>) {
  for (arg in args)
    println(arg)
}

پۆلەکان بە شێوازی بنەڕەتی گشتین[دەستکاری]

کۆتلین ئەم وشە سەرەکیانەی خوارەوە دابین دەکات بۆ سنووردارکردنی بینین بۆ ڕاگەیاندنی ئاستی باڵا، وەک پۆلەکان و بۆ ئەندامانی پۆل: public ، internal ، protected و private .

کاتێک داواکاری بۆ ئەندامێکی پۆلەکە دەکرێت:

وشەی سەرەکی بینین
public (بە بنەڕەتی) لە ھەموو شوێنێک
internal لەناو مۆدیولێکدا
protected لەناو ژێرپۆلەکاندا
private لەناو پۆلێکدا

کاتێک کە بۆ بەیاننامەیەکی ئاستی باڵا جێبەجێ دەکرێت:

وشەی سەرەکی بینین
public (بە بنەڕەتی) لە ھەموو شوێنێک
internal لەناو مۆدیولێکدا
private لەناو فایلێکدا

نموونە:

// Class is visible only to current module
internal open class TalkativeButton {
  // method is only visible to current class 
  private fun yell() = println("سڵاو!")
  // method is visible to current class and derived classes
  protected fun whisper() = println("با قسە بکەین!")
}
internal class MyTalkativeButton: TalkativeButton() {
  fun utter() = super.whisper()
}
MyTalkativeButton().utter()

توێکڵی کارلێککەری کۆتلین[دەستکاری]

$ kotlinc-jvm
type :help for help; :quit for quit
>>> 2 + 2
4
>>> println("سڵاو, جیهان")
Hello, World!

کۆتلین وەک زمانێکی سکریپت[دەستکاری]

ھەروەھا دەتوانرێت کۆتلین وەک زمانی سکریپت بەکاربھێنرێت، سکریپت فایلێکی سەرچاوەی کۆتلینە کە بە بەکارھێنانی.kts درێژکراوەی ناوی پەڕگەیی لەگەڵ کۆدی سەرچاوەی جێبەجێکراو لە بازنەی ئاستی باڵادا:

// list_folders.kts لیستی فۆڵدەرەکان
import java.io.File
val folders = File(args[0]).listFiles { file -> file.isDirectory() }
folders?.forEach(::println)

دەتوانرێت سکریپتەکان بە گواستنەوەی ھەڵبژاردەی -script و پەڕگەی سکریپتی ھاوبەش بۆ کۆمپایلەرەکە جێبەجێ بکرێت.

$ kotlinc -script list_folders.kts لیستی فۆڵدەرەکان "path_to_folder_to_inspect"

بەرنامەکان[دەستکاری]

کاتێک کۆتلین وەک زمانێکی فەرمی پەرەپێدانی ئەندرۆید لە گۆگڵ ئای/ئۆ لە مانگی ئایاری ٢٠١٧ ڕاگەیەندرا، بووە سێیەم زمان کە بە تەواوی پشتگیری کرا بۆ سیستەمی ئەندرۆید، دوای جاڤا و سی++، [١٨] ھەتا ڕێکەوتی ٢٠٢٠ </link></link> ، کۆتلین زۆرترین زمانی بەکارھێنراوە لەسەر ئەندرۆید، گگگڵ مەزەندەی کردووە کە ٪٧٠ی ١٠٠٠ بەرنامەی سەرەکی لە پلەی ستۆردا بە زمانی کۆتلین نووسراون، گۆگڵ بەتەنیا خۆی ٦٠ بەرنامەی ھەیە کە بە زمانی کۆتلین نووسراون، لەوانە Maps و Drive، وە زۆرێک لە بەرنامەکانی تری ئەندرۆید وەکو گۆگڵ ھۆم لە پرۆسەی گواستنەوەدایە بۆ کۆتلین، ھەر بۆیە ھەردوو جۆری کۆتلین و جاڤا بەکاردەھێنن، Kotlin لەسەر ئەندرۆید وەک سوودبەخش سەیر دەکرێت بۆ سەلامەتی null-pointer، ھەروەھا بۆ تایبەتمەندییەکانی کە وا دەکات کۆدی کورتتر و پوختتر بەرھەم بھێنێت. [١٩]

پەرەسەندن[دەستکاری]

لە ساڵی ٢٠١٨دا، کۆتلین خێراترین زمانی گەشەسەندوو بوو لە GitHub، بە بەراورد بە ساڵی ٢٠١٧ بەڕێژەی ٢,٦ ھێندەی گەشەپێدەرەکانی زیاتر بوو[٢٠] بەپێی ڕاپرسی گەشەپێدەرانی Stack Overflow 2020 چوارەم زمانی بەرنامەسازییە کە زۆرترین گرنگی پێدەدرێت.[٢١]

زۆرێک لە کۆمپانیا / ڕێکخراوەکان Kotlin یان بەکارھێناوە بۆ پەرەپێدانی بەرنامەکانیان لەوانە:

ھەندێک کۆمپانیا / ڕێکخراو Kotlin یان بەکارھێناوە بۆ پەرەپێدانی وێب:

ژمارەیەک کۆمپانیا بە ئاشکرا ڕایانگەیاندووە کە کۆتلین بەکاردەھێنن:

  • Basecamp [٤٢]
  • Corda، بنکەیەکی سەرەکی دابەشکراوە کە لەلایەن کۆمەڵەیەکی بانکە ناسراوەکانەوە پەرەی پێدراوە (وەک گۆڵدمان ساکس ، وێڵز فارگۆ ، جەی پی مۆرگان ، دۆیچە بانک ، یو بی ئێس ، ئێچ ئێس بی سی ، بی ئێن پی پاریباس ، و سۆسییەتی جێنراڵ )، زیاتر لە ٪٩٠ کۆدی کۆتلین لە بنکە کۆدەکانیدا ھەیە:
  • Coursera [٤٣]
  • DripStat [٤٤]
  • Duolingo [٤٥]
  • NetFllix [٤٦]
  • Pinterest [٤٧]
  • Trello [٤٨]
  • Uber [٤٩]

ئەمانەش ببینە[دەستکاری]

  • بەراوردکردنی زمانەکانی بەرنامەسازی

سەرچاوەکان[دەستکاری]

  • ئەم بابەتە وەرگێڕانی فێرکارییەکانی کۆتلین لەخۆدەگرێت کە لە ژێر مۆڵەتی ئەپاچی ٢.٠ بڵاودەکرێنەوە.
  1. ^ "Release Kotlin 2.0.0 (Repository)".
  2. ^ "What is the correct English pronunciation of Kotlin?". 16 October 2019. Archived from the original on 9 November 2019. Retrieved 9 November 2019.
  3. ^ "Kotlin for JavaScript - Kotlin Programming Language". Kotlin (بە ئینگلیزی). Archived from the original on 16 August 2020. Retrieved 2020-08-20.
  4. ^ "Kotlin for cross-platform mobile development". JetBrains: Developer Tools for Professionals and Teams (بە ئینگلیزی). Archived from the original on 19 August 2020. Retrieved 2020-08-20.
  5. ^ "Kotlin Foundation - Kotlin Programming Language". Kotlin. Archived from the original on 29 December 2019. Retrieved 16 December 2019.
  6. ^ Lardinois, Frederic (7 May 2019). "Kotlin is now Google's preferred language for Android app development". TechCrunch (بە ئینگلیزی). Archived from the original on 7 May 2019. Retrieved 8 May 2019.
  7. ^ "Kotlin FAQ". Archived from the original on 2 June 2021. Retrieved 2023-04-02. 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 19. Note that in this case the resulting bytecode might not run on lower versions.
  8. ^ Mobius (8 January 2015), Андрей Бреслав — Kotlin для Android: коротко и ясно, archived from the original on 12 April 2023, retrieved 28 May 2017
  9. ^ Kieron Murphy (4 October 1996). "So why did they decide to call it Java?". JavaWorld. Archived from the original on 15 March 2019. Retrieved 14 October 2017. ١٥ی ئازاری ٢٠١٩ لە وەیبەک مەشین، ئەرشیڤ کراوە.
  10. ^ Merriam-Webster (2023-06-08). "Java Definition & Meaning". www.merriam-webster.com. Archived from the original on 4 July 2023. Retrieved 2023-07-03.
  11. ^ ئ ا Krill, Paul (22 July 2011). "JetBrains readies JVM language Kotlin". InfoWorld. Archived from the original on 7 September 2019. Retrieved 2 February 2014.
  12. ^ Waters, John (22 February 2012). "Kotlin Goes Open Source". ADTmag.com. 1105 Enterprise Computing Group. Archived from the original on 18 February 2014. Retrieved 2 February 2014.
  13. ^ "Why JetBrains needs Kotlin". 2 August 2011. Archived from the original on 16 August 2023. Retrieved 11 February 2018. we expect Kotlin to drive the sales of IntelliJ IDEA
  14. ^ "Kotlin 1.0 Released: Pragmatic Language for JVM and Android | Kotlin Blog". Blog.jetbrains.com. 15 February 2016. Archived from the original on 24 January 2018. Retrieved 11 April 2017.
  15. ^ Shafirov, Maxim (17 May 2017). "Kotlin on Android. Now official". Archived from the original on 29 May 2023. Retrieved 18 May 2017. Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin.
  16. ^ "JVM Languages Report extended interview with Kotlin creator Andrey Breslav". Zeroturnaround.com. 22 April 2013. Archived from the original on 15 January 2019. Retrieved 2 February 2014.
  17. ^ "Kotlin Examples: Learn Kotlin Programming By Example". Archived from the original on 18 November 2021. Retrieved 13 April 2019. ١٨ی تشرینی دووەمی ٢٠٢١ لە وەیبەک مەشین، ئەرشیڤ کراوە.
  18. ^ Lardinois, Frederic (17 May 2017). "Google makes Kotlin a first-class language for writing Android apps". techcrunch.com (بە ئینگلیزی). Archived from the original on 22 May 2017. Retrieved 28 June 2018.
  19. ^ "Kotlin programming language: How Google is using it to squash the code bugs that cause most crashes". ZDNet. Archived from the original on 6 April 2023. Retrieved 6 December 2020.
  20. ^ "The state of the Octoverse". Archived from the original on 22 March 2019. Retrieved 24 July 2019. ٢٢ی ئازاری ٢٠١٩ لە وەیبەک مەشین، ئەرشیڤ کراوە.
  21. ^ "Stack Overflow Developer Survey 2020". Archived from the original on 4 June 2020. Retrieved 28 May 2020.
  22. ^ "Kotlin at Allegro". Talking Kotlin (بە ئینگلیزی). October 2018. Archived from the original on 1 June 2023. Retrieved 29 September 2020.
  23. ^ "QLDB at Amazon". Talking Kotlin. 30 June 2020. Archived from the original on 1 June 2023. Retrieved 29 September 2020.
  24. ^ "Future of Jira Software powered by Kotlin". YouTube. Archived from the original on 1 September 2023. Retrieved 1 September 2023.
  25. ^ "Going Full Kotlin Multiplatform". Talking Kotlin (بە ئینگلیزی). 14 April 2020. Archived from the original on 5 April 2023. Retrieved 29 September 2020.
  26. ^ "square/sqldelight". GitHub. Archived from the original on 20 June 2019. Retrieved 24 July 2019.
  27. ^ "Using Kotlin for backend development at Flux". Talking Kotlin (بە ئینگلیزی). 14 August 2019. Archived from the original on 1 June 2023. Retrieved 29 September 2020.
  28. ^ "State of Kotlin on Android". YouTube. Archived from the original on 15 January 2023. Retrieved 29 September 2020.
  29. ^ "Gradle Kotlin DSL Primer". docs.gradle.org. Archived from the original on 18 August 2023. Retrieved 29 September 2020.
  30. ^ "Kotless". Talking Kotlin (بە ئینگلیزی). 30 January 2020. Archived from the original on 5 April 2023. Retrieved 29 September 2020.
  31. ^ "Kotlin on the backend at Meshcloud". Talking Kotlin (بە ئینگلیزی). 28 February 2018. Archived from the original on 6 April 2023. Retrieved 29 September 2020.
  32. ^ "KotlinConf 2019: Kotlin Runs Taxes in Norway by Jarle Hansen & Anders Mikkelsen". YouTube. Archived from the original on 10 April 2023. Retrieved 29 September 2020.
  33. ^ "Greenfield Kotlin at OLX". Talking Kotlin (بە ئینگلیزی). 24 August 2018. Archived from the original on 1 June 2023. Retrieved 29 September 2020.
  34. ^ "Application Monitoring with Micrometer". Talking Kotlin (بە ئینگلیزی). 14 June 2018. Archived from the original on 1 April 2023. Retrieved 29 September 2020.
  35. ^ "Groovy and Kotlin Interop at Rocket Travel". Talking Kotlin (بە ئینگلیزی). 14 May 2018. Archived from the original on 5 April 2023. Retrieved 29 September 2020.
  36. ^ "Kotlin at Shazam". Talking Kotlin (بە ئینگلیزی). 29 July 2018. Archived from the original on 1 April 2023. Retrieved 29 September 2020.
  37. ^ "Zally - An API Linter". Talking Kotlin (بە ئینگلیزی). 29 January 2018. Archived from the original on 6 April 2023. Retrieved 29 September 2020.
  38. ^ "Java/Kotlin Developer - Barclays - Prague - Wizbii". Wizbii.com (بە ئینگلیزی). Retrieved 29 September 2020.
  39. ^ "KotlinConf 2017 - Frontend Kotlin from the Trenches by Gaetan Zoritchak". YouTube. Archived from the original on 10 April 2023. Retrieved 29 September 2020.
  40. ^ "Fritz2". Talking Kotlin (بە ئینگلیزی). 14 September 2020. Archived from the original on 6 April 2023. Retrieved 29 September 2020.
  41. ^ "KotlinConf 2019: Kotlin in Space by Maxim Mazin". YouTube. Archived from the original on 9 April 2023. Retrieved 29 September 2020.
  42. ^ "How we made Basecamp 3's Android app 100% Kotlin – Signal v. Noise". Signal v. Noise. 29 April 2017. Archived from the original on 1 August 2018. Retrieved 1 May 2017. ١ی ئابی ٢٠١٨ لە Archive-It، ئەرشیڤ کراوە
  43. ^ "Becoming bilingual@coursera". 26 April 2018. Archived from the original on 15 January 2023. Retrieved 24 July 2019.
  44. ^ "Kotlin in Production – What works, Whats broken". Blog.dripstat.com. 24 September 2016. Archived from the original on 1 July 2019. Retrieved 11 April 2017. ١ی تەممووزی ٢٠١٩ لە وەیبەک مەشین، ئەرشیڤ کراوە.
  45. ^ "Duolingo on Twitter". Archived from the original on 16 March 2023. Retrieved 13 April 2020.
  46. ^ "Rob Spieldenner on twitter". Archived from the original on 25 December 2022. Retrieved 24 July 2019.
  47. ^ "Droidcon NYC 2016 - Kotlin in Production". YouTube. Archived from the original on 14 April 2023. Retrieved 24 July 2019.
  48. ^ "Dan Lew on Twitter". Archived from the original on 2 May 2023. Retrieved 24 July 2019.
  49. ^ "Measuring Kotlin Build Performance at Uber". 30 April 2019. Archived from the original on 5 June 2023. Retrieved 6 March 2024.

بەستەری دەرەکی[دەستکاری]

داڕێژە:Programming languagesداڕێژە:Java (Sun)