- Go programming language में backward compatibility के महत्व पर लेख, जिसमें Go 1.21 की नई सुविधाओं और Go 2 के भविष्य पर फोकस है
- Go 1.21 में compatibility सुधारने के लिए नई सुविधाएँ शामिल हैं, ताकि Go स्थिर और पूर्वानुमेय बना रहे और डेवलपर्स भाषा के बदलावों की बजाय अपने काम पर ध्यान दे सकें
- Go टीम 10 साल से अधिक समय से compatibility पर केंद्रित है, और Go 1 specification के अनुसार लिखे गए प्रोग्राम उस specification की पूरी अवधि तक बिना बदलाव के सही तरह compile और run होंगे, यही स्पष्ट उद्देश्य है
- compatibility बनाए रखने के लिए दो मुख्य तरीकों की व्याख्या: API check और testing. API check यह सुनिश्चित करता है कि मौजूदा API हटाए न जाएँ या ऐसे न बदले जाएँ कि पुराना code टूट जाए. Testing में अगले Go release के development version पर मौजूदा tests चलाना शामिल है
- Google के अंदर Go को test करके पाए गए सूक्ष्म compatibility issues के उदाहरण दिए गए हैं, जैसे struct literal और नए fields, time precision आदि
- compatibility issues को तीन श्रेणियों में बाँटा गया है: output changes, input changes, और protocol changes
- Go 1.21, GODEBUG के उपयोग को विस्तारित और औपचारिक बनाकर backward compatibility को बेहतर करता है. GODEBUG settings कम से कम दो साल तक बनाए रखी जाती हैं और main package की
go.mod file में सूचीबद्ध Go version के अनुरूप सेट की जाती हैं
- लेख का समापन Go 2 पर अपडेट के साथ होता है: ऐसा कोई Go 2 नहीं होगा जो Go 1 programs को तोड़े. इसके बजाय Go टीम compatibility को प्राथमिकता देती रहेगी, और उसका मानना है कि यह Go 1 के लिए लिया गया सबसे महत्वपूर्ण design decision है
1 टिप्पणियां
Hacker News राय