Pokud je to pro někoho trochu pomalejší rozjezd, tak zde je blogový zápisek, který ukazuje, jak udělat v Go jednoduchou webovou aplikaci.
http://www.abclinuxu.cz/blog/apra/2018/5/jednoducha-webova-aplikace-v-go
Trošku OT, ale zrovna teď na abíčku vyšlo upozornění [http://www.abclinuxu.cz/zpravicky/dive-nastroj-pro-analyzu-obrazu-pro-docker] na pěkný projekt vytvořený právě v Go:
https://github.com/wagoodman/dive
ukázka možností:
https://raw.githubusercontent.com/wagoodman/dive/master/.data/demo.gif
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
jsem si taky říkal, protože AArch64 je dneska už mainstream (A8 atd..), ale je fakt že to mají schovaný pod other ports: https://golang.org/dl/
Seznam možných kombinací OS a architektur:
android/386
android/amd64
android/arm
android/arm64
darwin/386
darwin/amd64
darwin/arm
darwin/arm64
dragonfly/amd64
freebsd/386
freebsd/amd64
freebsd/arm
js/wasm
linux/386
linux/amd64
linux/arm
linux/arm64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/riscv64
linux/s390x
nacl/386
nacl/amd64p32
nacl/arm
netbsd/386
netbsd/amd64
netbsd/arm
openbsd/386
openbsd/amd64
openbsd/arm
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
windows/386
windows/amd64
Některé z kombinací jsou ve stadiu experimentu (js/wasm), u některých jsou zapotřebí další nástroje (android) a některé jsou ve stadiu portace (riscv64). Dále existují i některé nepodporované porty na další platformy a architektury (z/OS, sparc, sparc64, ...).