Řešení závislostí bylo přidáno do golangu v roce 2018/19: https://go.dev/blog/using-go-modules
A i předtím existovaly 3rd party nástroje.
Zrovna tohle je věc, co se mi na golangu líbí - jeden oficiální built-in způsob řešení závislostí, je to nekomplikovaný, všechno je zapinovaný a checksumovaný a navíc ani nemusím nic explicitně instalovat, vytvářet virtuální environmenty apod., stačí "go build/run", víc neřeším.
Neni nad prispevatele, kteri videli Go z rychliku nebo naposledy pred par lety :-)
Instalace z tagu v2.0.1:
go get github.com/user/repo@v2.0.1
Instalace z adresare v2:
go get github.com/user/repo/v2
Go striktni verzovani nevynucuje. Projekt vetsinou zacina instalaci z nestabiliho masteru. Stabilni tagy zacne pouzivat pozdeji. A az prijde prvni breaking change, oddeli dosavadni vetev pro udrzeni kompatibility. Jo, vic moznosti dela ekosystem slozitejsi, ale kdyz se hned nechcete ucit vsechno, zacatek mate jednodussi. Pozdeji, kdyz chcete jistou verzi, musite se podivat na stranky projektu, co pisou o instalaci zavislosti.
Node.js a Python vedou vyvojare k verzovani od zacatku. Ve verzovani je vetsi rad.
Kdyz jsem zacal s Pythonem, myslel jsem, si ze semver v nem plati stejne jako v Node.js. Chyba lavky. Zatimco u Node.js baliku se pri upgradu, ktery nejde pres major verzi, muzete temer spolehnout, ze vysledek bude fungovat, v Pythonu je to obracene. Pripomnelo mi to Rust, kde semver snad ignorujou schvalne.
Moje zkusenosti s kvalitou semver verzovani OSS baliku: Node.js > Python > Rust. V Go je verzovani nepovinne, takze by ho umistil jeste pod Rust. Proste se musite prizpusobit tomu, jak ekosystem funguje.
18. 8. 2025, 12:34 editováno autorem komentáře
Nejde o žádný nestabilní master. Go bylo navrženo tak, že se jedná o malé, jednoúčelové a funkční knihovny, takže žádný nestabilní master neexistoval a fungovalo i bez verzování.
Bohužel, z mojí zkušenosti plyne, že každé další v.něco v tom udělá jen nepořádek.
Programuje se po malých, funkčních a otestovaných blocích kódu.
Google ho dělal pro sebe a zároveň ho uvolnil, netají se tím, že to je jazyk pro ně.
Go is a programming language designed by Google to help solve Google's problems, and Google has big problems.
pokud jde o ty závislosti, sami to popsali https://go.dev/talks/2012/splash.article#TOC_7, je to jejich rozhodnutí a tak to je. Udržovat celý strom různých verzí programů, řešit upgrady v definici závislostí, to je vše, co jim nevyhovovalo.
Celý paradigma go je o tom, že buildíš často a pořád.