कोटलिन

प्रोग्रामिंग भाषा

कोटलिन (Kotlin) (/ˈkɒtlɪn/)[3] एक बहु-मंच, स्थैतिक रूप से टाइप की गई, व्यापक-उद्देशीय उच्च स्तरीय प्रोग्रामिंग भाषा है जिसमें टाइप अनुमान की सुविधा है। कोटलिन को जावा के साथ पूरी तरह से आपस में काम करने के लिए बनाया गया है, और कोटलिन की मानक लाइब्रेरी का जेवीएम संस्करण जावा क्लास लाइब्रेरी पर निर्भर करता है, लेकिन टाइप अनुमान इसके वाक्य विन्यास को अधिक संक्षिप्त बनाने की अनुमति देता है। कोटलिन मुख्य रूप से JVM को लक्षित करता है, लेकिन यह जावास्क्रिप्ट (जैसे कि रियेक्ट का उपयोग करने वाले फ्रंटएंड वेब अनुप्रयोगों के लिए)[4] या LLVM के माध्यम से मशीनी भाषा (जैसे कि एंड्रॉइड ऐप्स के साथ बिजनेस लॉजिक साझा करने वाले नेटिव आईओएस ऐप्स के लिए) में भी संकलित होता है।[5] भाषा के विकास की लागत जेटब्रेन्स द्वारा वहन की जाती है, जबकि कोटलिन फाउंडेशन कोटलिन ट्रेडमार्क की रक्षा करता है।[6]

कोटलिन (Kotlin)
प्रकार बहु-प्रतिमान: ऑब्जेक्ट ओरिएंटेड, कार्यात्मक, निर्देशात्मक, ब्लॉक संरचित, जेनेरिक, रिफ्लेक्टिव, संगामी
पहला अवतरण 22 जुलाई 2011; 15 वर्ष पूर्व (2011-07-22)
डिज़ाइनर जेटब्रेन्स
निर्माता जेटब्रेन्स
स्थायी विमोचन Kotlin 2.4.0[1] Edit this on Wikidata (3 जून 2026; Error: first parameter cannot be parsed as a date or time. (3 जून 2026))
लिखने का तरिका अनुमानित, स्थैतिक, मजबूत
प्रभावकर्ता
प्रभावित V (Vlang)
अभिकलन वेदी
प्रचालन तन्त्र बहु-मंच
अनुज्ञप्‍तिधारी अपाचे 2.0
सामान्य संचिका नाम अनुयोजन .kt, .kts, .kexe, .klib
वेबसाइट kotlinlang.org

7 मई 2019 को, गूगल ने घोषणा की कि कोटलिन प्रोग्रामिंग भाषा एंड्रॉइड ऐप डेवलपर्स के लिए उसकी पसंदीदा भाषा बन गई है।[7] अक्टूबर 2017 में Android Studio 3.0 की रिलीज के बाद से, कोटलिन को मानक जावा कंपाइलर के विकल्प के रूप में शामिल किया गया है। एंड्रॉइड कोटलिन कंपाइलर डिफ़ॉल्ट रूप से जावा 8 बाइटकोड उत्सर्जित करता है (जो किसी भी बाद के JVM में चलता है), लेकिन अनुकूलन के लिए जावा 9 से 24 तक को लक्षित करने की अनुमति देता है;[8] इसमें जावा 16 में पेश किए गए और कोटलिन 1.5 के रूप में स्थिर माने जाने वाले JVM के लिए द्विदिश रिकॉर्ड क्लास इंटरऑपरेबिलिटी समर्थन है।

कोटलिन में Kotlin/JS के साथ वेब के लिए समर्थन है, जो दिसंबर 2022 में जारी संस्करण 1.8 के बाद से स्थिर घोषित किया गया है। कोटलिन/नेटिव (जैसे Apple silicon समर्थन के लिए) को नवंबर 2023 में जारी संस्करण 1.9.20 के बाद से स्थिर घोषित किया गया है।[9][10]

कोडी (Kodee) नाम का कोटलिन शुभंकर (नियमित संस्करण)
कोडी (Kodee) नाम का कोटलिन शुभंकर (छोटा संस्करण)

यह नाम सेंट पीटर्सबर्ग के पास फ़िनलैंड की खाड़ी में स्थित एक रूसी द्वीप कोटलिन द्वीप से लिया गया है। कोटलिन के पूर्व मुख्य डिजाइनर एंड्री ब्रेस्लाव ने उल्लेख किया कि टीम ने जावा प्रोग्रामिंग भाषा की नकल करते हुए एक द्वीप के नाम पर इसका नाम रखने का फैसला किया, जो इंडोनेशियाई द्वीप जावा के साथ नाम साझा करती है।[11]

कोटलिन गिट (Git) रिपॉजिटरी में पहला कमिट 8 नवंबर 2010 को किया गया था।[12]

जुलाई 2011 में, जेटब्रेन्स ने प्रोजेक्ट कोटलिन का अनावरण किया, जो JVM के लिए एक नई भाषा थी और एक साल से विकास के अधीन थी।[13] जेटब्रेन के प्रमुख दिमित्री जेमेरोव ने कहा कि अधिकांश भाषाओं में वे विशेषताएं नहीं थीं जिनकी वे तलाश कर रहे थे, सिवाय स्काला के। हालाँकि, उन्होंने स्काला के धीमे संकलन समय को एक कमी के रूप में उद्धृत किया।[13] कोटलिन के घोषित लक्ष्यों में से एक जावा जितनी जल्दी संकलित करना है। फरवरी 2012 में, जेटब्रेन ने अपाचे 2 लाइसेंस के तहत परियोजना को ओपन सोर्स कर दिया।[14]

जेटब्रेन को उम्मीद थी कि कोटलिन IntelliJ IDEA की बिक्री को बढ़ाएगा।[15]

कोटलिन 1.0 को 15 फरवरी 2016 को जारी किया गया था।[16] इसे पहली आधिकारिक स्थिर रिलीज माना जाता है और जेटब्रेन ने इस संस्करण के साथ शुरू होने वाली दीर्घकालिक बैकवर्ड संगतता के लिए प्रतिबद्धता जताई है।

Google I/O 2017 में, गूगल ने एंड्रॉइड पर कोटलिन के लिए प्रथम श्रेणी के समर्थन की घोषणा की।[17] 7 मई 2019 को, गूगल ने घोषणा की कि कोटलिन प्रोग्रामिंग भाषा अब एंड्रॉइड ऐप डेवलपर्स के लिए इसकी पसंदीदा भाषा है।[7]

विकास प्रमुख एंड्री ब्रेस्लाव ने कहा है कि कोटलिन को एक औद्योगिक-शक्ति वाली ऑब्जेक्ट ओरिएंटेड भाषा और जावा की तुलना में एक "बेहतर भाषा" के रूप में डिज़ाइन किया गया है, लेकिन फिर भी यह जावा कोड के साथ पूरी तरह से इंटरऑपरेबल है, जिससे कंपनियों को जावा से कोटलिन में धीरे-धीरे प्रवास करने की अनुमति मिलती है।[18]

कथन टर्मिनेटर के रूप में सेमीकोलन वैकल्पिक हैं; अधिकांश मामलों में कंपाइलर के लिए यह निष्कर्ष निकालने के लिए एक नई लाइन पर्याप्त होती है कि कथन समाप्त हो गया है।[19]

कोटलिन वेरिएबल घोषणाओं और पैरामीटर सूचियों में डाटा प्रकार वेरिएबल नाम के बाद (और एक कोलन विभाजक के साथ) आता है, जो पास्कल, TypeScript और रस्ट के समान है। वर्तमान परियोजना प्रमुख रोमन एलिज़ारोव के एक लेख के अनुसार, इसके परिणामस्वरूप वेरिएबल नामों का संरेखण होता है और यह आंखों को अधिक सुखद लगता है, विशेष रूप से जब उत्तराधिकार में कुछ वेरिएबल घोषणाएं होती हैं।[20][21]

कोटलिन में स्काला का प्रभाव ऑब्जेक्ट ओरिएंटेड और कार्यात्मक प्रोग्रामिंग दोनों के लिए व्यापक समर्थन में और कई विशिष्ट विशेषताओं में देखा जा सकता है:

  • परिवर्तनशील और अपरिवर्तनीय वेरिएबल्स के बीच अंतर है (var बनाम val कीवर्ड)
  • सभी क्लासेज डिफ़ॉल्ट रूप से सार्वजनिक और फाइनल (गैर-विरासत योग्य) होती हैं
  • फंक्शन्स और मेथड्स डिफॉल्ट आर्गुमेंट्स, वेरिएबल-लेंथ आर्गुमेंट सूचियों और नमित आर्गुमेंट्स (named arguments) का समर्थन करते हैं

कोटलिन 1.3 ने अनुबंधों (contracts) के लिए समर्थन जोड़ा, जो मानक लाइब्रेरी घोषणाओं के लिए स्थिर हैं, लेकिन उपयोगकर्ता-परिभाषित घोषणाओं के लिए अभी भी प्रयोगात्मक हैं। अनुबंध एफ़िल के design by contract प्रोग्रामिंग प्रतिमान से प्रेरित हैं।[22]

कोटलिन कोड को जावास्क्रिप्ट में ट्रांसपाइल किया जा सकता है, जिससे दोनों भाषाओं में लिखे गए कोड के बीच इंटरऑपरेबिलिटी की अनुमति मिलती है। इसका उपयोग कोटलिन में पूर्ण वेब एप्लिकेशन लिखने या कोटलिन बैकएंड और जावास्क्रिप्ट फ्रंटएंड के बीच कोड साझा करने के लिए किया जा सकता है।[23]

वाक्य विन्यास (Syntax)

संपादित करें

प्रक्रियात्मक प्रोग्रामिंग शैली

संपादित करें

कोटलिन जावा के उस प्रतिबंध को ढीला करता है जिसमें स्टेटिक मेथड्स और वेरिएबल्स केवल क्लास बॉडी के भीतर ही मौजूद हो सकते हैं। स्टेटिक ऑब्जेक्ट्स और फंक्शन्स को क्लास स्तर की आवश्यकता के बिना पैकेज के शीर्ष स्तर पर परिभाषित किया जा सकता है। जावा के साथ संगतता के लिए, कोटलिन एक JvmName एनोटेशन प्रदान करता है जो जावा प्रोजेक्ट से पैकेज देखे जाने पर उपयोग किए जाने वाले क्लास नाम को निर्दिष्ट करता है। उदाहरण के लिए, @file:JvmName("JavaClassName")

मुख्य प्रवेश बिंदु (Main entry point)

संपादित करें

जैसा कि सी, सी++, सी#, जावा और गो (Go) में होता है, कोटलिन प्रोग्राम का प्रवेश बिंदु "main" नामक एक फंक्शन होता है, जिसमें किसी भी कमांड-लाइन आर्गुमेंट वाली एक ऐरे (array) पास की जा सकती है। कोटलिन 1.3 से यह वैकल्पिक है। पर्ल, पीएचपी और यूनिक्स शेल शैली की स्ट्रिंग इंटरपोलेशन समर्थित है। टाइप अनुमान भी समर्थित है।

// हैलो, वर्ल्ड! उदाहरण
fun main() {
    val scope = "World"
    println("Hello, $scope!")
}
fun main(args: Array<String>) {
    for (arg in args) {
        println(arg)
    }
}

एक्सटेंशन फंक्शन्स

संपादित करें

C# के समान, कोटलिन नए फंक्शन्स के साथ एक व्युत्पन्न क्लास बनाने की औपचारिकताओं के बिना किसी भी क्लास में एक एक्सटेंशन फंक्शन जोड़ने की अनुमति देता है। एक एक्सटेंशन फंक्शन की क्लास के सभी सार्वजनिक इंटरफेस तक पहुंच होती है।

package org.wikipedia.examples

fun String.lastChar(): Char = get(length - 1)

println("Kotlin".lastChar()) // प्रिंट करता है: n

डेटा क्लासेज (Data classes)

संपादित करें

कोटलिन का data class उन क्लासेज को परिभाषित करता है जिनका प्राथमिक उद्देश्य डेटा संग्रहीत करना है, जो जावा के record प्रकारों के समान है। मुख्य मेथड्स equals, hashCode और toString क्लास गुणों से स्वचालित रूप से उत्पन्न होते हैं।

कोटलिन इंटरैक्टिव शेल

संपादित करें
$ kotlinc-jvm
type :help for help; :quit for quit
>>> 2 + 2
4
>>> println("Hello, World!")
Hello, World!

एक स्क्रिप्टिंग भाषा के रूप में कोटलिन

संपादित करें

कोटलिन का उपयोग स्क्रिप्टिंग भाषा के रूप में भी किया जा सकता है। स्क्रिप्ट एक कोटलिन सोर्स फाइल है जिसमें .kts फ़ाइल एक्सटेंशन का उपयोग किया जाता है।

नल सुरक्षा (Null safety)

संपादित करें

कोटलिन nullable और गैर-नलेबल डेटा प्रकारों के बीच अंतर करता है। सभी नलेबल ऑब्जेक्ट्स को टाइप नाम के बाद "?" पोस्टफिक्स के साथ घोषित किया जाना चाहिए।

fun sayHello(maybe: String?, neverNull: Int) {
    // एल्विस ऑपरेटर का उपयोग
    val name: String = maybe ?: "stranger"
    println("Hello $name")
}
  • Android Studio (IntelliJ IDEA पर आधारित) में एंड्रॉइड स्टूडियो 3 से कोटलिन के लिए आधिकारिक समर्थन है।[24]
  • सामान्य जावा बिल्ड टूल्स के साथ एकीकरण समर्थित है, जिसमें Apache Maven, Apache Ant, और Gradle शामिल हैं।
  • एक्लिप्स के लिए जेटब्रेन एक प्लगइन भी प्रदान करता है।
  • IntelliJ IDEA में कोटलिन के लिए प्लग-इन समर्थन है।

कोटलिन मल्टीप्लेटफ़ॉर्म

संपादित करें

कोटलिन मल्टीप्लेटफ़ॉर्म एक एकल कोडबेस को विंडोज़, लिनक्स, वेब, एंड्रॉइड और iOS जैसे कई प्लेटफ़ॉर्म को लक्षित करने की अनुमति देता है।[25]

अनुप्रयोग

संपादित करें

जब मई 2017 में Google I/O में कोटलिन को आधिकारिक एंड्रॉइड विकास भाषा के रूप में घोषित किया गया था, तो यह जावा और सी++ के बाद एंड्रॉइड के लिए पूरी तरह से समर्थित तीसरी भाषा बन गई। 2020 तक, कोटलिन एंड्रॉइड पर सबसे व्यापक रूप से उपयोग की जाने वाली भाषा थी, गूगल का अनुमान है कि प्ले स्टोर पर शीर्ष 1,000 ऐप्स में से 70% कोटलिन में लिखे गए थे। गूगल के पास स्वयं कोटलिन में लिखे गए 60 ऐप्स थे, जिनमें मैप्स और ड्राइव शामिल हैं।

Spring Framework ने आधिकारिक तौर पर 4 जनवरी 2017 को संस्करण 5 के साथ कोटलिन समर्थन जोड़ा।[26]

इसे भी देखें

संपादित करें
  1. "Release Kotlin 2.4.0". 3 जून 2026. अभिगमन तिथि: 15 जून 2026.
  2. "Kotlin/Native target support | Kotlin" [कोटलिन/नेटिव लक्ष्य समर्थन]. Kotlin Help (अमेरिकी अंग्रेज़ी भाषा में). अभिगमन तिथि: 2025-10-16.
  3. "What is the correct English pronunciation of Kotlin?" [कोटलिन का सही अंग्रेजी उच्चारण क्या है?] (अंग्रेज़ी भाषा में). 16 October 2019. 9 November 2019 को मूल से पुरालेखित. अभिगमन तिथि: 9 November 2019.
  4. "Kotlin for JavaScript - Kotlin Programming Language" [जावास्क्रिप्ट के लिए कोटलिन - कोटलिन प्रोग्रामिंग भाषा]. Kotlin (अंग्रेज़ी भाषा में). 16 August 2020 को मूल से पुरालेखित. अभिगमन तिथि: 2020-08-20.
  5. "Kotlin for cross-platform mobile development" [क्रॉस-प्लेटफ़ॉर्म मोबाइल विकास के लिए कोटलिन]. JetBrains: Developer Tools for Professionals and Teams (अंग्रेज़ी भाषा में). 19 August 2020 को मूल से पुरालेखित. अभिगमन तिथि: 2020-08-20.
  6. "Kotlin Foundation - Kotlin Programming Language" [कोटलिन फाउंडेशन - कोटलिन प्रोग्रामिंग भाषा]. Kotlin (अंग्रेज़ी भाषा में). 29 December 2019 को मूल से पुरालेखित. अभिगमन तिथि: 16 December 2019.
  7. 1 2 Lardinois, Frederic (7 May 2019). "Kotlin is now Google's preferred language for Android app development" [कोटलिन अब एंड्रॉइड ऐप विकास के लिए गूगल की पसंदीदा भाषा है]. TechCrunch (अमेरिकी अंग्रेज़ी भाषा में). 7 May 2019 को मूल से पुरालेखित. अभिगमन तिथि: 8 May 2019.
  8. "Kotlin FAQ" [कोटलिन अक्सर पूछे जाने वाले प्रश्न] (अंग्रेज़ी भाषा में). 2 June 2021 को मूल से पुरालेखित. अभिगमन तिथि: 2025-10-16. 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 24. Note that in this case the resulting bytecode might not run on lower versions. Starting with Kotlin 1.5, the compiler does not support producing bytecode compatible with Java versions below 8. [कोटलिन आपको निष्पादन के लिए JVM का संस्करण चुनने देता है। डिफ़ॉल्ट रूप से, Kotlin/JVM कंपाइलर जावा 8 संगत बाइटकोड उत्पन्न करता है। यदि आप जावा के नए संस्करणों में उपलब्ध अनुकूलन का उपयोग करना चाहते हैं, तो आप स्पष्ट रूप से 9 से 24 तक लक्षित जावा संस्करण निर्दिष्ट कर सकते हैं। ध्यान दें कि इस मामले में परिणामी बाइटकोड निचले संस्करणों पर नहीं चल सकता है। कोटलिन 1.5 के साथ शुरू करते हुए, कंपाइलर जावा संस्करण 8 से नीचे के बाइटकोड उत्पादन का समर्थन नहीं करता है।]
  9. "Stability of Kotlin Components" [कोटलिन घटकों की स्थिरता]. Kotlin (अंग्रेज़ी भाषा में). May 21, 2021. 29 July 2021 को मूल से पुरालेखित. अभिगमन तिथि: July 29, 2021.
  10. "Kotlin 1.5.0 – the First Big Release of 2021" [कोटलिन 1.5.0 – 2021 की पहली बड़ी रिलीज]. Kotlin (अंग्रेज़ी भाषा में). 4 May 2021. 12 August 2021 को मूल से पुरालेखित. अभिगमन तिथि: July 29, 2021.
  11. Mobius (8 January 2015), Андрей Бреслав – Kotlin для Android: коротко и ясно [एंड्री ब्रेस्लाव - एंड्रॉइड के लिए कोटलिन: संक्षिप्त और स्पष्ट] (रूसी भाषा में), 12 April 2023 को मूल से पुरालेखित, अभिगमन तिथि: 28 May 2017
  12. "test · JetBrains/kotlin@3e4dce3". GitHub (अंग्रेज़ी भाषा में). 17 October 2022 को मूल से पुरालेखित. अभिगमन तिथि: 2022-10-17.
  13. 1 2 Krill, Paul (22 July 2011). "JetBrains readies JVM language Kotlin" [जेटब्रेन ने JVM भाषा कोटलिन तैयार की]. InfoWorld (अंग्रेज़ी भाषा में). 7 September 2019 को मूल से पुरालेखित. अभिगमन तिथि: 2 February 2014.
  14. Waters, John (22 February 2012). "Kotlin Goes Open Source" [कोटलिन ओपन सोर्स हुआ]. ADTmag.com (अंग्रेज़ी भाषा में). 1105 Enterprise Computing Group. 18 February 2014 को मूल से पुरालेखित. अभिगमन तिथि: 2 February 2014.
  15. "Why JetBrains needs Kotlin" [जेटब्रेन को कोटलिन की आवश्यकता क्यों है] (अंग्रेज़ी भाषा में). 2 August 2011. 16 August 2023 को मूल से पुरालेखित. अभिगमन तिथि: 11 February 2018. we expect Kotlin to drive the sales of IntelliJ IDEA
  16. "Kotlin 1.0 Released: Pragmatic Language for JVM and Android | Kotlin Blog" [कोटलिन 1.0 जारी: JVM और एंड्रॉइड के लिए व्यावहारिक भाषा]. Blog.jetbrains.com (अंग्रेज़ी भाषा में). 15 February 2016. 24 January 2018 को मूल से पुरालेखित. अभिगमन तिथि: 11 April 2017.
  17. Shafirov, Maxim (17 May 2017). "Kotlin on Android. Now official" [एंड्रॉइड पर कोटलिन। अब आधिकारिक] (अंग्रेज़ी भाषा में). 29 May 2023 को मूल से पुरालेखित. अभिगमन तिथि: 18 May 2017. Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin.
  18. "JVM Languages Report extended interview with Kotlin creator Andrey Breslav" [JVM भाषा रिपोर्ट: कोटलिन निर्माता एंड्री ब्रेस्लाव के साथ विस्तृत साक्षात्कार]. Zeroturnaround.com (अंग्रेज़ी भाषा में). 22 April 2013. 15 January 2019 को मूल से पुरालेखित. अभिगमन तिथि: 2 February 2014.
  19. "Semicolons" [सेमीकोलन]. jetbrains.com (अंग्रेज़ी भाषा में). 23 December 2015 को मूल से पुरालेखित. अभिगमन तिथि: 8 February 2014.
  20. "Types are moving to the right" [टाइप्स दाईं ओर जा रहे हैं]. Medium (अंग्रेज़ी भाषा में). 16 July 2020. 22 May 2023 को मूल से पुरालेखित. अभिगमन तिथि: 6 November 2021.
  21. "Roman Elizarov is the new Project Lead for Kotlin" [रोमन एलिज़ारोव कोटलिन के नए प्रोजेक्ट लीड हैं]. The Kotlin Blog (अंग्रेज़ी भाषा में). JetBrains. 19 November 2020. 20 January 2022 को मूल से पुरालेखित. अभिगमन तिथि: 7 November 2021.
  22. "Design by Contract (DbC) design considerations" [डिजाइन बाय कॉन्ट्रैक्ट (DbC) डिजाइन विचार]. Kotlin Discussions (अमेरिकी अंग्रेज़ी भाषा में). 16 August 2012. 5 April 2023 को मूल से पुरालेखित. अभिगमन तिथि: 4 April 2020. Implement the full semantics of Eiffel DbC and improve upon it.
  23. "Kotlin for JavaScript | Kotlin" [जावास्क्रिप्ट के लिए कोटलिन]. Kotlin Help (अमेरिकी अंग्रेज़ी भाषा में). 21 January 2021. 14 July 2023 को मूल से पुरालेखित. अभिगमन तिथि: 2021-03-19.
  24. "Kotlin and Android" [कोटलिन और एंड्रॉइड]. Android Developers (अंग्रेज़ी भाषा में). 4 October 2023 को मूल से पुरालेखित. अभिगमन तिथि: 19 June 2017.
  25. "Kotlin Multiplatform Overview" [कोटलिन मल्टीप्लेटफ़ॉर्म अवलोकन]. Android Developers (अंग्रेज़ी भाषा में). अभिगमन तिथि: 2025-06-14.
  26. "Introducing Kotlin support in Spring Framework 5.0" [स्प्रिंग फ्रेमवर्क 5.0 में कोटलिन समर्थन का परिचय]. Spring (अंग्रेज़ी भाषा में). Pivotal. 4 January 2017. 23 August 2023 को मूल से पुरालेखित. अभिगमन तिथि: 29 September 2020.

बाहरी कड़ियाँ

संपादित करें

साँचा:Java (software platform)