Proč jazyk Go

Publikováno 08-30-2016 20:50:18

Než si povíme, proč programovat v Go a ne třeba v Java, tak odkaz na informace o jazyku Go na wikipedia.

Po této trošce suché teorie něco praxe. Programovací jazyky se dělí do několika skupin. V rámci nich Go zapadá do těchto:

  • kompilovaný - programy v Go se musí před během kompilovat, na rozdíl od jazyků typu JavaScript, nebo Python
  • nativní - programy v Go se kompilují do nativního kódu. Programy tedy nepotřebují běhové prostředí, jako např. Java (ta má JVM), nebo .net (ten má .net framework)
  • silně typovaný - program psaný v Go může použít pouze typy známé v době kompilace. To je rozdíl proti např. JavaScript, kde jsou typy známi až v době spuštění.
  • strukturální - typy nemusí uvádět, s jakým typem jsou kompatibilní. Třeba Java jakožto nominální jazyk toto musí uvádět (class b extends a)
  • funkcionální - v Go jsou funkce občany první kategorie. Funkce mohou přijímat funkce jako parametr a také je vracet. Toto např. Java do verze 8 neuměla.

Když tedy víme, co je Go zač, tak důvody proč si zvolit Go:

  • Go je rychlý jazyk. Kompiluje se do nativního kódu, takže startuje bleskově. A není potřeba jej “zahřívat”, běží rychle na první pokus.
  • Go se rychle kompiluje, takže je tu značná úspora času.
  • Go má širokou základní knihovnu. Jen málo věcí v ní nenajdete. Kromě toho tyto implementace jsou opravdu použitelné a mnoho programů si tak plně vystačí se standardní knihovnou.
  • Go je poučené. Autoři jazyka se poučili ze zkušenosti jiných jazyků a implementovali jazyk tak, aby se vyhnuli nedostatkům jiných jazyků.
  • Go má názor. Na rozdíl od jiných jazyků, které nechají uživatele dělat si co chce, Go podporuje, nebo přímo nařizuje, jak psát kód.
  • Go je jazyk inženýrů. Při designu jazyka se přemýšlelo, což se nedá říci o mnoha jiných jazycích (radši žádný nejmenuji)
  • Go má standardní ekosystém na který se dá spolehnout. Od formátování kódu, po kompilaci, vše dostanete v základu.
  • Go má jednu z nejlepších dokumentací. A plnou jasných a použitelných příkladů.
  • Go se snadno testuje, neboť má testování zakomponováno přímo do jádra jazyka.

Go nějaké nevýhody? Má:

  • Go je mnohých směrech omezené. Autoři se prostě rozhodli, že jsou věci, které programátoři nemohou použít. Např. generické programování, dědičnost, přetěžování apod.
  • Go stále nevyřešilo management závislostí.
comments powered by Disqus