Giriş Yap / Kayıt Ol

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.

Go programlama dili geliştirilmeye başlandığı tarihten itibaren uzun bir test sürecine tabii tutuldu. Onlarca Google mühendisinin dahil olduğu projenin ilk meyveleri 2012 yılında Go’nun kararlı sürümü olarak yayınlanan Go 1.0 ile birlikte toplanmaya başlandı. Sunucu tarafındaki avantajları ve kolayca öğrenilebiliyor olması, Go’nun kısa sürede büyük bir kitle tarafından kabul görmesine yardımcı oldu. Adobe, BBC, IBM, Intel ve Medium gibi birçok tanınmış şirket, Go programlama dilini kullanmaya başlayarak Go’nun avantajlarından faydalandı. Peki, Google’ın programlama dili Go’yu diğer programlama dillerinden farklı kılan ve dev firmaların açık kaynaklı ve ücretsiz bu programlama diline yönelmesine neden olan şey neydi?

Golang

Donanım dünyasında son 20 yılda dev atılımlar görmüş olsak da, son 10 yılın önceki 20 yıla oranla daha durağan geçtiğini kabul edebiliriz. İlk Pentium 4 işlemci 3.0 GHz hızıyla 2004 yılında Intel tarafından yayınlanmıştı. Bugün kullandığımız işlemci mimarilerinde hala 3.0 GHz baraj hızıdır ve çoğu zaman bu sınırı aşmak adına daha çok çekirdekli işlemcilere ihtiyaç duyulur. Sunucu tarafında performansı arttırmak adına bu aşamada karşımıza iki farklı sorun çıkıyor; yazılım ve donanımsal sorunlar. Google’ın Go programlama dilinin yardım eliyle bunları iplik söküğü gibi kolayca halledebilme avantajına sahip oluyoruz.

Eğer bir sunucunun veya sistemin işlemci performansını arttırmak zorunda kalıyorsanız yapabileceğiniz yalnızca birkaç şey vardır. En önemli yükseltmelerden biri işlemci için daha çok çekirdekli modelleri tercih etmektir. Hyper-thread teknolojisinin yanı sıra işlemciler için cache (önbellek) uygulaması yaparak performansı maksimuma çıkarabiliriz. Donanımsal ve yazılımsal açıdan bu sorunlar çoğu kez kendi içinde limitlere sahiptir. Sistemin işlemcisinde daha çok çekirdek kullanmak demek, daha fazla maliyet ve fazladan elinizi cebinize atmak demek. Cache’den elde edebileceğiniz verim ise yalnızca kullandığınız Cache’in boyutuyla orantılı olacaktır. Cache’in boyutu arttıkça performansın düşüşü kaçınılmazdır.

Tüm bunların dışında, Go’yu diğer programlama dillerinden ayıran önemli farklılık var. Bugün modern programlama dili olarak kabul ettiğimiz dillerin (Java ve Python gibi) genellikle 90’lı yıllarda geliştirildiğini tek dişli işlemeler yaptıklarını görüyoruz. Sonradan bu dillere çoklu işleme desteği (multi-threading) eklenmiştir fakat bu destek dillere sonradan kazandırılmıştır. Go dili ise 2012 yılında sahneye çıkmış, çağın gerekliliklerine uygun ve kendiliğinden Multi-threading olarak tasarlanmış bir programlama dilidir.

Google’ın programlama dili Go’yu diğer dillerden farklı kılan tüm bu donanım ve yazılım sorunlarına kendi bünyesinde çözümler üretmeyi başarması, güvenli ve performansı yüksek sistemler oluşturmaya yardımcı olmasıdır. Bunu ne şekilde yaptığı ve Go programlama dilinin özellikleri hakkında dahasına ihtiyacınız varsa bir alt başlığımızdan devam edebilirsiniz.

Google Go

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.

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.

Golang

Go programlama dilindeki esas, bir dilin gereksiz tüm bütünlerini ayırıp onu sadece en yararlı özelliklerle donatmaktır. Google’ın ve dolayısıyla Go programlama dilinin bu felsefesi, Go’yu öğrenmeyi katbekat kolaylaştırır. Google, Go’yu yalnızca dışarıya dönük ihtiyaçlar için hazırlamamıştır. Go’yu başta kendi sunucuları, sonrasında ise tüm internet dünyası için düşünerek geliştirmiştir. Google’da bir kodun üzerinde onlarca mühendisin çalışabilmesi için kodların anlaşılabilir olması ve yazılımcılarının yazdığı kodlarının birbiriyle uyum içinde çalışması gerekir. Go’nun basit ve kurallı bir Syntax’e sahip olmasının nedeni budur. Bir programlama dilinde istediğiniz bir şeyi meydana getirmenin birden fazla yolu olabilir. Ancak söz konusu olan Go ise sadece tek bir doğru vardır ve diğer istisnalar kabul edilemez. Böylece kod dosyası üzerinde değil onlarca, yüzlerce yazılımcı çalışsa bile birbirlerinin hazırladıkları kodlar daima uyum içinde çalışacaktır.

Go programlama dilinin diğer diller karşısındaki farklılıkları bu kadarla sınırlı değil. Go, diğerlerinin aksine “Classes” adını verdiğimiz Sınıflar yapısını kullanmıyor ve bunun yerine her şey paketlerin içine yerleştiriliyor. Sınıflar yerine Google Go’da “yapılar” ön plana çıkıyor. Modern programlama dillerinden alışkın olduğumuz inheritance desteği, constructors, açıklama metinleri (annotations) de Go’nun yapısında yer almayan diğer tuhaflıklardan ibaret.

Google Go programlama diliyle tek yapmanız gereken ihtiyacınız olanı düşlemek ve birkaç satır kod yazarak modern ve hızlı kabul edilen programlama dillerinden daha başarılı işler çıkartmak. Ardında Google’ın yer aldığı Go’nun yıldızının her geçen yıl parladığı kesin. Shopify’ın kurucu başkanı Tobias Lütke’un dediği gibi “Go, geleceğin sunucu dili olacaktır.” İddiasının gerçekçiliğiniyse ancak gelecekte görebileceğiz.

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 Dilini Dünyada ve Ülkemizde Kimler Kullanıyor?

Go’nun büyük bir kitle tarafından kabul görmesi uzun sürmemiştir. Dünya devleri olarak kabul edebileceğimiz Docker, Koding, Google, Apple, Twitter, Amazon, Github, Ubuntu, Dropbox, Facebook ve Medium başta olmak üzere birçok şirket Go’yu farklı ihtiyaçları için kullanıyor.

Ülkemizde ise AKM Yazılım, GramGames, Insider, MaestroPanel, Mentornity, Metglobal, Mos Teknoloji, Netinternet Bilisim Teknolojileri, Optimum Yazılım, Peak Games ve put.io kullanıyor. Daha ayrıntılı bir kullanıcı listesine erişmek için dilerseniz buraya tıklayabilirsiniz.

Aklına bir soru mu takıldı? O zaman uzmana sor:

WM Aracı Maskotu Boa WM Aracı © 2010 - 2018
Bir Boğa Bilişim markası.
Cesur.NETWM Aracı Cesur.NET İnternet Teknolojileri'nde güvenle barınmaktadır.