<<<OBSAH  >>>ENCSEN/CSZVONPřeklady

8. Několik dalších lekcí z fetchmailu

Než se vrátíme k obecným problémům softwarového inženýrství, je třeba se poučit z několika specifických lekcí, které přinesl fetchmail.
Rc syntax zahrnuje nepovinný parametr 'noise', které parser zcela ignoruje. Takováto anglicky znějící syntax je mnohem čitelnější než tradiční zhuštěné páry parametr=hodnota.
Toto začalo jako noční experiment, když jsem si všiml, jak mnoho deklarace rc souborů připomínají příkazový minimalistický jazyk. (Proto jsem také změnil jeden z původních parametrů popclienta "server" na "poll")
Zdálo se mi, že pokud tento jazyk bude více připomínat angličtinu, bude snáze použitelný. Ačkoliv jsem přesvědčený zastánce designerské školy, která se snaží učinit z příkazů jazyk, jako v případě HTML, Emacsu a řady databází, obvykle nemám příliš rád poangličtělou syntax.
Tradičně programátoři dávají přednost syntaxi, která je velmi přesná a kompaktní. Toto je dědictví z doby, kdy výpočetní zdroje byly drahé, takže procházení souborů muselo být levné a co nejjednodušší. Tehdy se zdála angličtina s 50% přebytkem slov zcela nevhodná.
To ovšem není můj důvod, proč se takovéto anglické syntaxi obvykle vyhýbám. Já ho zmiňuji pouze proto, abych jej vyvrátil. V dnešní době by už stručnost neměla být cílem kvůli sobě samé. Je důležitější, aby jazyk byl pohodlný pro uživatele, ne aby byl levný pro počítač.
Existují ovšem důvody k obezřetnosti. Jedním z nich je složitost parsingu. Nechcete její složitost zvýšit na úroveň, kdy se stává zdrojem častých chyb a začne plést i samotné uživatele. Dalším důvodem je, že pokud chcete, aby Váš jazyk zněl jako angličtina, musíte angličtinu značně pokroutit, a to natolik, že tento zpitvořený jazyk je stejně zmatečný, jako tradiční nesrozumitelná syntax. (Typickým příkladem jsou tzv. jazyky čtvrté generace a komerční jazyky pro přístup k databázím.)
Kontrolní systém fetchmailu se vyhnul těmto potížím proto, že jeho jazyková oblast je nesmírně omezená. Není to zdaleka jazyk obecný, to co říká, není vůbec složité, takže je zde jen malý prostor pro zmatek při myšlenkovém přechodu od jeho miniaturní podmnožiny angličtiny k skutečnému řídícímu jazyku. Možná nás to učí další lekci:
16. Pokud Váš jazyk není zdaleka kompletní (Turing-complete), syntaktický cukr může být přítelem
Další lekce je o bezpečnosti přes utajení. Několik uživatelů mne požádalo, abych pozměnil program tak, aby ukládal hesla zašifrovaná v rc souboru a tím zabránil příležitostným čumilům v jejich náhodném odkrytí.
Já to neudělal, protože tím ve skutečnosti nezískáte žádnou ochranu. Každý, kdo získá přístupová práva ke čtení vašeho rc souboru bude moci sám spustit fetchmail, a pokud chce vaše heslo, získá potřebný dekodér z kódu fetchmailu.
Zašifrování hesla v .fetchmailrc by pouze dalo falešný pocit jistoty lidem, kteří o všem důkladně nepřemýšlejí.
Bezpečnostní systém je pouze tak bezpečný jako jeho tajemství. Mějte se na pozoru před pseudo tajemstvími.

<<<OBSAH  >>>ENCSEN/CSZVONPřeklady