Hlavní navigace

Názor k článku Go: minimalistický a překvapivě výkonný programovací jazyk od Michal Mühlpachr - Snažím se od tvrzení: > A moderni jazyk bez...

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

  • 21. 11. 2018 17:19

    Michal Mühlpachr

    Snažím se od tvrzení:

    > A moderni jazyk bez vyjimek, to mi prijde uplne mimo.
    > absence vyjimek a ... je momentalne nejvetsi bolest golangu.
    > Jenomže výjimkou jsou silver bullets. Je řada stavů, které bez výjimek prostě rozumně neošetříte.

    posunout k "výjimky nejsou jediné nezbytné a zázračné" paradigma.

    Domnívám se, že výjimky jdou proti srozumitelnosti, z důvodu snadno nepostřehnutelných side efektů a snadno přehlédnutelného probublávání přes vrstvy API, čímž ale neříkám, že je nerozumné je používat.

    Domnívám se, že podstatnější než typ paradigma zpracování chybových stavů je SW craftsmanship (odtud souvislost přes oslí můstek, kterého jsem se z lenosti dopustil).
    Jinými slovy nástroj (kladivo - výjimky - předávání chyb v návratových hodnotách funkcí atd.) je méně důležitý než způsob(y), jakým s nástrojem pracujeme
    (jsou místa s omezenými zdroji, kde se můžeme k tomuto tématu hodně naučit).

    BTW když budeme důslední, i Golang má "výjimky" runtime, které lze zachytávat s pomocí defer mechanizmu
    (ale má to svá omezení a špecifiká ;-).

    > máme mnoho daleko komplexnějších systémů, u kterých prostě nedokážeme předem promyslet všechny stavy. A tam jsou výjimky velice užitečné, protože zajišťují to, že výjimečný stav není ignorován.

    U výjimek se nezřídka stává, že je ignorováno rozlišení výjimečných stavů, což vede k jejich chybnému zpracování.
    Když aplikační programátor chce ignorovat chyby, paradigma zpracování chyb mu v tom nezabrání, ani mu nepomůže chyby zpracovat lépe.
    Z hlediska paradigmatu zpracování chyb je např. srovnatelné, pokud mám try catch os.exit nebo "univerzální" obalový handler ir err os.exit (takto je implementována významná část sw).