Go dilinin açık kaynak proje olarak yayımlanışının 14. yılı vesilesiyle
- Go dilinin ortak yaratıcılarından biri, 10 Kasım 2023'te Sidney'de düzenlenen GopherConAU konferansında son konuşmasını yaptı.
- Konuşmada, Go dilinin açık kaynak bir proje olarak yayımlanmasının 14. yılı anılırken, bu süre boyunca elde edilen başarılar ve üzerinde düşünülmesi gereken noktalar ele alındı.
- Konuşmacı, Go ekibini ya da Google'ı temsilen değil, kişisel görüşlerini paylaştığını belirtti ve Go dilinin başarısına katkıda bulunan topluluğa teşekkür etti.
Go dilinin başarı etkenleri ve iyileştirme alanları
- Go dilinin başlangıçtaki hedefi yeni bir programlama dili yapmak değil, yazılım geliştirme biçimini iyileştirmekti.
- Go dili; bağımlılık yönetimi, büyük ekiplerle iş birliği, bakım kolaylığı, verimli test etme, çok çekirdekli CPU'ların ve ağ iletişiminin etkili kullanımı gibi modern sunucu yazılımı geliştirmenin karmaşıklıklarını çözmeyi amaçladı.
- Go dili yalnızca bir programlama dili değil, üretim yazılımını daha kolay ve daha verimli biçimde inşa etmeyi hedefleyen bir projedir.
Go dilinin maskotu, gopher
- Go dilinin maskotu olan gopher, Go dilinin başarısında önemli bir rol oynadı.
- Gopher, Go programcılarının simgesi ve topluluğun bayrağı olarak projenin büyümesi için vazgeçilmezdi.
- Gopher tasarımının Creative Commons Attribution lisansı ile paylaşılması topluluk ruhunu güçlendirmeye yardımcı oldu, ancak telif hakkı sorunlarından kaynaklanan zorluklar da yaşandı.
Go dilinin teknik başarı etkenleri
- Resmî belirtimin yazılması, birden fazla uygulamanın bulunması, taşınabilirlik, uyumluluk güvencesi, zengin kütüphaneler, araç geliştirme kolaylığı ve otomatik kod biçimlendirme aracı olan
gofmt, Go dilinin başarısına katkı sağladı.
gofmt, genel olarak programlama topluluğunu etkileyerek çoğu dilin standart bir formatter edinmesine zemin hazırladı.
Eşzamanlılık (Concurrency) ve arayüzler
- Go dili, eşzamanlılığı dilin temel bileşenlerinden biri haline getirerek sunucu yazılımı yapısını sadeleştirmeye katkı sağladı.
- Arayüzler, Go dilinin ayırt edici fikirlerinden biri olarak nesne yönelimli tasarıma Go'nun verdiği yanıt oldu ve standart kütüphane ile bağımlılık yönetiminde önemli rol oynadı.
Generics ve derleyici
- Arayüzlerin varlığı, Go diline generics eklenmesinin uzun sürmesinin nedenlerinden biriydi.
- İlk Go derleyicisinin C ile yazılmış olması programlama dili topluluğunda tartışma yarattı, ancak Go dilinin gelişimi açısından uygun bir seçimdi.
Proje yönetimi ve paket yönetimi
- Go dili açık kaynak bir proje olmasına rağmen geliştirme sürecinin ilk döneminde kapalı yürütüldü; ancak kamuya açıldıktan sonra topluluk katkıları patlayıcı biçimde arttı.
- Paket yönetiminin geliştirilme süreci sorunsuz değildi ve toplulukla nasıl iş birliği yapılacağı konusunda yeterli anlayış yoktu.
Dokümantasyon ve örnekler
- Go dilinin ilk dönem dokümantasyonu topluluğun beklentilerini karşılayamadı, ancak web üzerinde çalıştırılabilir örnekler sunulması gibi iyileştirmeler yapıldı.
GN⁺ görüşü
- Go dilinin başarısı; güçlü standart kütüphane, eşzamanlılık desteği, arayüz temelli tasarım, net paket yönetimi, hızlı build ve test araçları, tutarlı kod biçimlendirme, okunabilirliğe verilen önem ve uyumluluk güvencesi gibi unsurlardan kaynaklanıyor.
- Go dili, yalnızca bir programlama dili olarak değil, yazılım geliştirme biçimine yenilik getiren bir yaklaşım olarak da öne çıktı; bunda topluluğun çeşitliliği ve desteği belirleyici oldu.
- Go dilinin geliştirilme süreci ve buna dair öz değerlendirmeler, açık kaynak projeleri yürütme konusunda önemli dersler sunuyor.
1 yorum
Hacker News görüşleri
Proje değerlendirmesine zaman ayıran kilit isimlere duyulan minnettarlık
Go dili ve topluluğuna duyulan sevgi
Go'nun paket yönetim sistemiyle ilgili eleştirel bir deneyim paylaşımı
Go diline eleştirel bakış
Ken Thompson'ın C derleyicisini kullanma kararına dair ilgi çekici nokta
gofmt'nin başarılı şekilde benimsenmesine vurgu
GopherConAU organizatörü olarak tüm oynatma listesini paylaşma
Go ile monorepo'ları kolayca kurabilme ve uygulamaları hızlı derleyebilmenin avantajları
Go'nun birlikte çalışabilirliği ve C FFI tercihlerine yeterince değinilmemesi
Derleyiciyi kendi diliyle yazma konusunda görüş