Go tiliga kirish
Go (Golang) — bu Google kompaniyasidan kompilyatsiya qilinadigan, statik tiplangan dasturlash tili. Go tili asosan veb-xizmatlar va mijoz-server ilovalarini yaratish uchun mo‘ljallangan. Shuningdek, u grafik bilan ishlash, past darajadagi imkoniyatlar va boshqa sohalarda ham qo‘llaniladi.
Go (Golang) — bu Google kompaniyasidan kompilyatsiya qilinadigan, statik tiplangan dasturlash tili. Go tili asosan veb-xizmatlar va mijoz-server ilovalarini yaratish uchun mo‘ljallangan. Shuningdek, u grafik bilan ishlash, past darajadagi imkoniyatlar va boshqa sohalarda ham qo‘llaniladi.
Go tili ustida ishlar 2007-yilda Google kompaniyasida boshlangan. Tilning asosiy mualliflari qatorida Robert Grizemer (Robert Griesemer), Rob Payk (Rob Pike) va Ken Tompson (Ken Thompson) nomlari tilga olinadi. Aytgancha, Ken Tompson Denis Ritchi bilan birgalikda C tilining ham mualliflaridan biridir. 2009-yil 10-noyabrda til rasman e’lon qilingan, 2012-yil mart oyida esa 1.0-versiyasi chiqarilgan.
Hozirda ham til rivojlanishda davom etmoqda. Ushbu maqola yozilayotgan paytdagi so‘nggi versiya — 1.24-versiya (2025-yil fevral oyida chiqqan). Kichik versiyalar har olti oyda chiqariladi. Biroq versiyalar tez-tez chiqishiga qaramay, til keskin o‘zgarishlarsiz rivojlanmoqda: bir necha yil oldin yozilgan kod hozirgi Go versiyasida ham ishlayveradi.
Go tili open source (ochiq manba) sifatida rivojlanmoqda, ya’ni uning barcha kodlari va kompilyatorini bepul topish va ishlatish mumkin. Loyihaning rasmiy sayti: https://go.dev/ – bu yerda til haqida juda ko‘p foydali ma’lumotlar mavjud.
Go krosplatformali hisoblanadi, ya’ni u turli operatsion tizimlar – Windows, Mac OS, Linux, FreeBSD uchun dasturlar yaratish imkonini beradi. Kod ko‘chma xususiyatga ega: ushbu operatsion tizimlardan biri uchun yozilgan dastur qayta kompilyatsiya qilish orqali boshqa OTga osonlik bilan ko‘chirilishi mumkin.
Go tilining asosiy xususiyatlari:
Kompilyatsiya qilinadigan – Go kodi kompilyator orqali mashina kodiga aylantiriladi. Operatsion tizim bu kodni hech qanday ish vaqti (runtime) muhitisiz bajaradi, bu esa ishlash tezligini oshiradi.
Statik tiplangan – har bir o‘zgaruvchi ma’lum bir tipga bog‘langan va bu tip keyinchalik o‘zgartirilmaydi. Bu kompilyatorga tipga oid xatolarni dastur ishga tushishidan oldin aniqlashga yordam beradi.
Avtomatik xotira to‘plash (garbage collection) – dasturchi xotirani boshqarish haqida qayg‘urmasligi kerak. Hozirda Go’da “mark-and-sweep” usulidagi xotira to‘plash mexanizmi qo‘llaniladi.
Parallellik (concurrency) – bir vaqtning o‘zida bir nechta vazifani bajarish. Go’da bu gorutinlar va kanallar yordamida amalga oshiriladi. Gorutinlar boshqa funksiyalar bilan bir vaqtda bajariladigan funksiyalar sifatida qaraladi. Kanallar esa gorutinlar orasidagi aloqani ta’minlaydi.
Ko‘p yadrolilikni qo‘llab-quvvatlash –
GOMAXPROCSo‘zgaruvchisi bir vaqtning o‘zida nechta yadro ishlatilishini boshqaradi. Standart qiymat – apparatdagi yadrolar soniga teng.Generiklar (generics) – 1.18-versiyada qo‘shilgan. Ular bir tipni boshqa tiplar bilan birgalikda ishlatish imkonini beradi.
Sinov qilish soddaligi –
testingpaketi vago testbuyrug‘i kodni avtomatik test qilish imkonini beradi.Standart kutubxona – ko‘plab foydali paketlarni o‘z ichiga oladi.
Krosplatformalilik – Linux, Mac, FreeBSD, Windows, iOS, Android va boshqalarda ishlaydi.
Go’ning tarqalishi
Hozirda Go ko‘plab sohalarda keng qo‘llanilmoqda. Xususan, Go’ni qo‘llayotgan mashhur loyihalar va kompaniyalar qatoriga quyidagilar kiradi:
Google, Dropbox, Netflix, Kubernetes, Docker, Twitch, Uber, CloudFlare va boshqalar.
So‘nggi misollar:
Microsoft TypeScript kompilyatorini Go’ga o‘tkazishga qaror qildi.
VK.com o‘z servislarini Go’ga migratsiya qilishni boshladi.
Umuman, so‘nggi paytlarda kompaniyalar o‘z servislarini PHP’dan Go’ga o‘tkazish tendensiyasi kuzatilmoqda, ayniqsa korporativ ishlanmalarda.
Go’da ishlash uchun vositalarni o‘rnatish
Go bilan ishlash uchun avvalo matn muharriri (masalan, oddiy bloknot ham yetarli) va kompilyator kerak. Shuningdek, Go’ni qo‘llab-quvvatlaydigan maxsus ishlab chiqish muhitlari (IDE) ham mavjud, masalan JetBrains kompaniyasining GoLand. IntelliJ IDEA va Netbeans uchun Go plaginlari ham bor.
Kompilyatorni o‘rnatish uchun to‘plamni rasmiy saytdan yuklab olish mumkin: https://go.dev/dl/

Litsenziya shartnomasi qabul qilingandan so‘ng o‘rnatish joyini tanlash uchun oyna paydo bo‘ladi:

Masalan, Windows tizimida sukut bo‘yicha "C:\Program Files\Go\" yo‘lidan foydalaniladi. Standart yo‘lni qoldirib, keyingi oynaga o‘tamiz va unda Install tugmasini bosamiz:

Muvaffaqiyatli o‘rnatishdan so‘ng, o‘rnatish papkasida Go bilan ishlash uchun zarur bo‘lgan barcha fayllar joylashadi. Xususan, bin papkasida go faylini (Windows’da go.exe) topish mumkin. Bu fayl kompilyator vazifasini bajaradi.

MacOS’ga o‘rnatish
MacOS’ga o‘rnatish ham xuddi shunday – o‘rnatish ustasi (master) yordamida tugmalarni ketma-ket bosish kerak.



Linux'ga o‘rnatish
Linux uchun rasmiy sayt arxiv faylini taqdim etadi. Masalan, mening holatimda bu go1.24.4.linux-amd64.tar.gz fayli edi. Ushbu arxivni o‘rnatish uchun quyidagi buyruqni bajaramiz:
sudo rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.4.linux-amd64.tar.gzUshbu buyruq avval o‘rnatilgan versiyani (agar mavjud bo‘lsa) o‘chiradi va yangisini /usr/local/go papkasiga o‘rnatadi, shunga mos ravishda kompilyator /usr/local/go/bin papkasida joylashadi.
Shundan so‘ng, /usr/local/go/bin papkasiga yo‘lni muhit o‘zgaruvchilariga qo‘shamiz. Buning uchun $HOME/.profile yoki /etc/profile faylining oxiriga quyidagi qatorni qo‘shamiz: export PATH=$PATH:/usr/local/go/bin
Uni darhol qo‘llash uchun buyruqni bajaramiz
source $HOME/.profile
Go o‘rnatilishini tekshirish
O‘rnatishdan so‘ng, konsolda go version buyrug‘ini ishga tushirib, tilning versiyasini tekshirishimiz mumkin:
C:\Users\eugen>go version
go version go1.24.4 windows/amd64
C:\Users\eugen>