बहुप्रतीक्षित गो 1.18 प्रोग्रामिंग लैंग्वेज को आखिरकार प्रोडक्शन रिलीज़ के रूप में लॉन्च किया गया है, जिसमें इसकी ज़बरदस्त जेनरिक क्षमताएँ हैं। यह 2012 में गो 1.0 के शुरुआती लॉन्च के बाद से गो प्रोग्रामिंग लैंग्वेज में सबसे महत्वपूर्ण बदलाव है। गो 1.18 को 15 मार्च तक go.dev पर डाउनलोड किया जा सकता है।
गो प्रोग्रामर्स द्वारा जेनरिक सबसे अनुरोधित विशेषता रही है, जो पैरामीटरयुक्त प्रकारों का उपयोग करके जेनेरिक कोड के लिए समर्थन की पेशकश करती है। अधिक जटिल सामान्य उपयोग के मामलों के लिए आगे की सहायता प्रदान करने के लिए बाद की रिलीज़ की योजना बनाई गई है। उपयोगकर्ता एक जेनरिक ट्यूटोरियल और रिलीज़ नोट्स के माध्यम से इस सुविधा के बारे में जानकारी प्राप्त कर सकते हैं।
गो लैंग्वेज सर्वर, gopls, विज़ुअल स्टूडियो कोड गो एक्सटेंशन के साथ, अब जेनरिक का समर्थन करता है। जेनरिक के साथ gopls इंस्टॉल करने के निर्देशों के लिए, दस्तावेज़ीकरण देखें।
Go 1.18 प्रोडक्शन रिलीज़ अपने बीटा और रिलीज़ उम्मीदवार चरणों का अनुसरण करता है। प्रारंभिक रिलीज फरवरी 2022 के लिए प्रत्याशित थी लेकिन मार्च के मध्य तक देरी हो गई थी। गो 1.18 बीटा 1, जो 14 दिसंबर को शुरू हुआ, पैरामीटरयुक्त प्रकारों का उपयोग करके सामान्य कोड का समर्थन करने के लिए Google द्वारा विकसित ओपन-सोर्स भाषा का सबसे प्रमुख पूर्वावलोकन रिलीज़ था। यह बीटा संस्करण अब तक का सबसे अधिक डाउनलोड किया जाने वाला गो बीटा भी था, जिसमें किसी भी पिछले बीटा रिलीज़ की तुलना में दोगुने डाउनलोड थे।
जेनेरिक प्रोग्रामिंग एक एन्हांसमेंट है जो कार्यों और डेटा संरचनाओं के प्रतिनिधित्व को एक सामान्य रूप में प्रस्तुत करने की अनुमति देता है जिसमें प्रकार को फैक्टर आउट किया जाता है। यह कोड साझा करने की सुविधा प्रदान करता है और कार्यक्रमों के निर्माण को सरल करता है।
गो टीम ने नई जेनरिक क्षमताओं के करीब पहुंचने पर सावधानी बरतने की सलाह दी, क्योंकि किसी भी महत्वपूर्ण नई सुविधा के साथ नए बग सतह पर आ सकते हैं। इसके अलावा, विशिष्ट सूक्ष्म मामलों के लिए समर्थन, जैसे कुछ प्रकार के पुनरावर्ती सामान्य प्रकार, को भविष्य के रिलीज के लिए स्थगित कर दिया गया है।
इस चेतावनी के बावजूद, शुरुआती अपनाने वाले कथित तौर पर नई सुविधा से संतुष्ट हैं। जेनरिक के साथ आरंभ करने पर एक संक्षिप्त ट्यूटोरियल यहां प्रकाशित किया गया है। जबकि गो के पास इंटरफ़ेस प्रकार थे, सामान्य प्रोग्रामिंग का एक रूप, इसमें कुछ ऐसे पहलुओं का अभाव था जो गो डेवलपर्स जेनरिक से चाहते थे, जैसा कि जुलाई 2019 के ब्लॉग पोस्ट में बताया गया है। उदाहरण के लिए, गो जेनरिक समर्थकों ने स्लाइस के तत्व प्रकार के लिए बिना किसी चिंता के रिवर्स जैसे कार्यों की मांग की।
गो 1.18 के लिए जारी नोट इसकी अन्य प्रमुख विशेषताओं पर भी प्रकाश डालते हैं, जैसे:
- किसी प्रोग्राम को क्रैश करने या अमान्य उत्तरों को वापस करने के कारण इनपुट की पहचान करने के लिए फ़ज़िंग-आधारित परीक्षण लिखने के लिए अंतर्निहित समर्थन। यह सुविधा गो 1.18 में प्रायोगिक है।
- एक गो कार्यक्षेत्र मोड डेवलपर्स को एक साथ कई गो मॉड्यूल के साथ काम करने में सक्षम बनाता है, जो अधिक व्यापक परियोजनाओं के लिए आवश्यक है।
- एक उन्नत गो संस्करण-एम कमांड जो अब बिल्ड विवरण रिकॉर्ड करता है, जैसे संकलक झंडे।
- एक GOAMD64 पर्यावरण चर जो उपयोगकर्ताओं को AMD64 आर्किटेक्चर के चार संस्करणों में से चुनने की अनुमति देता है।
- Apple M1, ARM64, और PowerPC64 पर CPU प्रदर्शन में 20% तक सुधार, Go 1.17 रजिस्टर ABI कॉलिंग कन्वेंशन के इन आर्किटेक्चर के विस्तार के कारण।
- Windows/Arm और Windows/Arm64 पोर्ट्स अब गैर-सहयोगी पूर्व-उत्सर्जन का समर्थन करते हैं, जिससे यह क्षमता सभी चार विंडोज़ पोर्ट्स के लिए उपलब्ध हो जाती है और Win32 फ़ंक्शंस में कॉल करने पर संभावित रूप से सूक्ष्म बग्स को संबोधित करते हैं जो विस्तारित अवधि के लिए ब्लॉक हो जाते हैं।
- कचरा संग्रह की आवृत्ति निर्धारित करते समय इन स्रोतों को शामिल करने के कारण जीसी कार्य के गैर-ढेर स्रोत महत्वपूर्ण होने पर अधिक अनुमानित कचरा संग्रह ओवरहेड।
जाओ 1.17 अगस्त में जारी किया गया था। गो को डॉकटर कंटेनर सिस्टम के विकास में इसके उपयोग के लिए सबसे अच्छी तरह से जाना जाता है और इसे समवर्ती के लिए मजबूत समर्थन के साथ एक सरल, आसानी से सीखने वाली प्रोग्रामिंग भाषा के रूप में डिजाइन किया गया था। उन डेवलपर्स के लिए जो वेब, मोबाइल और बैकएंड एप्लिकेशन बनाने के लिए AppMaster के प्लेटफॉर्म जैसे no-code समाधानों का पता लगाना चाहते हैं, यह तकनीकी ऋण को समाप्त करते हुए एप्लिकेशन विकास को गति देने और लागत कम करने में मदद कर सकता है।