Size bu makalemde Go dilinin ne olduğunu, hangi amaçla kullanılabileceğini, nerelerde tercih edilmemesi gerektiği, çeşitli kaynak ve önerilerde bulunacağım.

Go Programlama Dili (Golang) :

 2007 yılında Robert Griesemer, Rob Pike ve Ken Thompson tarafından geliştirilen, şimdilerde ise Google’ın geliştirmeye devam ettiği açık kaynaklı ve tamamen ücretsiz bir programlama dilidir. Go, Golang veya Google Go olarak adlandırılan programlama dili; C ve Algol gibi programlama dillerine benzer şekilde; derlenmiş, statik yazımlı, garbage Collection’lı bir dildir. Go programlama diline ilişkin olarak tüm diğer aracı yazılımlar ve derleyiciler de Google tarafından geliştirmektedir.

Google’ın programalama dili olması nedeniyle Google Go olarak adlandırılsa da dilin resmi adı Go programlama dilidir. Geliştiriciler arasında karışıklığa neden olmaması için ayrıca “Golang” olarak Go programlama dilinin kısaltılmasıyla karşılaşabilirsiniz. Google’ın Go programalama dilini geliştirmesinin ardında yatan birçok önemli neden var. En önemli nedeniyse performansı yüksek ve modern bir programlama dili ortaya çıkarmaktır.

Google gibi bir teknoloji ve yazılım devinin kendi iç sistemlerinde yıllardır kullandığı C, C++, Java, Python vb. bir çok farklı programlama dili ve teknolojinin farklı farklı avantaj ve dezavantajları vardır.
C ve C++ gibi programlama dillerinin Java ve Python gibi programlama dillerine oranla daha yüksek performanslı olmasının nedeni, bu dillerin derlenmesi sırasında yorumlayıcıların kullanılmayışından kaynaklanır. Örneği Java dilinde yazılan bir byte kodu, önce sanal makineler yardımıyla Binary koduna dönüştürülür ve ardından işlemciye ulaştırılır. Go, tıpkı C ve C++ gibi arada bir yorumlayıcı kullanılmadan doğrudan derlenir ve donanımla iletişim kurar. Fakat Go C ve C++ arasında önemli bir fark vardır. Bu dillerde yazılan kodlar doğrudan insanların okuyabileceği kodlar olamazken, Go’da yazılan kodlar insanların okuyabileceği şekilde dizayn edilmiştir. Bu sayede Go, kendisiyle çalışmayı daha kolay ve verimli kılmaktadır.

Go Dili ile Neler Yapılabilir?

Go dilinin birincil amacı sistem programlamalarının yapılmasıdır. Aktif biçimde sunucu tarafında kullanılması için geliştirilen Go’yu, sunucu ve alt sistemler geliştirmek için harika bir dil olarak görebiliriz. Bunun yanı sıra Go ile web namına hızlı çalışan ve verimli projeler de üretilebilir. Henüz kısıtlı örneklerle karşımıza çıkıyor olmasına rağmen Google’ın, Go’yu mobil işletim sistemi Android’de kullanma planı vardır. Gelecekte Go’yu bilen geliştiriciler sadece sunucu ve sistem tarafındaki işleri halletmekle kalmayarak, kendi Android mobil uygulamalarını da Go ile verimli biçimde geliştirebilecekler.

Go gömülü sistemlerde kullanılan bir programlama dili olarak da karşımıza çıkabilir. Geliştirici topluluğunun büyük bir bölümü buna inanıyor olsa bile, gömülü sistemlerde hali hazırda süregelen C ve C++ haçlı savaşları nedeniyle bunu şimdilik kestirmek tam olarak mümkün olmayabilir.

Go ile neler yapabileceğiniz kadar neler yapamayacağınızı bilmek de önemli. Go’yu bir betik dili olarak kafanızda resmetmelisiniz. Go’nun geliştirilmesinin amacı her ne kadar daha modern olsa da Java veya Python’u tahtından indirip, kendini tahta çıkarmak değildir. Go daha ziyade C ve Python gibi dillerle birlikte çalışarak başarılı, güçlü, modern ve verimli sistemler oluşturmak amacıyla geliştirilmiştir.

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; https://www.golang.org

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);

Vim: https://github.com/fatih/vim-go

Emacs: https://github.com/dominikh/go-mode.el

SublimeText: https://github.com/DisposaBoy/GoSublime

IntelliJ: https://github.com/go-lang-plugin-org/go-lang-idea-plugin

Eclipse: https://github.com/GoClipse/goclipse

LiteIDE: https://github.com/visualfc/liteide

Visual Studio Code: https://github.com/Microsoft/vscode-go

Atom: https://atom.io/packages/go-plus

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

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

Go’yu bilgisayarıma nasıl indiririm? https://golang.org/dl/

Go dökümantasyonuna erişim; https://golang.org/doc/

Go paketlerine online erişim; https://golang.org/pkg/

Online Go IDE; https://play.golang.org/

Yaygın Kullanılan Framework ve Araç Setleri

Beego (Web)

Gin (Web)

Gorilla Toolkit (Web)

Revel (Web)

IRIS (Web)

GORM (ORM)

Gobot (Robotik ve IoT)