Go, statik tipli, derlenen, yüksek seviyeli bir programlama dilidir. Robert Griesemer, Rob Pike ve Ken Thompson tarafından Google'da 2007 yılından itibaren geliştirilmeye başlanmıştır. Sözdizimi C'ye benzerdir fakat hafıza erişimi güvenlidir, kullanılmayan hafıza kaynakları sisteme otomatik olarak geri verilir, interface veri tipleri sayesinde yapısal (özellik bazlı) tip sistemini (structural type system) destekler ve eşzamanlı (concurrent) çalışan işlemlerin (process) ortak hafıza kullanabilmelerinin yanında birbiriyle iletişim kurmalarını (communicating sequential processes) sağlayan ögelere sahiptir. Eski alan adı golang.org olduğundan sık sık golang ismiyle anılır ama asıl adı Go'dur.
![]() | |
| Paradigması | Derlenen, , yapısal |
|---|---|
| İlk çıkışı | 10 Kasım 2009) |
| Tasarımcı | Ken Thompson Robert Griesemer, Rob Pike |
| Geliştirici | Google Inc. |
| Kararlı sürüm | 1.23 (6 Şubat 2024) |
| Etkilendikleri | , APL,BCPL,C, CSP, , Modula, , Oberon, , Pascal,Python, Smalltalk |
| Platformu | Linux, OS X, Windows, bazı BSD ve Unix versiyonları |
| İşletim sistemi | Çapraz platform |
| Lisans | BSD lisansı stili |
| Olağan dosya uzantıları | .go |
| Web sitesi | go.dev |

Go derleyicisi "gc" açık kaynaktır ve Linux, OS X, Windows, bazı BSD ve Unix versiyonları ve ayrıca 2015'ten itibaren akıllı telefonlar için geliştirilmiştir.
Tarihçe
Dil, Kasım 2009'da duyurulmuştur. Google'ın bazı ürünlerinin sistemlerinde olduğu gibi diğer firmalar tarafından da kullanılmaktadır.
Go, Google mühendisleri Robert Griesemer, Rob Pike ve Ken Thompson tarafından bir deney olarak ortaya çıkarılmış, diğer dillerin bilinen eleştirilerini çözecek ve olumlu özelliklerini koruyacak şekilde tasarlanmıştır. Yeni dil aşağıdaki özellikleri içermekteydi:
- Statik yazılmış, büyük sistemlere ölçeklenebilir olması (Java ve gibi)
- Üretken ve okunabilir olması, çok fazla zorunlu anahtar kelime ve tekrarlamaların kullanılmaması
- Tümleşik geliştirme ortamına ihtiyaç duymaması ancak desteklemesi
- Ağ (networking) ve çoklu işlemleri (multiprocessing) desteklemesi
Yapılan röportajlarda bu üç dil tasarımcısının yeni dili yapmalarındaki motivasyonun, 'daki karmaşıklığı beğenmedikleri için geldiğini belirtmişlerdir.
Go 1.0, Mart 2012'de yayınlanmıştır.
Go'nun şu anki güncel sürümü 13 Ağustos 2024'te yayınlanan Go 1.23'tür.
Dil tasarımı
Go, C'nin bilinen özelliklerini taşımaktadır ancak yapılan değişiklikler dili basit, kısa ve güvenli hale getirmiştir. Aşağıda Go'yu kısaca tanımlayan özellikler yer almaktadır:
- Söz dizimi ve çevresel kalıpları benimsemesi daha çok benzemektedir:
- Değişken tanımındaki tür belirtimi isteğe bağlıdır. (
int x = 0;yerinex := 0;). - Hızlı derleme süresi.
- Uzak paket yöneticisi (
go get) ve online paket dökümantasyonu.
- Değişken tanımındaki tür belirtimi isteğe bağlıdır. (
- Belirli problemlere ayırt edici yaklaşımlar:
- Dahili eşzamanlılık ilkelleri: light-weight process'lar (goroutines), kanallar ve
selectifadesi. - Varsayılan olarak statik olarak bağlanmış native binary'ler, ekstra bağımlılıklara ihtiyaç duyulmadan üretilir.
- Dahili eşzamanlılık ilkelleri: light-weight process'lar (goroutines), kanallar ve
Söz dizimi
Go'nun söz dizimi, C'den yapılan değişiklikleri içerir, kodu kısa ve okunabilir kılmayı amaçlar. Birleştirilmiş declaration ve başlatma operatörü, programcılara i := 3 ya da s := "bazı kelimeler" yazarak, herhangi bir tür belirtimine ihtiyaç duyulmadan değişken tanımlamasını sağlar. Noktalı virgüller hala ifadeleri sonlandırır fakat satır sonlarında kullanılmasına gerek yoktur. Fonksiyonlar birden fazla değerler döndürebilir (return result, err).
Örnek kullanım
Go ile Merhaba dünya programı
package main import "fmt" func main() { fmt.Println("Merhaba dünya!") } Kaynakça
Bu makale, Creative Commons Attribution 3.0 lisansına sahip resmi Go eğitselinden Let's Go1 Temmuz 2016 tarihinde Wayback Machine sitesinde arşivlendi. alıntılar içermektedir.
- ^ "Release History - The Go Programming Language". go.dev. 22 Kasım 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Eylül 2024.
- ^ a b Pike, Rob (24 Nisan 2014). "Hello Gophers". 10 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Mart 2016.
- ^ "Language Design FAQ". golang.org. 16 Ocak 2010. 2 Ocak 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Şubat 2010.
- ^ "The Evolution of Go". 16 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Eylül 2015.
- ^ "Google's Go: A New Programming Language That's Python Meets C++". 7 Ocak 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Kasım 2009.
- ^ "Frequently Asked Questions (FAQ)". 22 Kasım 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Kasım 2022.
- ^ "Go FAQ: Is Google using Go internally?". 7 Ocak 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Mart 2013.
- ^ Pike, Rob (28 Nisan 2010). "Another Go at Language Design". Stanford EE Computer Systems Colloquium. Stanford University. 12 Haziran 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Şubat 2017. Video available 25 Kasım 2016 tarihinde Wayback Machine sitesinde arşivlendi..
- ^ "Frequently Asked Questions (FAQ) - The Go Programming Language". golang.org. 25 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Şubat 2016.
- ^ Andrew Binstock (18 Mayıs 2011). "Dr. Dobb's: Interview with Ken Thompson". 27 Temmuz 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Şubat 2014.
- ^ Pike, Rob (2012). "Less is exponentially more". 21 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Şubat 2017.
- ^ Robert Griesemer (2015). "The Evolution of Go". 5 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Şubat 2017.
- ^ "Release History". 17 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Şubat 2017.
- ^ "Go 1.23 is released - The Go Programming Language". go.dev (İngilizce). 15 Eylül 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Eylül 2024.
- ^ Pike, Rob. "The Go Programming Language". YouTube. 11 Şubat 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Temmuz 2011.
- ^ Rob Pike (10 Kasım 2009). The Go Programming Language (flv) (Tech talk). Google. 7 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Şubat 2017.
8:53
- ^ Download and install packages and dependencies - go - The Go Programming Language 12 Mart 2017 tarihinde Wayback Machine sitesinde arşivlendi.; see godoc.org 7 Ekim 2020 tarihinde Wayback Machine sitesinde arşivlendi. for addresses and documentation of some packages
- ^ "GoDoc". godoc.org. 3 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Mart 2020.
Dış bağlantılar
- Go Resmi Sitesi9 Temmuz 2011 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
- Go Türkiye Topluluğu5 Haziran 2016 tarihinde Wayback Machine sitesinde arşivlendi. (Türkçe)
- Go Turu1 Temmuz 2016 tarihinde Wayback Machine sitesinde arşivlendi. (Türkçe)
- YouTube'da The Go Programming Language (İngilizce)
- Mailing list / Newsgroup17 Kasım 2009 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
- /r/golang - Reddit Sayfası14 Kasım 2009 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
- Go Release History and Support End 27 Eylül 2022 tarihinde Wayback Machine sitesinde arşivlendi.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Go statik tipli derlenen yuksek seviyeli bir programlama dilidir Robert Griesemer Rob Pike ve Ken Thompson tarafindan Google da 2007 yilindan itibaren gelistirilmeye baslanmistir Sozdizimi C ye benzerdir fakat hafiza erisimi guvenlidir kullanilmayan hafiza kaynaklari sisteme otomatik olarak geri verilir interface veri tipleri sayesinde yapisal ozellik bazli tip sistemini structural type system destekler ve eszamanli concurrent calisan islemlerin process ortak hafiza kullanabilmelerinin yaninda birbiriyle iletisim kurmalarini communicating sequential processes saglayan ogelere sahiptir Eski alan adi golang org oldugundan sik sik golang ismiyle anilir ama asil adi Go dur GoParadigmasiDerlenen yapisalIlk cikisi10 Kasim 2009 15 yil once 2009 11 10 TasarimciKen Thompson Robert Griesemer Rob PikeGelistiriciGoogle Inc Kararli surum1 23 6 Subat 2024 Etkilendikleri APL BCPL C CSP Modula Oberon Pascal Python SmalltalkPlatformuLinux OS X Windows bazi BSD ve Unix versiyonlariIsletim sistemiCapraz platformLisansBSD lisansi stiliOlagan dosya uzantilari goWeb sitesigo devGo nun onceki Amerikan yer sincabi maskotlu logosu Go derleyicisi gc acik kaynaktir ve Linux OS X Windows bazi BSD ve Unix versiyonlari ve ayrica 2015 ten itibaren akilli telefonlar icin gelistirilmistir TarihceDil Kasim 2009 da duyurulmustur Google in bazi urunlerinin sistemlerinde oldugu gibi diger firmalar tarafindan da kullanilmaktadir Go Google muhendisleri Robert Griesemer Rob Pike ve Ken Thompson tarafindan bir deney olarak ortaya cikarilmis diger dillerin bilinen elestirilerini cozecek ve olumlu ozelliklerini koruyacak sekilde tasarlanmistir Yeni dil asagidaki ozellikleri icermekteydi Statik yazilmis buyuk sistemlere olceklenebilir olmasi Java ve C gibi Uretken ve okunabilir olmasi cok fazla zorunlu anahtar kelime ve tekrarlamalarin kullanilmamasi Tumlesik gelistirme ortamina ihtiyac duymamasi ancak desteklemesi Ag networking ve coklu islemleri multiprocessing desteklemesi Yapilan roportajlarda bu uc dil tasarimcisinin yeni dili yapmalarindaki motivasyonun C daki karmasikligi begenmedikleri icin geldigini belirtmislerdir Go 1 0 Mart 2012 de yayinlanmistir Go nun su anki guncel surumu 13 Agustos 2024 te yayinlanan Go 1 23 tur Dil tasarimiGo C nin bilinen ozelliklerini tasimaktadir ancak yapilan degisiklikler dili basit kisa ve guvenli hale getirmistir Asagida Go yu kisaca tanimlayan ozellikler yer almaktadir Soz dizimi ve cevresel kaliplari benimsemesi daha cok benzemektedir Degisken tanimindaki tur belirtimi istege baglidir int x 0 yerine x 0 Hizli derleme suresi Uzak paket yoneticisi go get ve online paket dokumantasyonu Belirli problemlere ayirt edici yaklasimlar Dahili eszamanlilik ilkelleri light weight process lar goroutines kanallar ve select ifadesi Varsayilan olarak statik olarak baglanmis native binary ler ekstra bagimliliklara ihtiyac duyulmadan uretilir Soz dizimi Go nun soz dizimi C den yapilan degisiklikleri icerir kodu kisa ve okunabilir kilmayi amaclar Birlestirilmis declaration ve baslatma operatoru programcilara i 3 ya da s bazi kelimeler yazarak herhangi bir tur belirtimine ihtiyac duyulmadan degisken tanimlamasini saglar Noktali virguller hala ifadeleri sonlandirir fakat satir sonlarinda kullanilmasina gerek yoktur Fonksiyonlar birden fazla degerler dondurebilir return result err Ornek kullanimGo ile Merhaba dunya programi package main import fmt func main fmt Println Merhaba dunya KaynakcaBu makale Creative Commons Attribution 3 0 lisansina sahip resmi Go egitselinden Let s Go1 Temmuz 2016 tarihinde Wayback Machine sitesinde arsivlendi alintilar icermektedir Release History The Go Programming Language go dev 22 Kasim 2021 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Eylul 2024 a b Pike Rob 24 Nisan 2014 Hello Gophers 10 Ekim 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Mart 2016 Language Design FAQ golang org 16 Ocak 2010 2 Ocak 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 27 Subat 2010 The Evolution of Go 16 Ocak 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 26 Eylul 2015 Google s Go A New Programming Language That s Python Meets C 7 Ocak 2019 tarihinde kaynagindan arsivlendi Erisim tarihi 13 Kasim 2009 Frequently Asked Questions FAQ 22 Kasim 2021 tarihinde kaynagindan arsivlendi Erisim tarihi 7 Kasim 2022 Go FAQ Is Google using Go internally 7 Ocak 2019 tarihinde kaynagindan arsivlendi Erisim tarihi 9 Mart 2013 Pike Rob 28 Nisan 2010 Another Go at Language Design Stanford EE Computer Systems Colloquium Stanford University 12 Haziran 2014 tarihinde kaynagindan arsivlendi Erisim tarihi 21 Subat 2017 Video available 25 Kasim 2016 tarihinde Wayback Machine sitesinde arsivlendi Frequently Asked Questions FAQ The Go Programming Language golang org 25 Subat 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 26 Subat 2016 Andrew Binstock 18 Mayis 2011 Dr Dobb s Interview with Ken Thompson 27 Temmuz 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 7 Subat 2014 Pike Rob 2012 Less is exponentially more 21 Mart 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 21 Subat 2017 Robert Griesemer 2015 The Evolution of Go 5 Eylul 2015 tarihinde kaynagindan arsivlendi Erisim tarihi 21 Subat 2017 Release History 17 Subat 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 21 Subat 2017 Go 1 23 is released The Go Programming Language go dev Ingilizce 15 Eylul 2024 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Eylul 2024 Pike Rob The Go Programming Language YouTube 11 Subat 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 1 Temmuz 2011 Rob Pike 10 Kasim 2009 The Go Programming Language flv Tech talk Google 7 Mart 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 21 Subat 2017 8 53 Download and install packages and dependencies go The Go Programming Language 12 Mart 2017 tarihinde Wayback Machine sitesinde arsivlendi see godoc org 7 Ekim 2020 tarihinde Wayback Machine sitesinde arsivlendi for addresses and documentation of some packages GoDoc godoc org 3 Subat 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 21 Mart 2020 Dis baglantilarGo Resmi Sitesi9 Temmuz 2011 tarihinde Wayback Machine sitesinde arsivlendi Ingilizce Go Turkiye Toplulugu5 Haziran 2016 tarihinde Wayback Machine sitesinde arsivlendi Turkce Go Turu1 Temmuz 2016 tarihinde Wayback Machine sitesinde arsivlendi Turkce YouTube da The Go Programming Language Ingilizce Mailing list Newsgroup17 Kasim 2009 tarihinde Wayback Machine sitesinde arsivlendi Ingilizce r golang Reddit Sayfasi14 Kasim 2009 tarihinde Wayback Machine sitesinde arsivlendi Ingilizce Go Release History and Support End 27 Eylul 2022 tarihinde Wayback Machine sitesinde arsivlendi
