डार्ट एक सामान्य-उद्देश्य प्रोग्रामिंग भाषा है जिसे गूगल द्वारा विकसित किया गया है, जो वेब, सर्वर, डेस्कटॉप और मोबाइल अनुप्रयोगों के निर्माण के लिए डिज़ाइन की गई है। डार्ट एक संरचित प्रोग्रामिंग दृष्टिकोण पर जोर देता है, जो जस्ट-इन-टाइम (JIT) और एहेड-ऑफ-टाइम (AOT) संकलन का समर्थन करने वाली सुविधाएँ प्रदान करता है, जिससे यह विकास और उत्पादन दोनों वातावरणों के लिए कुशल बनता है। इसकी आधुनिक सिंटैक्स और समवर्ती सुविधाएँ, जैसे कि फ्यूचर्स और स्ट्रीम के साथ असिंक्रोनस प्रोग्रामिंग, इसे फ्लटर फ्रेमवर्क के साथ उपयोगकर्ता इंटरफेस विकसित करने के लिए विशेष रूप से लोकप्रिय बना दिया है, जो डेवलपर्स को मूल रूप से संकलित अनुप्रयोग बनाने की अनुमति देता है।
डार्ट को मूल रूप से 2011 में एक भाषा के रूप में पेश किया गया था जिसका उद्देश्य जावास्क्रिप्ट में सुधार करना था, विशेष रूप से वेब अनुप्रयोगों के लिए। इस भाषा को जावास्क्रिप्ट में प्रचलित समस्याओं को हल करने के लिए डिज़ाइन किया गया था, जैसे कि इसकी गतिशील टाइपिंग और बड़े पैमाने पर अनुप्रयोगों में प्रदर्शन। डार्ट की सिंटैक्स जावा और C# जैसी भाषाओं से मिलती-जुलती है, जिससे इन भाषाओं से परिचित डेवलपर्स के लिए इसे अपनाना अपेक्षाकृत आसान हो जाता है।
डार्ट का डिज़ाइन विभिन्न प्रोग्रामिंग भाषाओं जैसे जावा, जावास्क्रिप्ट, C#, और स्विफ्ट से प्रभावित था। इसका फ्लटर फ्रेमवर्क के साथ मजबूत संबंध है, जो डार्ट के पारिस्थितिकी तंत्र में सबसे महत्वपूर्ण विकासों में से एक है। 2017 में क्रॉस-प्लेटफ़ॉर्म मोबाइल UI टूलकिट के रूप में फ्लटर के परिचय ने डार्ट की लोकप्रियता को बढ़ाया, जिससे मोबाइल अनुप्रयोग विकास के लिए इसके अपनाने में वृद्धि हुई।
2023 तक, डार्ट नियमित अपडेट के साथ विकसित होता रहा है। इसे न केवल फ्लटर के माध्यम से मोबाइल अनुप्रयोगों के लिए, बल्कि एंगुलरडार्ट जैसे फ्रेमवर्क के साथ वेब विकास के लिए भी अपनाया गया है। डार्ट के चारों ओर समुदाय भी बढ़ा है, जिसे गूगल और विभिन्न तृतीय-पक्ष संसाधनों, ट्यूटोरियल्स, और पुस्तकालयों द्वारा समर्थन प्राप्त है।
डार्ट मजबूत टाइपिंग का समर्थन करता है, जिसका अर्थ है कि चर प्रकारों की जांच संकलन के समय की जाती है, लेकिन यह टाइप इनफेरेंस भी प्रदान करता है, जिससे संकलक प्रकारों का अनुमान लगा सकता है।
var name = "Dart"; // प्रकार का अनुमान लगाया गया है कि यह String है
String greeting = "Hello, $name";
डार्ट में async
और await
के माध्यम से असिंक्रोनस प्रोग्रामिंग के लिए अंतर्निहित समर्थन है, जिससे डेवलपर्स को गैर-ब्लॉकिंग कोड लिखना आसान हो जाता है।
Future<String> fetchData() async {
return await Future.delayed(Duration(seconds: 2), () => 'Data fetched');
}
डार्ट ने ध्वनि नल सुरक्षा पेश की, जो नल संदर्भ त्रुटियों को रोकने में मदद करती है, नल और गैर-नल प्रकारों के बीच भेद करके।
String? nullableName; // यह नल हो सकता है
String nonNullableName = "Non-Nullable"; // यह नल नहीं हो सकता
डार्ट मिक्सिन्स के उपयोग की अनुमति देता है, जो कक्षाओं को कई स्रोतों से कार्यान्वयन विरासत में लेने में सक्षम बनाता है।
mixin CanRun {
void run() {
print('Running');
}
}
class Animal with CanRun {}
एक्सटेंशन मेथड्स डेवलपर्स को मौजूदा पुस्तकालयों या कक्षाओं में नई कार्यक्षमता जोड़ने की अनुमति देते हैं बिना उन्हें संशोधित किए।
extension StringExtensions on String {
bool get isEmptyOrNull => this == null || this.isEmpty;
}
डार्ट फैक्ट्री कंस्ट्रक्टर्स की अनुमति देता है जो एक कक्षा या उपप्रकार का उदाहरण लौटाते हैं, जिससे वस्तु निर्माण प्रक्रिया में लचीलापन मिलता है।
class Point {
final num x, y;
Point(this.x, this.y);
factory Point.origin() {
return Point(0, 0);
}
}
डार्ट एन्यूमरेशन्स का समर्थन करता है, जिससे डेवलपर्स को निश्चित सेट के स्थायी मानों को परिभाषित करने की अनुमति मिलती है।
enum Color { red, green, blue }
डार्ट कक्षाओं में स्थैतिक मेथड्स और प्रॉपर्टीज को परिभाषित करने की अनुमति देता है, जिन्हें कक्षा के उदाहरण को बनाए बिना एक्सेस किया जा सकता है।
class MathUtils {
static int add(int a, int b) => a + b;
}
जनरिक्स कक्षाओं, मेथड्स, और इंटरफेस के निर्माण की अनुमति देते हैं जो किसी भी डेटा प्रकार के साथ काम करते हैं।
class Box<T> {
T value;
Box(this.value);
}
डार्ट स्थिति और नामित वैकल्पिक पैरामीटर्स दोनों का समर्थन करता है, जिससे फ़ंक्शन हस्ताक्षर अधिक लचीले हो जाते हैं।
void greet(String name, [String title = 'Mr.']) {
print('Hello, $title $name');
}
डार्ट मुख्य रूप से डार्ट SDK का उपयोग करता है और विभिन्न IDEs का उपयोग करके विकसित किया जा सकता है। डार्ट के लिए लोकप्रिय IDEs में शामिल हैं:
डार्ट SDK में एक कमांड-लाइन उपकरण, dart
, शामिल है जिसका उपयोग डार्ट अनुप्रयोगों को बनाने, चलाने और निर्माण करने के लिए किया जा सकता है। एक सामान्य प्रोजेक्ट को निम्नलिखित का उपयोग करके प्रारंभ किया जा सकता है:
dart create my_project
डार्ट अनुप्रयोगों को चलाने के लिए, निम्नलिखित कमांड का उपयोग किया जा सकता है:
dart run
डार्ट का सामान्य उपयोग होता है:
डार्ट स्थिर रूप से टाइप की गई है और इसकी सिंटैक्स जावास्क्रिप्ट की गतिशील और प्रोटोटाइप-आधारित प्रकृति की तुलना में अधिक संरचित है। डार्ट की प्रकार सुरक्षा बड़े पैमाने पर अनुप्रयोगों में मदद कर सकती है, जबकि जावास्क्रिप्ट की लचीलापन त्वरित प्रोटोटाइपिंग की पेशकश करती है।
डार्ट और C# में समान सिंटैक्स तत्व हैं, लेकिन डार्ट का पारिस्थितिकी तंत्र मुख्य रूप से फ्लटर के साथ फ्रंट-एंड विकास पर केंद्रित है, जबकि C# का उपयोग एंटरप्राइज अनुप्रयोगों और बैकएंड सेवाओं में ASP.NET जैसे फ्रेमवर्क के साथ व्यापक रूप से किया जाता है।
दोनों भाषाओं में समान सिंटैक्स और ऑब्जेक्ट-ओरिएंटेड सिद्धांत हैं। हालाँकि, डार्ट का ध्यान आधुनिक विकास के पैराज्मों पर है, विशेष रूप से असिंक्रोनस प्रोग्रामिंग और UI-केंद्रित फ्रेमवर्क जैसे फ्लटर, जो इसे जावा की तुलना में मोबाइल और वेब अनुप्रयोगों में एक बढ़त देता है।
हालांकि पायथन डेटा विज्ञान और सामान्य-उद्देश्य प्रोग्रामिंग के लिए अत्यधिक लोकप्रिय है, डार्ट का ध्यान मोबाइल और वेब विकास पर है। डार्ट के प्रदर्शन लाभ, AOT संकलन के कारण, पायथन की व्याख्यायित प्रकृति की तुलना में तेज निष्पादन की ओर ले जा सकते हैं।
डार्ट और गो दोनों को लचीले और कुशल प्रोग्रामिंग के लिए डिज़ाइन किया गया है। हालाँकि, डार्ट फ्लटर के साथ UI विकास में उत्कृष्टता प्राप्त करता है, जबकि गो बैक-एंड सिस्टम और माइक्रोसर्विसेज के लिए अपनी समवर्ती मॉडल और सरलता के कारण पसंद किया जाता है।
डार्ट को अन्य भाषाओं में अनुवाद करने के लिए, dart2js जैसे मौजूदा उपकरणों पर विचार करें जो डार्ट को जावास्क्रिप्ट में परिवर्तित करते हैं या Dart's Fiddle जो स्निपेट्स का परीक्षण करने के लिए है और जो अनुवादों का सुझाव भी दे सकता है। जावा या C# जैसी भाषाओं में अनुवाद करने के लिए, उन भाषा संरचनाओं की तलाश करें जो डार्ट की सुविधाओं के साथ निकटता से मेल खाती हैं, विशेष रूप से ऑब्जेक्ट-ओरिएंटेड संरचनाओं, असिंक्रोनस संचालन, और संग्रहों में।
उपकरण जैसे DartPad भी डार्ट कोड के टुकड़ों का परीक्षण और समझने में मदद करते हैं, जिन्हें फिर अन्य प्रोग्रामिंग भाषाओं की कार्यक्षमताओं के साथ तुलना और मैप किया जा सकता है। जबकि डार्ट के लिए कोई सार्वभौमिक स्रोत से स्रोत अनुवादक नहीं है, विशिष्ट पुस्तकालयों और फ्रेमवर्क्स डार्ट कोड को विभिन्न वातावरणों या प्लेटफार्मों में चलाने के लिए अनुकूलित करने में मदद कर सकते हैं, जैसे कि इसे Node.js में परिवर्तित करना या मौजूदा C# सिस्टम के साथ एकीकृत करना।