20.09.2021
Go Prgramlama Dili Nedir ?

Go veya Golang, 2007 yılında Google’ın geliştirmeye başladığı açık kaynak programlama dilidir. Kullanım alanı olarak daha çok sistem programlama için kullanılmaktadır. 2009 yılı Kasım ayında çıkmıştır.  Go derleyicisi “gc” açık kaynak yazılım olarak; Windows, Linux, OS X, BSD ve Unix versiyonları geliştirilmiştir. 2015 yılından beri de akıllı telefonlar için geliştirilmeye başlanmıştır.

Go, Google mühendisleri tarafından deney olarak ortaya çıkarılmıştır. Diğer dillerin bilinen eleştirilerini çözecek biçimde tasarlanmıştır. Aynı zamanda olumlu özelliklerini de koruyacak şekilde geliştirilmiştir. Go programlama dili; üretken ve okunabilir olması, ağ ve çoklu işlemleri desteklemesi, statik yazılmış ve büyük sistemlere ölçeklenebilir olması özelliklerini taşıyordu. Golang 2007 yılında ilk adımı atılan, 2009 yılında dile getirilen, 2012 ortalarında Go 1.0’a ulaşan bir programlama dilidir. Google tarafından desteklenen, basit ve sunduğu performansla öne çıkan, oldukça genç, açık kaynak bir programlama dilidir.

Go Programlama Dili Hangi Amaçla Kullanılabilir?

Go dili sistem programlama odağıyla geliştirilmiştir. Yani sunucu ve alt sistemler yazmak için ideal bir çözüm olarak düşünülebilir. Ancak bunun yanında web için de hem hızlı geliştirme hem de yüksek performansıyla kaliteli projeler üretmenizi sağlayabilir. Aynı zamanda native olarak henüz tam uyumlu kullanılabilir olmasa da Google, Android işletim sistemi üzerinde Go kullanılabilmesi için bir mobil proje yürütmektedir. Go’nun github sayfası üzerinden mobil çalışma kaynaklarına ulaşabilir, internetten Go ile geliştirilen Android uygulama örneklerine inceleyebilirsiniz.

Go dili gömülü sistemler için de kullanılabilmektedir. Ancak genel olarak bu alan için henüz yeterli görülmemektedir. Gene ancak, Go’nun bu alanda da bir başarı hedeflediğini ve zamanla gömülü sistemler için de kendini genişleteceğini söyleyen otoriteler mevcuttur. Kaldı ki, gömülü(embedded) sistemler için C mi, C++ mı gibi bir soru bile C/C++ geliştiricileri arasında yıllardır tartışılan bir konudur.

Go programlamayla ilgili örnek embedded ve benzeri IoT ortam frameworkleri;

Go Programlama Dilinin Hangi Amaçla Kullanılması Tavsiye Edilmez?

Python ve Ruby gibi bir betik dili değildir. Yani Python’un yerini alması düşüncesi yerine Go’nun C ve Python gibi farklı alanlarda güçlü olan dillerle birlikte çalışabilmesi hedeflenmektedir.

Hemen yukarıda belirttiğim gibi gömülü sistemler için henüz yeterli değildir. Bu alanda C’nin gücü devam etmektedir. Ancak Go ile C iç içe kullanıldığında harika gömülü alt sistem uygulamaları geliştirilebilir.

Go Programlama Dili Kullanıcıları

Go dili yakın bir tarihte geliştirilmiş olsa da büyük projeler için ciddi tercih edilen bir teknoloji haline gelmesi uzun sürmedi. Bu girişim ve firmalardan bazıları şunlardır;

Docker, Koding, Google, Apple, Twitter, Amazon, Github, Ubuntu, Dropbox, Facebook vb.

Daha geniş bir kullanıcı listesine ulaşmak için; https://github.com/golang/go/wiki/GoUsers

Go Programlama Geliştirme Araç ve Ortamları

Go dili genel olarak açık kaynak kültüründe olduğu gibi bir çok araç ve geliştirme ortamı sunmaktadır.

Bunlar şöyledir;

Araçlar;

Go tool: Go dilinin en temel aracıdır. Go uygulamanızın derleme esnasındaki işlemleri konsol üzerinden parametrik olarak yönetmenizi sağlar.

Godoc: Kod içerisinde, örneğin bir metod üzerinde yazdığınız açıklama satırına göre bir belgelendirme-dökümantasyon üretmeyi sağlar. godoc.org sitesi üzerinden de github ya da dilin gömülü özelliklerinin dökümanlarına online olarak ulaşmak mümkündür.

Örn; http://godoc.org/fmt#Println

Gofmt: Go dili söz dizimi kurallarını(bazıları katıdır) yöneten bir orkestra şefidir. Go kodu söz dizimi standartlarını uygular.

Geliştirme Ortamları(IDE’s);

Go Programlama Dili Kurulum ve Site Tanıtımı

Go dilinin ‘official’ web sitesi golang.org‘dur.

Yaygın Kullanılan Framework ve Araç Setleri

Not : Bu saydığım araç ve Framework’ler genel olarak kendi kullanmış olduğum ya da gözlemlediğim araçlardır. Ancak daha fazlası için Awesome Go‘yu ziyaret edebilirsiniz.

Önerilen Kaynaklar;

Go Geliştirci Camiaları