Skip to content

Go Dili Tanıtımı

Go Nedir?

Go (veya Golang olarak da bilinir), Google tarafından geliştirilen statik tipli, derlenen, eşzamanlılık desteği olan ve çöp toplayıcıya sahip bir programlama dilidir. Go dili 2007 yılında tasarlanmaya başlandı, Kasım 2009'da resmi olarak yayınlandı ve Mart 2012'de ilk kararlı sürüm Go 1.0 yayınlandı.

Go dilinin tasarım amaçları, Google'ın büyük ölçekli yazılım geliştirmede karşılaştığı sorunları çözmekti, özellikle:

  • Yavaş derleme süreleri
  • Karmaşık bağımlılık yönetimi
  • Zor eşzamanlı programlama
  • Düşük kod okunabilirliği

Temel Özellikler

1. Basit Sözdizimi

Go dilinin sözdizimi oldukça basittir, sadece 25 anahtar kelime içerir, diğer dillerle karşılaştırıldığında:

DilAnahtar Kelime Sayısı
Go25
C32
C++63
Java50
Python35

Basit sözdizimi, Go dilinin öğrenilmesini ve kullanılmasını kolaylaştırır, kod stili tutarlıdır ve okunabilirliği yüksektir.

2. Hızlı Derleme

Go dilinin derleme hızı çok hızlıdır, bu sayede:

  • Bağımlılık analizi optimizasyonu
  • Modüler derleme
  • Verimli derleyici uygulaması

Büyük projeler genellikle birkaç saniye ile birkaç on saniye arasında tamamlanabilir.

3. Yerel Eşzamanlılık

Go dili, dil düzeyinde eşzamanlılık desteği sunar ve iki eşzamanlılık ilkel türü sağlar:

  • Goroutine: Hafif iş parçacığı, başlangıç yığını sadece 2KB, dinamik olarak büyüyebilir
  • Channel: Goroutine'ler arası iletişim için kullanılır
go
// Bir goroutine başlat
go func() {
    fmt.Println("Goroutine'den merhaba")
}()

// Channel ile iletişim kur
ch := make(chan int)
go func() {
    ch <- 42
}()
value := <-ch

4. Bellek Güvenliği

  • Otomatik çöp toplama (GC)
  • Güçlü tip sistemi
  • Bellek güvenliği garantisi, işaretçi işlemi yok

5. Zengin Standart Kütüphane

Go dili, aşağıdaki alanları kapsayan zengin bir standart kütüphane sunar:

  • Ağ (HTTP, RPC, WebSocket)
  • Şifreleme (AES, RSA, SHA)
  • Dosya işleme
  • JSON/XML ayrıştırma
  • Test çerçevesi
  • Ve daha fazlası

6. Çapraz Derleme

Go, çapraz derlemeyi destekler, bir platformda başka bir platform için çalıştırılabilir dosya derleyebilirsiniz:

bash
# Linux'ta Windows çalıştırılabilir dosyası derle
GOOS=windows GOARCH=amd64 go build -o app.exe

Uygulama Alanları

Go dili aşağıdaki alanlarda yaygın olarak kullanılmaktadır:

Bulut Yerel ve Altyapı

  • Docker: Konteyner teknolojisi
  • Kubernetes: Konteyner orkestrasyon platformu
  • Prometheus: İzleme sistemi
  • etcd: Dağıtık anahtar-değer deposu

Ağ Hizmetleri

  • Mikroservis mimarisi
  • API ağ geçidi
  • Yük dengeleyici
  • RPC çerçevesi

Blok Zinciri

  • Ethereum: Ethereum istemcisi Geth
  • Hyperledger Fabric
  • Çeşitli genel blok zinciri projeleri

Komut Satırı Araçları

  • Terraform: Altyapı kod olarak
  • Consul: Hizmet keşfi
  • Vault: Anahtar yönetimi
  • Helm: Kubernetes paket yönetimi

Veritabanı

  • TiDB: Dağıtık veritabanı
  • CockroachDB: Dağıtık SQL veritabanı
  • InfluxDB: Zaman serisi veritabanı

Diğer Dillerle Karşılaştırma

ÖzellikGoJavaPythonC++
Derleme HızıHızlıOrtaDerleme gerekmezYavaş
Çalışma PerformansıYüksekOrtaDüşükYüksek
Eşzamanlılık DesteğiYerelİş parçacığı kütüphanesiİş parçacığı kütüphanesi/asyncİş parçacığı kütüphanesi
Öğrenme EğrisiYumuşakOrtaYumuşakDik
Bellek YönetimiGCGCGCManuel
Dağıtım YöntemiTek dosyaJVMYorumlayıcıTek dosya

Tasarım Felsefesi

Go dilinin tasarım felsefesi şu şekilde özetlenebilir:

Az çoktur

Özellikle şunlarda kendini gösterir:

  1. Bir işi yapmanın bir yolu: Aynı işlevi gerçekleştirmek için birden fazla yol sunmaz
  2. Açık olan örtük olandan iyidir: Kod davranışı açık ve görünürdür
  3. Birleşim kalıtımdan iyidir: Kalıtım yerine arayüzler ve birleşim kullanır
  4. Basit olan karmaşıktan iyidir: Dili ve kütüphaneleri basit tutar

Go Dili Maskotu

Go dilinin maskotu, Renee French tarafından tasarlanan mavi bir yer sıçanıdır (Gopher). Bu sevimli Gopher, Go topluluğunun sembolü haline gelmiştir.

Sonraki Adımlar

Golang by www.golangdev.cn edit