Hlavní navigace

Názor k článku Go: minimalistický a překvapivě výkonný programovací jazyk od Miloslav Ponkrác - Tak to dopadá, když se programovací jazyk Go...

Článek je starý, nové názory již nelze přidávat.

  • 20. 11. 2018 21:37

    Miloslav Ponkrác (neregistrovaný) ---.imarvel.cz

    Tak to dopadá, když se programovací jazyk Go dělá jako nalepovák. Nejdříve jej udělají s nějakými základními věcmi a syntaxí, a pak - eventuálně někdy, možná... - až se k tomu autoři dostanou... - do Go nalepí další věci, jako jsou třeba generiky nebo výjimky (viz jejich FAQ).

    Výsledkem bude nakonec nepoužitelný nalepovák, protože jazyk se má nejdříve navrhnout v základních rysech a pak implementovat. Až tam pár features do Go přidají, bude to nekonzistentní nalepovák ála Čapkova povídka když pejsek s kočičkou vařili dort.

    Výjimky při šíření výjimečného stavu postupují nahoru po zásobníkových rámcích musejí uklízet lokální proměnné a rušit epilogy/prology funkcí. Je třeba při návrhu jazyku přemýšlet, jak to budete dělat, a co výjimky konkrétně v každém zásobníkovém rámci uklidí.

    Například v C++ se budou automaticky volat destruktory objektů, tedy nějaké close() metody pořeší kompilátor při šíření výjimky, programátor se o to starat nemusí. Automaticky se dokonce i dealokuje paměť, pokud je použita pro pointery, které ještě nebyly nikam přiřazeny. Kód je pak velice přímočarý.

    Mám spíše dojem, že Go je nešťatně navrhován. Autoři si myslí - a svůj omyl záhy pochopí - že featury lze snadno do programovacího jazyka evolučně přidávat. Není tomu tak, vznikají tak totálně nekonzistentní jazyky. Příkladem jak to dopadá můžete vidět v PHP.