Programovaniepokročilý

Čo je Go?

Go (tiež Golang) je staticky typovaný, kompilovaný programovací jazyk navrhnutý v spoločnosti Google. Vytvorili ho Robert Griesemer, Rob Pike a Ken Thompson a prvá verzia vyšla v roku 2009. Go vyniká v budovaní škálovateľných serverových služieb a cloud-native aplikácií.

Definícia Go

Čo je Go

Go (neoficiálne Golang) je programovací jazyk vyvinutý v Google trojicou skúsených informatikov: Robert Griesemer, Rob Pike a Ken Thompson (spolutvorca Unixu a jazyka C). Prvá verejná verzia vyšla v novembri 2009.

Go vznikol ako odpoveď na frustráciu z komplexnosti C++ a pomalej kompilácie v Google. Cieľom bolo vytvoriť jazyk, ktorý je jednoduchý, rýchly na kompiláciu a vynikajúci na súbežné programovanie.

Kľúčové vlastnosti

  • Goroutines — ľahké vlákna na súbežné spracovanie, tisíce goroutines bežia s minimálnou réžiou
  • Channels — bezpečný spôsob komunikácie medzi goroutines
  • Rýchla kompilácia — veľké projekty sa skompilujú za sekundy
  • Staticky linkovaný binárny súbor — výsledkom kompilácie je jeden súbor bez závislostí

Kde sa Go používa

Go dominuje v cloud-native ekosystéme. Docker, Kubernetes, Terraform, Prometheus a Grafana sú napísané v Go. Používa sa na mikroslužby, CLI nástroje, sieťové servery a DevOps nástroje. Spoločnosti ako Google, Uber, Twitch a Dropbox ho používajú v produkcii.

Praktický príklad

Príklad: Firma prechádza z monolitickej architektúry na mikroslužby.

Každá mikroslužba je napísaná v Go a nasadená v Docker kontajneri. Go je ideálny — kompiluje sa do jedného binárneho súboru (malý Docker image), goroutines efektívne spracúvajú tisíce súbežných požiadaviek a nízka spotreba pamäte znižuje náklady na cloud infraštruktúru.

Často kladené otázky

Prečo sa Go volá aj Golang?

Oficiálny názov je „Go", ale keďže slovo „go" je príliš bežné na vyhľadávanie, komunita používa „Golang" (go-lang.org bola pôvodná doména). Pri vyhľadávaní je lepšie hľadať „golang".

Na čo je Go najlepšie?

Go vyniká v budovaní serverových služieb, mikroslužieb, CLI nástrojov a DevOps nástrojov. Je ideálny pre systémy, ktoré potrebujú spracovať veľa súbežných požiadaviek (web servery, API, proxy).

Je Go jednoduchý na naučenie?

Áno, Go je úmyselne jednoduchý. Má iba 25 kľúčových slov, minimálnu syntax a odmietol funkcie ako dedičnosť, generické typy (pridané v 1.18) a výnimky. Skúsený programátor sa Go naučí za týždeň.

Aký je rozdiel medzi Go a Rust?

Go je jednoduchší jazyk s garbage collectorom, zameraný na produktivitu a súbežnosť. Rust je komplexnejší, bez garbage collectora, zameraný na pamäťovú bezpečnosť a maximálny výkon. Go pre webové služby, Rust pre systémový softvér.

Súvisiace pojmy

Potrebujete pomôcť s webom?

Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.