Hlavní navigace

Názor ke zprávičce Khan Academy přechází z Pythonu na Go od MarSik - Ne, ta kritika je od programátorů co musí...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 25. 12. 2019 19:44

    MarSik

    Ne, ta kritika je od programátorů co musí v golang psát věci, na které není určené. Protože hype a síla Google (mimochodem vzpomeňte na Angular 1..), v golang se totiž píše spousta věcí, které nejsou API ani síťové služby.

    Pro vysokoúrovňovou logiku se ten jazyk totiž extrémně nehodí. Dobře to třeba ilustruje názor, že výjimky nikdo nepotřebuje. Je ovšem zajímavé, že if error return error je celkem běžný vzor. A další perlička, z error návratového typu v hlavičce funkce nelze zjistit, jaké chyby může funkce vrátit.

    Obojí jsou přiznané nedostatky a existují návrhy na jejich řešení. Oba se mi i celkem líbí.

    https://go.googlesource.com/proposal/+/master/design/go2draft.md

    Dalším problémem je práce s dynamickými strukturovanými daty. Zkuste si napsat tak jednoduchou věc jako načíst json data, když neznáte přesnou strukturu (kompatibilita s různými verzemi), změnit jednu známou položku, serializovat a poslat dále. Zjistíte, že se kód hemží typem map[string]in­terface{} a operací přetypování .(typ). I ta "blbá" typovaná Java umožňuje takovou operaci provést syntakticky mnohem příjemněji (s využitím výjimek pro chyby).

    Golang je velmi čitelný, pokud Vás zajímají nízkoúrovňové instrukce. Jenže já třeba u zpracování dat dávám přednost sémantickým operacím jako filter(idExis­tuje).map(idTo­id) před for cykly a podmínami obalenými haldou komentářů. Funkce to umožní emulovat i v golang, za cenu porušení DRY principu.