Go programlama dili nedir ?
Go, Google tarafından büyük ve dağıtık uygulamalarında yaşadığı sorunları çözmek için geliştirilmeye başlanan bir programlama dilidir. Go hakkındaki release history burayadan takip edebilirsiniz. Release History – The Go Programming. Go’nun resmi sayfasına girdiğinizde vurgulanmış bir şekilde göreceğiniz gibi şöyle bir açıklama mevcuttur. “Go, basit, güvenilir ve verimli bir yazılım oluşturmayı kolaylaştıran açık kaynaklı bir programlama dilidir.”
Go static typing ve compile edilebilen(yani go geliştirmek istiyorsanız bir de compiler’a ihtiyacınız var) bir dildir. Bu özellik aslında, dili anlatan veya dilin seçiciliği oluşturan bir özelliktir. Özellikle “Compiler” gibi lisans derslerinden birini alanlar ne demek istediğimi anlayacaktır. Peki static typing nedir ? Static typing bir variable(değişkeni) kullanmadan önce değişkenin türünü belirtip kullanılmasıdır. Bu bakımdan Java, C# gibi dillere benzer.
Go diline ait bazı özellikler.
- Go dili performans odaklı bir dil olduğu için, bilgisayar kaynaklarının en güzel ve verimli şekilde kullanılmasını sağlayan faydacı bir dil olarak düşünebilirsiniz.
- Benim en sevdiğim özelliklerinden birisi, bir çok dependency içeren projenizi derlediğinizde, tek bir binary dosyası çıkarması ve bunu çalıştığı işletim sistemine göre anlayıp oluşturması.
- Static tipli bir dil, bu sebeble dinamik tipli dillere göre daha performanslı çalışmaktadır. Daha kolay debug edilebilir. Dinamik tipli bir dil olan, Javascript’i düşünebilirsiniz:)
- Garbage collection mevcut.
- Built-in bir çok şey içinde gelmektedir. ( json, templating gibi liblerin dışarıdan alınması yerine)
- Go dilinin kod yazma konusunda katı bir dildir, yani bir parantezi kafanıza göre bir yere koyamazsınız, o olması gerektiği noktada olması gereklidir. Bunun daha basite indirmek için go dilini yüklediğiniz de yanında gofmt de gelmektedir. Bu tool sizin ve bir çok yazılımcının kodu aynı şekilde okuması için; kodunuzu formatlamaktadır.
- Öğrenmesi çok zor olmayan bir dil OOP’in o karmaşık yapısında boğulmuyorsunuz, kod yazarken rahatlıyorsunuz. Burada zorlanacağız durum eski alışkanlıklarınızın sizi kod yazmak için hep o yöne itmesi olacak fakat Go dili nesne yönelimli bir dil değildir. Bundan kısa sürede kurtulmanızı tavsiye ederim. İleri ki zamanlarda yazacağım konularda sizde göreceksiniz. Go için paket önemlidir ve sınıflar yerine struct mevcuttur.
Go dilini entry entry anlatmaya çalışacağım, takip etmek isteyenler için bu konunun altına ilişkili konular olarak, her yazdığım başlığı ekleyeceğim.