2 puan yazan GN⁺ 2024-08-13 | 1 yorum | WhatsApp'ta paylaş

Go benim çekicim, her şey çivi

Giriş

  • Markus, tek başına çalışan bir geliştirici ve dijital ürün üreticisi
  • Bir ekip olmadan tek başına çalışıyor ve esnek bir çalışma biçimini benimsiyor
  • Karmaşık teknoloji yığınlarından kaçınıp müşteriye değer sunmaya odaklanıyor

Neden Go'yu seçti?

Neden 1: Go neredeyse her şeyi yapabilir

  • Go basit, okunması kolay ve tutarlıdır
  • CLI, bulut altyapısı, HTTP sunucuları, ağ işleri gibi çok çeşitli amaçlar için kullanılabilir
  • Nintendo Switch oyunları, GUI uygulamaları, terminal metin sentezleyicileri gibi şeyler de Go ile geliştirilebilir

Neden 2: Bağlam değişimini azaltma

  • Birden fazla programlama dili kullanmak, sözdizimi arasında geçiş yapmayı zorlaştırır
  • Yalnızca tek bir dil kullanmak bu tür sorunların önüne geçebilir
  • Dil, derleyici, IDE, araç zinciri, topluluk gibi birçok unsuru yönetmek daha kolay olur

Neden 3: Derinlemesine bilgi

  • Tek bir dile odaklanmak daha derin bilgi birikimi oluşturmayı sağlar
  • Birden fazla dili ele almaktansa tek bir dile yoğunlaşmak daha üretkendir
  • Yazılım geliştirmenin karmaşıklığını azaltmaya yardımcı olur

Sonuç

  • Markus, Go kullanarak çeşitli projeleri başarıyla yürütüyor
  • Go hakkındaki derin bilgisi sayesinde üretkenliğini artırıyor
  • Go ile çeşitli zorlukların üstesinden gelebiliyor

GN⁺ Özeti

  • Markus, tek başına çalışan bir geliştirici olarak Go'yu seçip karmaşıklığı azaltıyor ve üretkenliğini artırıyor
  • Go, çok çeşitli amaçlar için kullanılabilir; basit ve tutarlı olduğu için yönetmesi kolaydır
  • Tek bir dile odaklanmak, birden fazla dili kullanmaktan daha verimli olabilir ve derinlemesine bilgi birikimi sağlar
  • Go sayesinde çeşitli projeler başarıyla yürütülebilir; bu da başka geliştiriciler için faydalı olabilir

1 yorum

 
GN⁺ 2024-08-13
Hacker News görüşü
  • Finansal verileri Go kullanarak işleyen bir şirkette çalışma deneyimim var

    • İş arkadaşlarımın CSV dosyalarını toplulaştırmak veya veritabanını güncellemek gibi tek seferlik işler için Go kullanmasını rahatsız edici buluyordum
    • Pandas kullanmak yerine temel algoritmaları kendileri uygulayan iş arkadaşlarını görünce güvenmekte zorlandım
    • Bunun şirketin zamanını boşa harcadığını düşündüm ve Go'nun yeterli olduğunu göstermeye yönelik bir ego meselesi gibi görünüyordu
  • Bir dili gerçekten öğrenmenin maliyetini küçümseyen çok kişi var

    • Bir dili "biliyorum" diyebilecek seviyeye gelmek 2-4 yıl sürüyor
    • Dili, derleyiciyi, runtime'ı, standart kütüphaneyi ve idiomatik kullanım biçimlerini anlamak 8-10 yıl sürüyor
    • Bu süre içinde dilin kullanım biçimini geliştirebilir ve yeni başlayanları hızla eğitebilirsiniz
  • Go'nun neredeyse her iş için uygun olduğunu düşünüyorum

    • Go kullanırken üretkenliğim çok yüksek oluyor
    • Proje 100 satırı geçince Python'dan daha iyi
    • Go'nun avantajları:
      • Dil çok basit
      • Çekirdek kütüphane iyi tasarlanmış
      • Toolchain ve çekirdek kütüphane ile işlerin çoğu halledilebiliyor
  • Go'nun kişisel projeler için uygun olmadığını düşünüyorum

    • Kod ayrıntılı ve basit işler için bile çok kod yazmak gerekiyor
    • Uygun enum'lar, union type'lar, null safety gibi özellikler eksik
    • Bu yüzden kişisel projelerde eğlenceli gelmiyor
  • Typescript ve Rust'ı tercih ediyorum

    • Deno ve Typescript, Go'dan daha çok yönlü araçlar
    • Typescript daha güvenli ve ergonomik, ama biraz yavaş
    • Rust daha güvenli ve hızlı, ama öğrenmesi zor
    • Typescript'in avantajları:
      • null safety
      • geniş destekli generics
      • discriminated union type'lar
      • güvenli eşzamanlılık
      • collection/iterator metodları
    • Go'nun avantajları:
      • Boyut ve bellek kullanımı açısından daha verimli
      • Go'nun GC'si V8'den daha iyi
      • CPU-bound işlerde daha hızlı
      • Daha büyük bir standart kütüphane
  • Go ve Typescript kullandım ama Kotlin/JVM'i tercih ediyorum

    • Gradle/Maven ikiliği ve build sistemine dair huzursuzluk var, ama dil özellikleri ve runtime açısından çok memnunum
  • Go'nun genel amaçlı bir araç olduğunu düşünüyorum

    • Her şey basit ve kullanımı kolay
    • Çok sayıda harici araç kullanmadan basit komutlarla derleyip dağıtabiliyorsunuz
    • Diğer dillerin de avantajları var, ama hiçbiri Go kadar basit ve zahmetsiz değil
  • Go'yu seviyorum ama âşık değilim

    • Tooling'in dağınık olduğunu düşünüyorum
    • Go modülleri hâlâ tamamlanmamış gibi hissettiriyor
    • Generics hâlâ ilkel seviyede
    • Ekosistem eksik kalmış gibi geliyor
  • Go'nun çoğu yönünü seviyorum, ama çok sayıda sayısal kod yazan biri olarak operator overloading olmaması bir dezavantaj

    • Python ve C++ kullanmaya devam ediyorum
    • Rust, C++ yerine geçecek bir seçenek olarak cazip, ama Python'ın yerini almak için fazla kuralcı
  • Hayat tek bir şeyde ustalaşmak için bile kısa, bu yüzden dikkatli seçmek gerekiyor

    • Go'yu seçme nedenleri:
      • Harika bir standart kütüphane
      • Okuması ve yazması kolay
      • Tek statik binary derleme
      • Container gerektirmiyor
      • Her yerde kullanılabiliyor (web geliştirme, masaüstü uygulamaları, oyun geliştirme, gömülü sistemler vb.)