Go’ya genel bakış – 1

Google’ın kendi sistemlerini optimize etmek üzere geliştirdiği programlama dili olan Go’yu eminim birçok kişi duymuştur. TIOBE verilerine göre sektördeki popülaritesi giderek artan Go, özellikle Node.js projelerinin dönüşümüne ortam hazırlıyor. İçeriğimde, bu yenilikçi programlama dilini en dikkat çekici özellikleriyle ele alacağım. Ele alınacak çok fazla husus olduğundan bunu bir seri hâline getirmeyi planlıyorum.

Öncelikle…

Go, diğer programlama dillerine (Java, Javascript vs.) birçok noktada benzerlik gösterir. Eğer farklı bir dilden geçiş yapacaksanız şunu unutmayın: Go, bu diller değildir. Onun kendine özgü kurallarıyla beslediği bir atmosferi vardır. Onu, bu kurallarıyla birlikte olduğu gibi kabul edin. //Meraklısına bu kısmı örnekleyeyim, mesela Go’da while döngüsü yok, constructor yok, function overloading yok..

Bu konuda anlaştıysak, başlayalım 🙂

Go düzen sever

Düzenli kod yazmak, en az efektif bir şekilde çalışan kod yazmak kadar önemlidir. Projeye dönüp baktığınızda ve/veya başka biriyle paylaştığınızda karşılaşacağınız gereksiz yapılar, her zaman kaliteyi düşürecektir. Go, buna izin vermiyor. Yani;

  • Bir değişken tanımladın ve kullanmadın mı? Go o değişkenin kalmasına izin vermez.
  • Kodunu özenli yazmadın mı? Go dağınık görüntüye tahammül edemez.
  • – En basit örnekle- bir değişkeni yeniden mi tanımlamak istiyorsun? Go asla müsaade etmez.

Alışana kadar kodunuzun düzenlemesini bir süre IDE’ye bırakacak ya da bolca hata mesajı okuyacaksınız.

Kendine has…

Go’nun kendine has deyimleri(idiom) vardır. Geliştiriciler genellikle bu idiomların doğru bir şekilde yansıtıldığı(idiomatic) yapılar geliştirmeye özen gösterirler. Bu noktada, dilin temel idiomlarını tanımak üzere Github’da bol bol kod okuması yapmanızı ve boş kaldıkça dokümantasyon taramanızı tavsiye ederim. Unutmayın, Go’da idiomları ne kadar iyi tanırsanız o kadar rahat edersiniz.

if err := file.Close(); err != nil {
   //hata yönetimi
}

Küçük bir not: Idiom ve Idiomatic kavramlarını Türkçe’ye tam anlamıyla çeviremedim, olduğu gibi kullanmayı tercih ettim. Aşağıda bu konuda ChatGPT’den aldığım küçük yardımı görebilirsiniz.

go idiom türkçe karşılığı

Her dilin güçlü yanlarını alır

Yazımın başında Go’nun diğer programlama dillerine benzediğini ancak asla ‘onlar’ olmadığını ifade etmiştim. Elbette arada çok fazla farklılık var, bunları zamanla aktarmaya devam edeceğim lakin şu an, benim de çok hoşuma giden bir yanından bahsediyorum. Go, Amerika’yı yeniden keşfetmeye çalışmak yerine sektördeki dillerin en güçlü yönlerinden faydalanır. Örneğin -Java’ya yıllarını vermiş bir geliştirici olarak rahatlıkla ifade edebilirim- Java’daki array mantığı çok iyi oturmuştur ve çok efektif bir işleyişe sahiptir. Bir diğer örnek, C dilinde pointer kavramı neredeyse ideal bir yapıdadır. İşte Go tam olarak bu noktada devreye girer ve tüm bu güçlü yapıları kendi bünyesine dahil ederek bir avantaj daha sağlar.

Şimdilik yazı burada kalsın, diğer yazılarımda modüllerden – paketlere, complex yapılardan – polymorphisme birçok hususa yer vermeyi planlıyorum.

Yorum yapın