- Go programlama dilinde geriye dönük uyumluluğun önemini ele alan makale; Go 1.21'in yeni özelliklerine ve Go 2'nin geleceğine odaklanıyor
- Go 1.21, uyumluluğu iyileştirmeye yönelik yeni özellikler içeriyor; amaç, Go'yu kararlı ve öngörülebilir tutmak ve geliştiricilerin dildeki değişikliklerden çok yaptıkları işe odaklanabilmesini sağlamak
- Go ekibi 10 yıldan uzun süredir uyumluluğa odaklanıyor; Go 1 tanımına göre yazılan programların, bu tanımın ömrü boyunca değişiklik yapılmadan doğru şekilde derlenip çalışacağı yönünde açık bir niyet bulunuyor
- Uyumluluğu korumak için iki ana yaklaşım açıklanıyor: API kontrolleri ve testler. API kontrolleri, mevcut API'lerin kaldırılmamasını veya mevcut kodu bozacak şekilde değiştirilmemesini garanti ediyor. Testler ise mevcut testlerin bir sonraki Go sürümünün geliştirme sürümüne karşı çalıştırılmasını içeriyor
- Google içinde Go test edilirken bulunan incelikli uyumluluk sorunlarına örnekler veriliyor; struct literal'ları ve yeni alanlar, zaman hassasiyeti gibi
- Uyumluluk sorunları üç kategoriye ayrılıyor: çıktı değişiklikleri, girdi değişiklikleri ve protokol değişiklikleri
- Go 1.21, geriye dönük uyumluluğu artırmak için
GODEBUG kullanımını genişletip resmileştiriyor. GODEBUG ayarları en az iki yıl boyunca korunuyor ve ana paketin go.mod dosyasında listelenen Go sürümüyle eşleşecek şekilde ayarlanıyor
- Makale, Go 2 ile ilgili bir güncellemeyle sona eriyor ve Go 1 programlarını bozacak bir Go 2 olmayacağı duyuruluyor. Bunun yerine Go ekibi uyumluluğa öncelik verecek; bunun da Go 1 için alınan en önemli tasarım kararı olduğuna inanıyor
1 yorum
Hacker News görüşü
gotoolchain’lerini otomatik olarak getiren modül başına toolchain sürümü.