Go

Paylaş:

Bu sorular yalnızca Go'yu üç ana programlama dilinden biri olarak seçen katılımcılara gösterildi.

Go'yu hangi amaçla kullanıyorsunuz?

64%
65%

İş

28%
28%

Kişisel/yan projeler

7%
5%

Hobi

2%
2%

Diğer

Verimliliği ve hızı, eşzamanlılık özellikleri, güçlü standart kitaplığı, basitliği ve okunabilirliğiyle öne çıkan Go, kesinlikle üretime hazır bir dil ve Go'yu iş için kullanan geliştiricilerin payının artması şaşırtıcı değil. Go; Google, Dropbox, Microsoft, PayPal, Netflix ve diğerleri dahil olmak üzere birçok büyük şirket tarafından üretim için kullanılıyor.

Go'da geliştirirken birincil olarak hangi işletim sistemini kullanıyorsunuz?

58%

MacOS

45%

Linux

30%

Windows

11%

WSL

Bu veriler, Go ekibi tarafından yürütülen anketlerde gördüklerimizle neredeyse tutarlıdır. Go'ya genellikle "bulut dili" denir çünkü bulutta yerel uygulamalar ve DevOps araçları oluşturmak için yaygın olarak kullanılır. Bu, Go geliştiricileri arasında Linux ve macOS'un popülerliğini açıklıyor.

Aynı anda birden çok Go sürümü kullanıyor musunuz?

Go geliştiricilerinin yalnızca 1/3'ü tek seferde tek bir projeyle çalışıyor, geri kalan kesim eş zamanlı olarak birden çok projeyle çalışıyor.

Hangi Go sürümünü kullanıyorsunuz?

47%

1.20

46%

1.19

27%

1.18

11%

1.17

6%

1.16

3%

1.15

7%

Diğer

Go, geriye dönük uyumluluk açısından harikadır, ancak bazı kullanıcılar hâlâ aynı anda birkaç sürüm çalıştırıyor. Kullanım örneklerinden biri, geliştiricilerin regresyonları yakalamak ve diğer sorunları tespit etmek için CI'larını Go'nun iki veya üç farklı sürümüyle çalışacak şekilde ayarlamasıdır.

Go geliştirmek için hangi şablon motorunu kullanıyorsunuz?

27%

html/template

16%

text/template

5%

Pongo2

2%

Plush

1%

Diğer

61%

Hiç

Html/şablonun en üst sırayı alması mantıklı. Bu paket, kullanıcı tarafından oluşturulan veriler gibi potansiyel olarak tehlikeli içeriklerden otomatik olarak kaçınır ve kod yerleştirme saldırılarından kaçınmanıza yardımcı olur.

Aynı projede Go ile birlikte hangi dilleri kullanıyorsunuz?

32%

JavaScript

28%

Python

26%

TypeScript

10%

C

6%

Rust

5%

C++

21%

Diğer

Kısa süre önce yapılan Go anketine göre, Go geliştiricilerinin %37'si web siteleri ve web hizmetleri oluşturmak için Go'yu kullanıyor. Bu veriler, neden bu kadar çok geliştiricinin aynı projede JavaScript, TypeScript ve Go kullandığını açıklıyor.

Python'un yüksek sıralaması muhtemelen birçok Python projesinin Go'ya geçme eğiliminden kaynaklanıyor. Geliştiriciler Python'da yazılmış bir projeye yeni hizmetler eklemeye karar verirken genellikle verimliliği, eşzamanlılık desteği ve ağ oluşturma ve web hizmetlerinde güçlü performansıyla bilinen Go'yu tercih ediyor. Bu yaklaşımın dezavantajları vardır, ancak geliştiricilerin kod tabanlarını yeniden yazmasına gerek kalmamasını sağlar.

GoLand'in, JavaScript ve TypeScript için destek sağladığını göz önünde bulundurun. Ayrıca Python Community Edition eklentisini yükleyebilir ve Python desteğinden yararlanabilirsiniz.

Go ile ne tür yazılımlar geliştiriyorsunuz?

41%

Yardımcı programlar

37%

Web siteleri

32%

BT Altyapısı

27%

Kütüphaneler / Altyapılar

24%

Sistem Yazılımı

19%

Programlama Araçları

16%

Veri Tabanı / Veri Depolama

Çalışma alanları (go.work) kullanıyor musunuz?

Çalışma alanı modu Go 1.18'de tanıtıldı ve geliştiricilerin her modül için go.mod dosyalarını düzenlemeye gerek kalmadan aynı anda birden fazla modül üzerinde çalışmasına olanak tanıdı. Go çalışma alanlarıyla, go.work dosyasını kullanarak tüm bağımlılıkları kontrol edebilirsiniz.

Hangi Go web çerçevelerini düzenli olarak kullanıyorsunuz?

46%

51%

Gin

44%

43%

net / http

11%

13%

Echo

6%

6%

Beego

2%

2%

Buffalo

Geçen yıl olduğu gibi, Gin çerçevesi web geliştirme için en popüler çözüm olmaya devam ediyor, standart kitaplıktaki net/http paketi ise yerini koruyor. Gin ve net/http arasındaki farkları daha iyi anlamak için Go REST Kılavuzumuza göz atın.

Ne tür Go modülleri proxy'si kullanıyorsunuz?

41%

Proxy kullanmıyorum

27%

Herkese açık goproxy.io / goproxy.cn

21%

Herkese açık proxy.golang.org

12%

Özel goproxy

3%

Özel JFrog Artifactory

2%

Özel Athens

1%

Diğer

8%

Bilmiyorum

Projelerinizde dışarıdan hizmet alıyor musunuz?

Go'da, sağlayıcı dizinine taşımak belirli bir proje için gereken bağımlılıkların kendi yerel kopyalarını oluşturma ve bu kopyaları dosya yapınıza dâhil etme uygulamasıdır. Böylece, projenizin bir uygulama oluşturmak için gerekli tüm kodu içerdiğinden emin olabilirsiniz ve harici kaynaklardan bağımlılık indirmeye bağlı kalmak zorunda kalmazsınız.

Çoğu yaklaşım gibi, sağlayıcı dizinine taşımanın da bazı dezavantajları vardır. Bazı geliştiriciler, sağlayıcı dizinine taşımanın kod deposunu daha az şeffaf hâle getirdiğini ve değişikliklerin incelenmesini zorlaştırdığını düşünüyor. Go modülleri, bağımlılıkları önbelleğe alan ve doğru paket sürümünün her zaman kullanılabilir olmasını sağlayan Go proxy gibi özellikler sayesinde geliştiricilerin sağlayıcı dizinine kaydetme pratiğinden uzaklaşmasına yardımcı olur.

Hangi Go yönlendiricisini düzenli olarak kullanıyorsunuz?

37%

Standart kütüphane

27%

gorilla / mux

13%

go-chi / chi

4%

julienschmidt / httproute

4%

gocraft / web

1%

go-zoo / bone

10%

Diğer

27%

Hiç

Standart kitaplık popüler yönlendiriciler olan gorilla/mux ve go-chi/chi'yi hâlâ geride bırakıyor. Gorilla/mux ile standart kitaplık arasındaki farkları daha iyi anlamak için Go REST Kılavuzu'na başvurabilirsiniz.

Hangi test çerçevelerini düzenli olarak kullanıyorsunuz?

34%

Birim testi yazıyorum, ancak çerçeve kullanmıyorum

27%

testify

21%

gomock

5%

go-sqlmock

5%

ginkgo

3%

goconvey

2%

gomega

1%

godog

2%

Diğer

23%

Go için birim testi yazmıyorum

Projelerinizde kaç harici bağımlılık var?

IDE'de / düzenleyicide kullandığınız kod tabanının boyutu nedir?

27%

24%

50 dosyadan az

25%

24%

51 - 100 dosya

16%

19%

101 - 300 dosya

13%

15%

301 - 1.000 dosya

7%

7%

1.001 - 5.000 dosya

Eşdeğerler kullanıyor musunuz?

22%

Evet, düzenli olarak

34%

Evet, bazen

26%

Hayır, fakat denedim

19%

Hayır ve denemedim

Go geliştiricileri çok uzun süredir eşdeğerler için destek istiyor ve bu destek sonunda Go 1.18'e Mart 2022'de eklendi. Yaklaşık bir yıl sonra, Go geliştiricilerinin %80'inden fazlası eşdeğerleri kullanıyor veya denemiş durumda.

TinyGo'yu aşağıdakilerden hangileri için kullanıyorsunuz?

75%

Hiçbiri

11%

CLI geliştirmek için

9%

WebAssembly bulunan projeler için

9%

Mikro denetleyiciler için

TinyGo, yerleşik sistemler veya WebAssembly için küçük ve verimli programlar geliştirmeniz gerektiğinde mükemmel sonuçlar verir. Bu anketin gösterdiği gibi, TinyGo aynı zamanda CLI'ler oluşturmak için de kullanılıyor. Go'nun harika bir standart kitaplığı olmasına rağmen yalnızca temel görevleri gerçekleştiren bir CLI oluşturuyorsanız Go'nun gücüne ihtiyacınız olmayabilir. Bu durumda, CLI'nizi basit ve kullanıma özel olarak geliştirmenize olanak tanır.

Hangi yapı sistemlerini düzenli olarak kullanıyorsunuz?

87%

Go derlemesi

44%

Makefile

6%

Gradle

3%

Bazel

1%

Yukarıdakilerden hiçbiri

3%

Diğer

Zaman ayırdığınız için teşekkür ederiz!

Raporumuzu faydalı bulduğunuzu umuyoruz. Bu raporu arkadaşlarınızla ve meslektaşlarınızla paylaşın.

Herhangi bir soru ya da öneriniz varsa lütfen bizimle surveys@jetbrains.com adresinden iletişime geçin.