Kedze je GO taky aky je...
Tak som pisal clanok o jeho lepsich a modrenjsich alternativych:
https://harrison314.github.io/GoLang.html
@armabeton: robis slameneho strasiaka. Pri C++ som narazal na modrne prvky (funkcionalne prvky, sprava pamete) a pri tom jednoduchu paralizaciu cez omp. Plus kod v C++11 vyzera uplne inak ako pri starsich standardoch.
Co sa taky balickov je viacej rieseni, ja som sa stretol z vcpkg, nugetom, plus par linux only.
ja to nemyslel jako utok, jen se podivuju nad tim, ze Go ma vypsany jako nevyhodu spatnou spravu balicku a verzi (ted se to zlepsilo) a hned pod tim je jako alternativa C++, ktere spolecne s C je na tom uplne stejne spatne, spis jeste hur. Hlavne v porovnani s ekosystemy okolo NPM, PyPi, Mavenu, Gems atd.
Má panic/recover/defer. Ale samotní autoři Go jsou v tomto trošku schizofrenní, protože tvrdí, že výjimky nejsou potřeba...
Navíc panic/recover je ještě horší než Java, protože ta alespoň u ne-runtime výjimek vyžaduje povinné zveřejnění throws v deklaraci funkce. On se tedy panic nemá používat jako API.
Jenže stejný problém mám i s Go error interfacem. Není z něj vidět jaké errory se tam mohou objevit.
Nechci rýpat do tvých závěrů, jsem si vědom, že na to máme odlišný pohled, ale když už jsi sám zmínil svůj blog, tak jenom oprava:
- Nemožnosť kros-kompilácie ak sa použije v kombinácii s C/C++.
Toto není pravda. Použití C/C++ samozřejmě zanáší platformní závislosti, které je potřeba ošetřit, ale kros-kompilace se pak nijak neliší od případu, kdy by bylo použito samotné C nebo C++. Pokud je možná tam, je možná i v Go. Viz projekty, které to zjednodušují, např. https://github.com/karalabe/xgo.
Uváděná alternativa Mono je úsměvná a ještě štěstí, že si tvůj závěr (vhodné jen na velmi malé projekty) nepřečetli autoři systémů jako Docker, Kubernetes, Prometheus, InfluxDB, Syncthing, etcd, Consul, NATS, NSQ atd, některé z nich by mi celkem chyběly. :D