Go
, diğer adıyla Golang
2007 yılında adımları atılan, 2009 itibariyle açık bir şekilde adı dile getirilen, 2012 ortalarına doğru Go 1.0
‘a ulaşan, arkasında Ken Thompson, Rob Pike ve Robert Griesiemer gibi geliştiricilerin bulunduğu ve Google tarafından desteklenen, basitliği ve sunduğu performansla öne çıkan, oldukça genç sayılabilecek, açık kaynak bir programlama dili
. “Go serverler” kendilerini gopher
olarak nitelendiriyorlar. Gopher
, TCP/IP protokolü olmasına karşın logonun da sembolize ettiği amerikan yersincabı (kemirgen).
UNIX temelli sistemler (Linux, macOS, FreeBSD vs.), Windows gibi pek çok işletim sisteminde çalışan, ek olarak mobil tarafta da golang.org/x/mobile/app
ile (1.4 sürümünden sonra) Android üzerinde logic oluşturabileceğiniz Go yakın zamanda iOS ve Windows desteği de sunacak gibi görünüyor.
Go 25 adet keyword içerir ve yapısı şu şekilde özetlenebilir: “Az kural, esneklik ve hız
“. Bu nedenle okunması, öğrenimi oldukça kolaydır. Az kural olabilir ancak kurallar konusunda oldukça nettir. Örneğin import edilen bir paket ya da oluşturulmuş bir değişken uygulama içerisinde kullanılmamışsa hata döndürecektir.
package main
import "fmt"
func main() {
fmt.Println("Merhaba Dünya!")
}
Go, tek bir dosyaya derlenir ve dil içerisinde değişkenler küçük harf (a-z) ile başlıyorsa “private”, büyük harf (A-Z) ile başlıyorsa “public” olarak belirlenir.
Go, sunucu ve alt sistemler gibi sistem programlama ihtiyaçlarına cevap vermek için geliştirilmiş olmasına karşın yeni sürümlerle birlikte yeni yetenekler de kazanmaya devam etmekte. R ile ilgili yazıda da belirttiğim gibi bir dilin artıları ve eksilerinden ziyade gereksinimlerime cevap verebiliyor
olması benim için önemli
. Bu nedenle R dışında Go ile ilgili örneklerde de merkezde bu anlayış
yer alacak. Örneğin, Go ile web için hızlı ve yüksek performanslı projeler üretmek mümkün. 1.4 sürümüyle birlikte Android için de sunulan destekle mobil tarafta da etkili projelerde yer almaya başlıyor olması da sürpriz değil. Konuyla ilgili olarak devnot
‘un Go Programlama Diline Genel Bakış
ve Oğuzhan’ın Go Programlama Dili Üzerine
başlıklı yazılarını okuyabilirsiniz.
Dil için önerebileceğim kaynaklar ise şöyle:
Bir sonraki yazılarda macOS
ve Linux (Ubuntu)
ortamında Go kurulumlarından
bahsedeceğim.