Go: क्रॉस-प्लेटफ़ॉर्म डेवलपमेंट का हथियार जिसे आपने नहीं सराहा

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

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

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

Go: "मेरे पास चल रहा है" को भूलें और दुनिया जीतना शुरू करें

\n\n

क्या आपने कभी Python में एक शानदार स्क्रिप्ट लिखी, इसे Windows पर अपने दोस्त को भेजा, और उसने जवाब दिया: "यह मेरे पास नहीं चल रहा, Python इंस्टॉल नहीं है"? परिचित लगता है? निर्भरताओं, वर्चुअल एनवायरनमेंट और इंटरप्रेटर वर्ज़न के नरक में आपका स्वागत है। अब कल्पना करें: आपने एक बार कोड लिखा, एक बटन दबाया — और आपको एक बाइनरी मिली जो Windows, Linux और macOS पर बिना कुछ इंस्टॉल किए चलती है। Python के बिना, Node के बिना, JVM के बिना।

\n\n

यह कल्पना नहीं है। यह Go पर क्रॉस-प्लेटफ़ॉर्म डेवलपमेंट है — एक ऐसी भाषा जो इन्हीं समस्याओं को हल करने के लिए बनाई गई थी। यदि आप Python में लिखते हैं और निर्भरताओं के आसपास नाचते-नाचते थक गए हैं, या यदि आप तेज़ और पोर्टेबल उपयोगिताएँ बनाने के लिए एक उपकरण ढूंढ रहे हैं — तो Go आपका नया सबसे अच्छा दोस्त बन जाएगा। इस लेख में हम बेकार की बातें नहीं करेंगे। हम वास्तविक उदाहरण देखेंगे, कोड दिखाएँगे और बताएँगे कि कैसे अपने प्रोग्राम को हर जगह चलाएँ जहाँ प्रोसेसर है।

\n\n

Go क्रॉस-प्लेटफ़ॉर्म के लिए आदर्श विकल्प क्यों है?

\n\n

Golang क्रॉस-प्लेटफ़ॉर्म की दुनिया में, यह कोई सुविधा नहीं, बल्कि एक नींव है। Python के विपरीत, जिसे इंटरप्रेटर की आवश्यकता होती है, या Java, जिसे वर्चुअल मशीन की आवश्यकता होती है, Go नेटिव मशीन कोड में कंपाइल होता है। इसका मतलब है कि आपकी बाइनरी में काम करने के लिए सब कुछ शामिल है: रनटाइम, गार्बेज कलेक्टर और आपका कोड। कोई बाहरी लाइब्रेरी नहीं, कोई "pip install" नहीं। डाउनलोड करें और चलाएँ।

\n\n

लेकिन मुख्य बात है Go क्रॉस-कंपाइलेशन। आप MacBook पर बैठे हैं, कोड लिखते हैं, और फिर एक कमांड से Windows, Linux, Raspberry Pi (ARM) या प्राचीन FreeBSD के लिए एक्ज़ीक्यूटेबल फ़ाइल बनाते हैं। बिल्ड के लिए आपको वर्चुअल मशीन या Docker की आवश्यकता नहीं है। एक एनवायरनमेंट वेरिएबल — और हो गया।

\n\n

Python डेवलपर के लिए यह जादू जैसा लगता है, लेकिन यह सिर्फ Go है। चलिए अभ्यास की ओर बढ़ते हैं।

\n\n

Go में क्रॉस-प्लेटफ़ॉर्म उपयोगिता लिखना

\n\n

मान लीजिए हमें एक सरल लेकिन उपयोगी प्रोग्राम लिखना है: यह सिस्टम के बारे में जानकारी (OS, आर्किटेक्चर, होस्टनाम) एकत्र करेगा और इसे JSON फ़ाइल में सहेजेगा। यह DevOps या सिस्टम एडमिनिस्ट्रेटर के लिए एक क्लासिक कार्य है। Python में आप platform और json खींचते, लेकिन Go में यह और भी सुंदर दिखता है।

\n\n

चरण 1: संरचना और इम्पोर्ट

\n\n

main.go फ़ाइल बनाएँ। पहला काम हम डेटा संरचना को परिभाषित करेंगे और सिस्टम जानकारी प्राप्त करने के लिए runtime और os पैकेज का उपयोग करेंगे। ध्यान दें: runtime.GOOS और runtime.GOARCH बिल्ट-इन कॉन्स्टेंट हैं जिन्हें Go कंपाइलेशन के समय ही जानता है।

\n\n
package main\n\nimport (\n    "encoding/json"\n    "fmt"\n    "os"\n    "runtime"\n)\n\ntype SystemInfo struct {\n    OS         string `json:"os"`\n    Arch       string `json:"arch"`\n    Hostname   string `json:"hostname"`\n    GoVersion  string `json:"go_version"`\n}
\n\n

चरण 2: जानकारी एकत्र करना

\n\n

अब हम एक फ़ंक्शन लिखेंगे जो डेटा एकत्र करता है। हम os.Hostname() का उपयोग करते हैं — यह क्रॉस-प्लेटफ़ॉर्म है और सभी सिस्टम पर काम करता है।

\n\n
func getSystemInfo() (SystemInfo, error) {\n    hostname, err := os.Hostname()\n    if err != nil {\n        return SystemInfo{}, fmt.Errorf("होस्टनाम प्राप्त करने में त्रुटि: %w", err)\n    }\n\n    return SystemInfo{\n        OS:        runtime.GOOS,\n        Arch:      runtime.GOARCH,\n        Hostname:  hostname,\n        GoVersion: runtime.Version(),\n    }, nil\n}
\n\n

चरण 3: JSON में लिखना

\n\n

अपने प्रोग्राम को पूरा करें: जानकारी प्राप्त करें, JSON में एनकोड करें और फ़ाइल में लिखें। हम त्रुटि हैंडलिंग भी जोड़ेंगे — यह Go पर क्रॉस-प्लेटफ़ॉर्म डेवलपमेंट में अच्छा अभ्यास है, क्योंकि फ़ाइल पथ विभिन्न OS में भिन्न होते हैं।

\n\n
func main() {\n    info, err := getSystemInfo()\n    if err != nil {\n        fmt.Printf("त्रुटि: %v\\n", err)\n        os.Exit(1)\n    }\n\n                

ब्लॉग

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