गो-भाषा: कैसे Google का एक साधारण प्रोजेक्ट प्रोग्रामिंग का सितारा बन गया

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

गो-भाषा: कैसे Google का एक साधारण प्रोजेक्ट प्रोग्रामिंग का सितारा बन गया

\n\n

जब 2009 में Google ने दुनिया के सामने Go नामक एक नई प्रोग्रामिंग भाषा पेश की, तो बहुत कम लोगों ने कल्पना की होगी कि यह "साधारण प्रयोग" डेवलपमेंट की दुनिया में सबसे अधिक मांग वाले टूल में से एक बन जाएगा। आज Go (या Golang, जैसा कि समुदाय में इसे प्यार से बुलाया जाता है) TIOBE और Stack Overflow के अनुसार शीर्ष 10 भाषाओं में मजबूती से शामिल है। Docker, Kubernetes, Terraform, Prometheus - ये सभी प्रसिद्ध प्रोजेक्ट Go में लिखे गए हैं। Go क्यों लोकप्रिय है? और किस बात ने Google के इंजीनियरों को एक और भाषा बनाने के लिए मजबूर किया, जबकि पहले से C++, Java और Python मौजूद थे? आइए समझते हैं।

\n\n

संक्षिप्त इतिहास: Gopher का जन्म

\n\n

Go की कहानी 2007 में Google कंपनी के भीतर शुरू हुई। रॉबर्ट ग्रिज़मर, रॉब पाइक और केन थॉम्पसन (हाँ, वही केन थॉम्पसन, Unix और B भाषा के निर्माता) मौजूदा टूल से निराश थे। उन्होंने जो मुख्य समस्याएं देखीं:

\n\n
    \n
  • धीमी कंपाइलेशन — C++ पर बड़े प्रोजेक्ट घंटों में कंपाइल होते थे।
  • \n
  • डिपेंडेंसी प्रबंधन की जटिलता — क्लासिक "डिपेंडेंसी हेल" (निर्भरता का अड्डा)।
  • \n
  • कंकरेंसी के लिए अंतर्निहित समर्थन का अभाव — जबकि मल्टी-कोर प्रोसेसर पहले से ही आम हो चुके थे।
  • \n
  • भारी सिंटैक्स — विशेष रूप से C++ और Java में।
  • \n
\n\n

2009 में भाषा को जनता के सामने पेश किया गया, और 2012 में स्थिर संस्करण 1.0 जारी हुआ। तब से Go विकासवादी रूप से विकसित हो रहा है, बैकवर्ड कम्पैटिबिलिटी (पिछली संगतता) बनाए रखते हुए - प्रोग्रामिंग की दुनिया में एक दुर्लभ गुण।

\n\n

Go क्यों लोकप्रिय है: 5 प्रमुख कारण

\n\n

1. सरलता और पठनीयता

\n\n

Go को एक ऐसी भाषा के रूप में बनाया गया था जिसे एक सप्ताहांत में सीखा जा सके। इसमें क्लासेस, इनहेरिटेंस, C++ शैली के टेम्पलेट और ऑपरेटर ओवरलोडिंग नहीं है। सब कुछ अत्यंत संक्षिप्त है। यहाँ Go पर एक सरल HTTP सर्वर का उदाहरण है:

\n\n
package main\n\nimport (\n    "fmt"\n    "net/http"\n)\n\nfunc main() {\n    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {\n        fmt.Fprintf(w, "नमस्ते, PythonLib!")\n    })\n    http.ListenAndServe(":8080", nil)\n}\n
\n\n

Java या C# पर समान कोड से तुलना करें - कोड की मात्रा में अंतर स्पष्ट है। साथ ही Go स्वाभाविक रूप से पढ़ा जाता है: कोई अतिरिक्त कोष्ठक नहीं, सेमीकोलन वैकल्पिक हैं, और फ़ॉर्मेटिंग gofmt उपयोगिता द्वारा मानकीकृत है।

\n\n

2. अंतर्निहित कंकरेंसी

\n\n

यह शायद मुख्य कारण है कि Go उच्च-लोड सिस्टम के डेवलपर्स के बीच लोकप्रिय क्यों है। Go में गोरूटीन (goroutines) हैं - हल्के थ्रेड जो सरल कीवर्ड go से शुरू होते हैं:

\n\n
package main\n\nimport (\n    "fmt"\n    "time"\n)\n\nfunc worker(id int) {\n    for i := 0; i < 5; i++ {\n        fmt.Printf("कार्यकर्ता %d: पुनरावृत्ति %d\\n", id, i)\n        time.Sleep(time.Millisecond * 100)\n    }\n}\n\nfunc main() {\n    // 3 गोरूटीन शुरू करें\n    for i := 1; i <= 3; i++ {\n        go worker(i)\n    }\n\n    // गोरूटीन को पूरा होने का समय दें\n    time.Sleep(time.Second)\n}\n
\n\n

गोरूटीन सिस्टम थ्रेड की तुलना में बहुत कम मेमोरी का उपयोग करते हैं (1 MB के मुकाबले 2 KB से शुरू), और एक कोर पर कुशलतापूर्वक काम कर सकते हैं। डेटा सिंक्रोनाइज़ेशन के लिए चैनल (channels) के साथ मिलकर, यह समानांतर गणना के लिए एक शक्तिशाली और सुरक्षित उपकरण प्रदान करता है।

\n\n

3. तेज़ कंपाइलेशन और प्रदर्शन

\n\n

Go नेटिव मशीन कोड में कंपाइल होता है, और वह भी बहुत तेज़ी से। एक सामान्य प्रोजेक्ट मिनटों के बजाय सेकंड में कंपाइल हो जाता है। साथ ही कंपाइल किए गए कोड का प्रदर्शन C/C++ के करीब होता है - आमतौर पर संदर्भ के 10-20% के भीतर। तुलना के लिए, Python या Ruby दसियों गुना धीमी हो सकती हैं।

\n\n

यह Go को इसके लिए आदर्श विकल्प बनाता है:

\n
    \n
  • नेटवर्क सेवाएं और API
  • \n
  • कमांड लाइन टूल (CLI)
  • \n
  • रीयल-टाइम डेटा प्रोसेसर
  • \n
  • सिस्टम उपयोगिताएँ
  • \n
\n\n

4. अंतर्निहित टेस्टिंग समर्थन और टूलकिट

ब्लॉग

पुस्तक अनुशंसाएँ