Hlavní navigace

Názor k článku Go: minimalistický a překvapivě výkonný programovací jazyk od Filip Jirsák - Michal Mühlpachr: Protože ty kritické systémy jsou navrhované...

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

  • 21. 11. 2018 7:24

    Filip Jirsák

    Michal Mühlpachr: Protože ty kritické systémy jsou navrhované tak, aby bylo u všech variant běhu předem jasné (tj. že tu variantu opravdu někdo promýšlel, ne jen deterministické), co přesně se stane. Tyto systémy jsou pro to malé a jednoduché, protože není v lidských silách takhle podrobně analyzovat komplexní systém. A mimochodem ani u těch kritických systémů se často nepočítá s tím, že by byly bezchybné, takže třeba vedle sebe běží dvě různé implementace, je tam bezpečný komparátor a když se obě implementace neshodnou na výsledku, přejde se do nějakého bezpečného stavu (např. se zastaví linka).

    Vedle těchto kritických systémů ale také 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. Což je právě problém jazyků, kde se chyby řeší např. návratovou hodnotou, kterou programátor může ale nemusí zkontrolovat – a jakmile jí na tom správném místě nezkontroluje, na ten výjimečný stav se zapomene a program běží dál, jako by se nechumelilo, a vrší na sebe další a další chyby. Přičemž to, že programátor vy takovém případě nezkontroluje, zda nedošlo k chybě, je nejčastější situace. Zrovna nedávno se na Abíčku pod zprávičkou o portaci Sysinternals utilit na Linux rozběhla diskuse neprogramátorů o tom, jak je ten kód hrozný, protože pravděpodobně poprvé v životě viděli kód v C, kde je většina možných chybových stavů ošetřena.

    Proč připouštíme plánovaně vadný SW a jaké dopady to má na uživatele, společnost ?
    To s výjimkami nijak nesouvisí. A nedokonalý software připouštíme proto, že jakékoli další přiblížení dokonalosti je stále dražší a dražší, zatímco přidaná hodnota je stále nižší a nižší. Lidé totiž odjakživa žijí v nedokonalém světě, takže si s nedokonalostmi dokáží docela dobře poradit, a radši žijí v barácích, i když občas nějaký spadne, než aby žili dál na stromech a čekali, až budeme umět postavit dokonalé baráky (zvlášť když i u těch stromu se občas nějaká větev ulomí).