Kotlin सिर्फ "JVM के लिए एक और भाषा" क्यों नहीं है?
\n\nजब 2016 में JetBrains ने Kotlin जारी किया, तो कुछ ही लोग अनुमान लगा सकते थे कि कुछ वर्षों में यह भाषा Android-डेवलपमेंट के लिए मानक और बैकएंड की दुनिया में सिंहासन के प्रमुख दावेदारों में से एक बन जाएगी। आज Kotlin सिर्फ Java पर सिंटैक्टिक शुगर नहीं है। यह एक शक्तिशाली इकोसिस्टम है, जहाँ प्रत्येक लाइब्रेरी एक विशिष्ट कार्य को सुरुचिपूर्ण ढंग से और न्यूनतम बॉयलरप्लेट के साथ हल करती है।
\n\nइस लेख में, हम सबसे लोकप्रिय Kotlin लाइब्रेरीज़ पर चर्चा करेंगे जो वास्तव में डेवलपर के जीवन को आसान बनाती हैं। हम सब कुछ सूचीबद्ध नहीं करेंगे - केवल वही जो अभी सीखने लायक है। चलिए शुरू करते हैं!
\n\n1. Ktor - आपका नया HTTP-क्लाइंट और सर्वर
\n\nयदि आप एक हल्का, एसिंक्रोनस और पूरी तरह से कॉन्फ़िगरेबल HTTP-क्लाइंट (या सर्वर भी) ढूंढ रहे हैं - तो Ktor आपका सबसे अच्छा दोस्त बन जाएगा। भारी-भरकम Spring Boot के विपरीत, Ktor आर्किटेक्चर नहीं थोपता। आप स्वयं तय करते हैं कि कौन से मॉड्यूल कनेक्ट करने हैं।
\n\nउदाहरण: डेटा प्राप्त करने के लिए HTTP-क्लाइंट
\n\nimport io.ktor.client.*\nimport io.ktor.client.engine.cio.*\nimport io.ktor.client.request.*\nimport io.ktor.client.statement.*\n\nsuspend fun main() {\n val client = HttpClient(CIO)\n val response: HttpResponse = client.get("https://api.github.com/repos/jetbrains/kotlin")\n println("स्टेटस: ${response.status}")\n println("बॉडी: ${response.bodyAsText()}")\n client.close()\n}\n\n\nKtor सीरियलाइज़ेशन, कंप्रेशन, लॉगिंग और ऑथेंटिकेशन के लिए प्लगइन्स को सपोर्ट करता है। यह नेटवर्किंग के लिए सबसे लोकप्रिय Kotlin लाइब्रेरीज़ में से एक है।
\n\n2. Kotlinx.serialization - बिना दर्द के सीरियलाइज़ेशन
\n\nGson और Jackson को भूल जाइए। Kotlinx.serialization रिफ्लेक्शन के बजाय कंपाइलर स्तर पर काम करता है। यह प्रदर्शन में वृद्धि और पूर्ण टाइप-सुरक्षा प्रदान करता है।
\n\nउदाहरण: data क्लास का JSON में सीरियलाइज़ेशन
\n\nimport kotlinx.serialization.*\nimport kotlinx.serialization.json.*\n\n@Serializable\ndata class User(val name: String, val age: Int)\n\nfun main() {\n val user = User("अन्ना", 28)\n val jsonString = Json.encodeToString(user)\n println(jsonString) // {"name":"अन्ना","age":28}\n\n val decoded = Json.decodeFromString<User>(jsonString)\n println(decoded) // User(name=अन्ना, age=28)\n}\n\n\nलाइब्रेरी पॉलीमॉर्फिज़्म, कस्टम सीरियलाइज़र और JSON, XML, CBOR और यहाँ तक कि YAML के साथ काम करने का समर्थन करती है। यह किसी भी Kotlin-प्रोजेक्ट के लिए must-have है।
\n\n3. Koin - बिना जादू के डिपेंडेंसी इंजेक्शन
\n\nDagger? Hilt? भारी, बहुत कोड। Koin DI के लिए एक सरल DSL प्रदान करता है, जो शुद्ध Kotlin में लिखा गया है। कोई कोड जनरेशन नहीं, कोई एनोटेशन नहीं - केवल फंक्शन।
\n\nउदाहरण: सरल मॉड्यूल और इंजेक्शन
\n\nimport org.koin.core.context.startKoin\nimport org.koin.dsl.module\nimport org.koin.core.component.KoinComponent\nimport org.koin.core.component.inject\n\nclass Repository\nclass Service(private val repo: Repository) {\n fun doWork() = "${repo} के साथ काम कर रहा हूँ"\n}\n\nval myModule = module {\n single { Repository() }\n factory { Service(get()) }\n}\n\nfun main() {\n startKoin { modules(myModule) }\n val service: Service = object : KoinComponent {}.inject()\n println(service.doWork())\n}\n\n\nKoin मध्यम और छोटे प्रोजेक्ट्स के लिए आदर्श है, जहाँ जटिलता के लिए अधिक भुगतान नहीं करना चाहते।
\n\n4. Exposed - ORM उन लोगों के लिए जो ORM पसंद नहीं करते
\n\nअधिकांश ORM SQL को छिपाते हैं, लेकिन Exposed अलग तरह से काम करता है: यह SQL के करीब रहता है, लेकिन Kotlin पर एक सुविधाजनक DSL प्रदान करता है। आप Kotlin में लिखते हैं, और ऑटो-कम्प्लीशन के साथ शुद्ध SQL प्राप्त करते हैं।
\n\nउदाहरण: तालिका बनाना और क्वेरी
\n\nimport org.jetbrains.exposed.sql.*\nimport org.jetbrains.exposed.sql.transactions.transaction\n\nobject Users : Table() {\n val id = integer("id").autoIncrement()\n val name = varchar("name", 50)\