Hands-On Go Programming: Explore Go by solving real-world challenges Learn Go programming with concise examples providing solutions to many common fundamental problems.
Go programlama dilinin syntax’ini kullanacak kadar anladınız ama iş gerçek kod yazmaya gelince kafanız karıştı ve acaba şu nasıl yapılır gibisinden sorular ile boğuşmaya başladıysanız, yeni kitabım Hands-on Go Programming tam da sizlere hitap ediyor. Teorik bilgiler ile boğmadan, en çok karşılaşılan problemleri çözmek suretiyle size Go dilini öğretecek ve devamlı yanınızda bir referans kitabı olarak kalacak bir kitap.
Yazılım kariyerimde çok programlama dili kullandım. Ama beni heyecanlandıran nadir dillerden bir tanesi oldu Go (Gopher). Go scripting dili havası olan, yalın bir syntax sunan ve aynı zamanda Statically-typed ve compile edilen bir dil. Bu iki aradığım özelliği Go dilinde görmek beni Go diline karşı fazlasıyla cezbetti. Go hem kod yazmayı hızlandırdığı gibi hem de yazılan kodları direk native instruction’lara compile etmesinden dolayı runtime’da hızlı bir çözüm sunuyor. Ama Go dilinde beğendiğim en önemli kısım yalın ve kullanılması kolay concurrency modeli.
İş yerinde Go eğitimleri verirken, insanlara Go da nasıl bir concurrency modeli olduğunu göstermek için 100000 tane go routine oluşturan bir döngü yazmıştım. go routine, Go da ki thread’ler gibi düşünülebilir. 100 000 tane go routine 1 saniyeden daha az zamanda oluşturuldu. Hadi bakalım, cesareti olan varsa 100 000 tane thread oluşturmayı denesin. Go da routine’ler 2KB memory footprint ile başlarken, normal thread’ler kullandıkları space 1 ile 8 MB arası değişiyor. 100 000 tane thread oluşturmak 100 000 MB yer kullanmak demek.
NodeJS’i ilk geliştiren Ryan Dahl bile NodeJS yerine Go programlama dilini tavsiye ediyor. Çünkü Go direk native instruction’lara çevrildiğinden dolayı, performanslı bir dil. JIT ya da interpreter’a ihtiyaç duymuyor.
Neyse bakalım. Umarım siz de Go dilini seversiniz.