Golang Nedir? Golang’ın Diğer Dillerden Farkı

Merhaba, bu yazımda Golang nedir, niçin tercih ediyoruz, öteki dillerden farkları şeklinde mevzuları ele alacağım.

Golang, Google tarafınca 2007 senesinde geliştirilmeye başlanan ve 10 Kasım 2009’da duyurulan açık kaynak programlama dilidir. Öğrenmesi yeni başlayanlar için kolay denilse de ben en azından bir Python kadar kolay olmadığını düşünüyorum. Doğal değişik programlama dilleri bilen birisi oldukça rahat bir halde öğrenebilir.

Golang Kullanım Alanları

Bulut ve ağ servisleri, komut satırı arayüzleri, web geliştiriciliği, nesnelerin interneti (IoT), DevOps şeklinde birçok alan, Go’nun yelpazesi içindedir. Golang; Cloudflare, Dropbox, Netflix, PayPal, Riot Games, Twitch, Uber şeklinde markaların dikkatini çekmiş ve kullanmaya başlanmıştır.

Niçin Go?

Golang’in ne işe yaradığını ve nerelerde kullanıldığını gördük. Şimdi de Go’yu tercih etmemizin nedenlerini görelim.

Concurrency (Eşzamanlılık)

Birbirinden bağımsız çalışmaların birleşerek çalıştırılmasına eşzamanlılık diyoruz.
Bir işlemci, işleri parçalara ayırır ve oldukça süratli bir halde anlık olarak bu parçaları çalıştırır. Bu da bizlere tüm işlemlerimiz aynı anda oluyormuş şeklinde gösterir. Parallelikte iş parçacıkları için değişik thread’ler oluşturulur. Eşzamanlılıkta ise yeni bir iş eklendiği süre işler iş parçacıklarına ayrıldıktan sonrasında tek bir thread ile bu işler gerçekleştirilebilir.
Eşzamanlılık genel anlamda parallelik ile karıştırılır fakat eşzamanlılık daha farklıdır. Mesela, “parallelism” tek bir işlemcide çalışamaz fakat “concurrency” çalışabilir.

golang-nedir-golangin-diger-dillerden-farki
Görsel 1: Eşzamanlılık ve parallelik karşılaştırılması.

Yüksek Performans

Öğrenirken yaptığınız küçük çaplı çalışmalarda fark edemeseniz de büyük projelerde Golang, kendini kanıtlamıştır. Performans mevzusunda Python ile karşılaştırıldığında öne çıkmaktadır. Hatta Golang, C dilleri ile rekabet içerisindedir diyebiliriz.

Düşük RAM İhtiyacı

Golang ile meydana getirilen projelerde süratli olmasının yanı sıra azca RAM kullanmaktadır. Golang kodu derlendiğinde, yürütülebilir başka bir dosya oluşturulur. Oluşturulan dosya başka bir aracı kod değil, direkt olarak makine kodudur. Bu sayede Go ile geliştirdiğiniz projelerde RAM yönetimi hakkında çok da fazla endişelenmenize gerek kalmamıştır.

Web Geliştiriciliği, Bulut Bilişim, Ağ Sistemleri ve daha nicesi

Golang, birçok proje ve ürün için oldukça iyi bir çözümdür. Kolaylıkla ölçeklenebilir ve güvenli uygulamalar geliştirmenizi sağlar. Ek olarak çeşitli platformlarda süratli bir halde barındırma kabiliyeti sağlar.

Garbage Collection

Garbage collection şu demek oluyor ki Türkçe anlamıyla çöp toplama, bilgisayarın kaynaklarının doğru yönetilmesini sağlamak için meydana getirilen işlemlere deniyor.

Golang’da da Garbage Collection (GC) bulunuyor. Bu sayede Go ile yazılmış ürünler kaynakları kullandıktan sonrasında artık ihtiyacı olmayan kaynakları işletim sisteminin kullanımına GC ile açmış oluyor. Bu da şu şekilde gerçekleşiyor; kodlarınız içinde bir kıymet tutması için değişken belirliyorsunuz. Değişken kullanılırken hafızada saklanıyor ve kaynak kullanıyor. Değişken programın devamında kullanılmayacaksa GC tarafınca toplanıyor. Öteki orta seviyeli dillerde bunu programcının kendisinin ayarlaması gerekiyor.

Golang ve Python Karşılaştırması

Öteki dillere bakılırsa fazlasıyla meşhur olan Python ile Go’nun genel bir karşılaştırmasını yapalım.

Golang Python
Go, işlevsel ve eşzamanlı bir dildir. Python; nesne tabanlı, işlevsel bir dildir.
Statik olarak yazılan bir dildir. Dinamik olarak yazılan bir dildir.
Sistemler için kullanılan bir dil olmaya odaklanmıştır. Web uygulamaları, makine öğrenmesi şeklinde uygulamalar için kullanılan bir dil olmaya odaklanmıştır.
Go, hafıza yönetimiyle ilgilenir. Python, hafıza yönetimi işlevselliği önerir, sunar.
Go söz diziminde hem parantezler hem de girinti kullanır. Python söz diziminde girinti kullanır.
Nesne yönelimli programlama desteklemez. Sınıfları ve nesneleri yoktur. Kalıtımı desteklemez. Nesne yönelimli bir programlama dilidir. Sınıfları ve nesneleri vardır. Kalıtımı destek sunar.
Go, aynı sayıda işi gerçekleştirmek için daha çok koda gerekseme duyar. Python, Go’ya bakılırsa daha azca koda gerekseme duyar.
Go, Python’a bakılırsa hızlıdır. Python, Go’ya bakılırsa daha yavaştır.

Netice

Netice olarak hangisini seçmek mevzusunda gene geliştirici, geliştirici ekip ya da proje yöneticileri karar vermelidir. Yapılacak işin içeriğine, zamanına, hedeflerine bakılırsa değişkenlik izah edebilir. Yeni başlayanlar için ise ilkin Python’ı önerebilirim. Hem daha çok Türkçe kaynağa haiz hem de öğrenmesi birazcık daha kolay. Golang hakkında daha çok şey öğrenmek isterseniz buradan sitesini ziyaret edebilirsiniz.

Golang Nedir? Golang'ın Diğer Dillerden Farkı

Yorum yapın