Golang Nedir?
Tags: go, turkish, turkce
Published: 2020-06-21 19:48:07

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ntdfnje8ozaq5ckui82i.png)
Merhaba, bu benim ilk blog yazım ve heyecanla yazıyorum.
Bu ilk yazımda Go programlama dilini ya da kısaca Go'yu ele alacağım. 
##### *(Go, Golang, Google Go ya da Go programlama dili olarak da hitap edilir.)*

İlk olarak Go ile nasıl tanıştığımdan bahsetmek istiyorum;
2019'un Aralık ayının birinci gününde Antalya'da gerçekleşen Antalya GDG DevFest'19 etkinliğinde, Sayın Ecir Uğur Küçüksille'nin Go dilini ele aldığı sunumu ile tanıma fırsatım oldu. 

İlk başta pek ilgilenmesem de yakın zamanda Go'ya olan ilgim epeyce arttı. İlgimin artması ile birlikte öğrendiklerimi paylaşma hevesim de bir o kadar arttığını fark ettim ve şu anda bu satırları yazıyorum.

Lafı uzatmadan konuya giriş yapmak iyi olacaktır. 🙂

### Golang nedir?

Golang, İlk olarak Google'ın kendi içerisinde barındırdığı sistemleri daha hızlı, güvenli ve verimli hale getirmek amacıyla **Rob Pike**, **Robert Griesemer** ve **Ken Thompson** tarafından tasarlanan, [açık kaynak](https://github.com/golang/go) ve statik tipli yazılan bir programlama dilidir.
  
Go, 2007 yılında bu 3 başarılı mühendis tarafından tasarlanmaya başlandı ve 2009 yılında ilk versiyonu piyasaya sürüldü.

Google'ın hedefi diğer dillerdeki en iyi yönleri alıp, sorunlu yanlarını çözümleyip tek dilde birleştirmekti ve kısmen bunu başardı.

Bir çok şirket alt sistemleri için Go'yu tercih ediyor fakat bu Go'nun sadece alt sistemler için kullanıldığı anlamına gelmiyor.

Go, içerisinde 25 anahtar sözcük(keyword) bulunduruyor ve bu da dili sade kılıyor.

Dilin yakın zamanda bu kadar popüler olmasının etmenlerinden biri de maskotu olan **Gopher** isimli sevimli sincap kesinlikle. Ayrıca Go dilini kullanan geliştiricilere de Gopher denmekte.

Pekala Go hakkında bir kaç şey biliyoruz peki neden tercih etmelisiniz?
### Go'yu neden tercih etmelisiniz?.

- Go size C dilinde elde ettiğiniz performansa çok yakın bir performans sağlar.
- Go eşzamanlı çalışmayı doğal olarak destekleyen bir dildir.
- Geriye yönelik bir dildir yani Go'nun ilk sürümünde yazılmış bir program'ı başka sürümlerde de sorunsuz çalıştırabileceğiniz anlamına geliyor.
- Az vakitte çok iş teriminin karşılığını verir. Bu şu anlama gelir; Go yorumlanabilir dilden ziyade <u>derlenebilir</u> bir dil olduğundan, sanal makinelere ihtiyaç duymadan direkt olarak doğal makine diline çevrilir bu da size zaman kazandırır.
- Go esnek bir dildir, size bir çok alanda ürün çıkarmanıza olanak sağlar. Go ile sistem ve ağ programlama, makine öğrenmesi, big data(büyük veri), web, [mobil](https://github.com/golang/go/wiki/Mobile), CLI ve masaüstü alanlarında ürün çıkarabilirsiniz.
(Go bahsettiklerimin bir kaçını kendi içerisinde bulundurmasa da yazdığım tüm alanlarda ürün çıkarmanız mümkün) 
- Go, ayrılan belleğin düzgünce yönetimini sağlar.
- Kendi çöp toplayıcısına sahiptir. (Garbage Collector ya da GO GC)

### Go en çok hangi kısımlar için tercih ediliyor?

- Ölçeklenebilir, yüksek performanslı uygulamalar için.
- Web alanında Back-End (Arka uç) kısmı için.
- Bir çok medya şirketi içerisindeki ağır yükleri azaltmak için (Netflix, YouTube, SoundCloud vb.).
- Dahili analiz hizmetleri için.
- Cloud Computing(Bulut bilişim) için.

ve daha fazla alanlarda kullanılmakta.

### Go kullanan şirketler

- Google
- Uber
- Medium
- Trendyol
- SoundCloud
- Dropbox
- Netflix
- YouTube
- Peak Games

daha fazlasını Go'nun GitHub sayfasındaki [GoUsers](https://github.com/golang/go/wiki/GoUsers) bölümünde bulabilirsiniz.

## Go hakkındaki kişisel görüşüm


Go benim için ideal bir dil, kullandığım dillere nazaran Go'ya daha fazla ısındım, benim için aileden biri gibi. Go dilinin rahat ve kolay kullanımı da beni kendisine çekti diyebilirim. Henüz ciddi işler için kullanmasam da kullanacağım kesinlik kazandı. 

Kısaca artık ben de bir Gopher'ım. 😊

**Bu yazımda eksik, hatalı veya sorunlu kısımlar fark ettiyseniz bana [kişisel sitem](https://metecan.dev/)den ulaşabilirsiniz.**


## Kaynakçalar

- [https://go.kaanksc.com/](https://go.kaanksc.com/)
- [https://yalantis.com/blog/why-use-go/](https://yalantis.com/blog/why-use-go/)
- [Staticly-Typed and Dynamically-typed languages](https://stackoverflow.com/questions/1517582/what-is-the-difference-between-statically-typed-and-dynamically-typed-languages)
- [http://devnot.com/2017/go-programlama-diline-genel-bakis/](http://devnot.com/2017/go-programlama-diline-genel-bakis/)
- [Why you should learn go? by Keval Patel](https://medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65#:~:text=Go%20runs%20directly%20on%20underlying,Processors%20understand%20binaries.)
- [https://www.yakuter.com/go-dilinde-concurrency/](https://www.yakuter.com/go-dilinde-concurrency/)
- [Interpreted vs Compiled Programming Languages: What's the Difference?](https://www.freecodecamp.org/news/compiled-versus-interpreted-languages/#:~:text=Interpreted%20vs%20Compiled%20Programming%20Languages%3A%20What's%20the%20Difference%3F,-Every%20program%20is&text=In%20a%20compiled%20language%2C%20the,reads%20and%20executes%20the%20code.)