कोटलिन एक स्थैतिक-प्रकार की प्रोग्रामिंग भाषा है जिसे जेटब्रेन द्वारा विकसित किया गया है, जो अपनी संक्षिप्त सिंटैक्स, जावा के साथ इंटरऑपरेबिलिटी और सुरक्षा सुविधाओं के लिए जानी जाती है। यह जावा वर्चुअल मशीन (JVM) पर चलती है और कोटलिन/नेटिव के माध्यम से जावा स्क्रिप्ट या नेटिव कोड में भी संकलित की जा सकती है। 2011 में पहली बार जारी की गई, कोटलिन ने विशेष रूप से एंड्रॉइड विकास के लिए महत्वपूर्ण लोकप्रियता हासिल की है, इसके आधुनिक फीचर्स के कारण जो डेवलपर की उत्पादकता और रखरखाव को बढ़ाते हैं।
कोटलिन को जेटब्रेन द्वारा बनाया गया था, जो इंटेलीज आईडीईए जैसे शक्तिशाली एकीकृत विकास वातावरण (IDEs) के उत्पादन के लिए जाना जाता है। इस भाषा को जावा की कुछ कमियों को दूर करने के लिए डिज़ाइन किया गया था जबकि इसके साथ पूर्ण इंटरऑपरेबिलिटी बनाए रखते हुए। 2011 में प्रारंभिक रिलीज के बाद निरंतर सुधार किए गए, और 2016 में, गूगल ने एंड्रॉइड पर कोटलिन के लिए आधिकारिक समर्थन की घोषणा की, जिससे इसकी स्वीकृति में काफी वृद्धि हुई।
इसके परिचय के बाद से, कोटलिन एक मजबूत प्रोग्रामिंग भाषा में विकसित हो गया है। फरवरी 2016 में कोटलिन 1.0 का विमोचन एक महत्वपूर्ण मील का पत्थर था क्योंकि यह एक स्थिर रिलीज बन गया। इसके बाद के अपडेट ने कई नए फीचर्स पेश किए, जैसे कि असिंक्रोनस प्रोग्रामिंग के लिए कोरूटीन, प्रकार अनुमान, और डेटा क्लासेस, जिन्होंने कोटलिन को डेवलपर्स के लिए और अधिक आकर्षक बना दिया। 2023 तक, कोटलिन सक्रिय रूप से विकसित हो रहा है और एंड्रॉइड विकास, वेब विकास (कोटलिन/JS के माध्यम से), और सर्वर-साइड अनुप्रयोगों के लिए व्यापक रूप से उपयोग किया जा रहा है।
कोटलिन विभिन्न प्रोग्रामिंग भाषाओं से प्रेरणा लेता है, जिसमें जावा, स्काला, ग्रूवी, और C# शामिल हैं। इसकी सिंटैक्स और डिज़ाइन सिद्धांत कार्यात्मक और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का मिश्रण प्रदान करते हैं, जिससे यह डेवलपर्स के लिए एक बहुपरकारी विकल्प बनता है। कोटलिन विशेष रूप से एंड्रॉइड पारिस्थितिकी तंत्र में मजबूत है, लेकिन यह बैकएंड विकास (Ktor और Spring जैसे फ्रेमवर्क का उपयोग करके), क्रॉस-प्लेटफ़ॉर्म मोबाइल विकास (कोटलिन मल्टीप्लेटफ़ॉर्म मोबाइल के साथ), और यहां तक कि डेस्कटॉप और वेब अनुप्रयोगों में भी अनुप्रयोग खोज रहा है।
कोटलिन स्वाभाविक रूप से नल सुरक्षा का समर्थन करता है, जिससे नल पॉइंटर एक्सेप्शन की संभावना कम हो जाती है। यह नल और गैर-नल प्रकारों के माध्यम से प्राप्त किया जाता है।
var nonNullString: String = "Hello"
var nullableString: String? = null
कोटलिन में शक्तिशाली प्रकार अनुमान है, जो संकलक को संदर्भ से प्रकारों का अनुमान लगाने की अनुमति देता है, जिससे कोड की लंबाई कम होती है।
val number = 42 // स्वचालित रूप से Int के रूप में अनुमानित
val message = "Hello, Kotlin!" // स्वचालित रूप से String के रूप में अनुमानित
कोटलिन डेटा क्लासेस के साथ क्लास निर्माण को सरल बनाता है, जो स्वचालित रूप से equals
, hashCode
, toString
, और copy
विधियों को उत्पन्न करता है।
data class User(val name: String, val age: Int)
कोटलिन मौजूदा क्लासेस में नए फ़ंक्शंस जोड़ने की अनुमति देता है बिना उनके स्रोत कोड को संशोधित किए।
fun String.addExclamation(): String {
return this + "!"
}
val excited = "Hello".addExclamation() // "Hello!"
कोटलिन उच्च-क्रम फ़ंक्शंस का समर्थन करता है, जिससे फ़ंक्शंस को पैरामीटर के रूप में पास किया जा सकता है।
fun performOperation(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
val sum = performOperation(2, 3, { x, y -> x + y }) // 5 लौटाता है
कोटलिन के कोरूटीन असिंक्रोनस प्रोग्रामिंग को सरल बनाते हैं, जिससे डेवलपर्स को अनुक्रमिक शैली में नॉन-ब्लॉकिंग कोड लिखने की अनुमति मिलती है।
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}
कोटलिन साथी वस्तुओं का समर्थन करता है, जो स्थैतिक विधियों और गुणों की अनुमति देता है बिना स्थैतिक कीवर्ड की आवश्यकता के।
class Factory {
companion object {
fun create(): Factory {
return Factory()
}
}
}
val factory = Factory.create()
सील क्लासेस प्रकार की श्रेणियों को बढ़ाती हैं, क्लास विरासत को प्रतिबंधित करके, प्रतिबंधित क्लास श्रेणियों का प्रतिनिधित्व करने का एक तरीका प्रदान करती हैं।
sealed class Result
data class Success(val data: String) : Result()
data class Error(val exception: Exception) : Result()
कोटलिन डिफ़ॉल्ट पैरामीटर मानों की अनुमति देता है और नामित तर्कों को सक्षम करता है, जिससे फ़ंक्शन कॉल अधिक पठनीय और लचीले होते हैं।
fun greet(name: String = "Guest") {
println("Hello, $name")
}
greet() // Hello, Guest
greet("Alice") // Hello, Alice
कोटलिन ऑपरेटर ओवरलोडिंग का समर्थन करता है, जिससे डेवलपर्स को वस्तुओं पर संचालन के लिए कस्टम व्यवहार परिभाषित करने की अनुमति मिलती है।
data class Point(val x: Int, val y: Int) {
operator fun plus(other: Point) = Point(x + other.x, y + other.y)
}
कोटलिन JVM बाइटकोड, जावा स्क्रिप्ट, या नेटिव बाइनरी में संकलित होता है, जिससे डेवलपर्स को अपने प्रोजेक्ट्स के लिए सबसे उपयुक्त प्लेटफ़ॉर्म चुनने की अनुमति मिलती है। कोटलिन संकलक को कमांड लाइन के माध्यम से बुलाया जा सकता है, और यह इंटेलीज आईडीईए और एंड्रॉइड स्टूडियो के साथ सहजता से एकीकृत होता है।
कोटलिन विकास के लिए लोकप्रिय IDEs में शामिल हैं:
कोटलिन प्रोजेक्ट्स के निर्माण के लिए, ग्रेडल पसंदीदा निर्माण उपकरण है, जो निर्माण स्क्रिप्ट के लिए कोटलिन DSL का उपयोग करता है ताकि अधिक अभिव्यक्तिशील सिंटैक्स मिल सके।
plugins {
kotlin("jvm") version "1.5.31"
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib")
}
कोटलिन विभिन्न क्षेत्रों में व्यापक रूप से उपयोग किया जाता है, जिसमें शामिल हैं:
कोटलिन कई प्रोग्रामिंग भाषाओं के साथ समानताएँ साझा करता है, जिससे इसकी तुलना करना आसान हो जाता है:
कोटलिन के पास कुछ अन्य भाषाओं की तरह विशिष्ट व्यापक स्रोत से स्रोत अनुवाद उपकरण नहीं हैं, लेकिन कुछ उपकरण हैं जो कोटलिन कोड को कोटलिन/JS के माध्यम से जावास्क्रिप्ट में अनुवाद करने का समर्थन करते हैं। इसके अलावा, जावा को कोटलिन में परिवर्तित करने के लिए, जेटब्रेन इंटेलीज आईडीईए में इस प्रक्रिया को सुगम बनाने के लिए अंतर्निहित उपकरण प्रदान करता है, जिससे जावा से कोटलिन में संक्रमण करना विशेष रूप से उपयोगी होता है, जो मौजूदा जावा प्रोजेक्ट्स के लिए सहायक है।