Názor ke článku LISP vs. XML od mys elf - Ale jistě, že se mi to stalo. Jenže...

  • 16. 10. 2006 9:01

    mys elf (neregistrovaný)

    Ale jistě, že se mi to stalo. Jenže když pomineme skutečně beztypové jazyky, tak existuje dost mechanismů, jak to zkontrolovat, když je třeba. V Pythonu můžeš napsat na začátek funkce / metody assert(isinstan­ce(parameter, MyClass)) nebo si pro testovací účely pomoci nějakým dekorátorem. V CL by jistě bylo možné použít nějaké makro nebo si ohackovat reader, případně snad s použitím CLOS použít podobnou techniku jako v tom Pythonu.

    Zfailovaný malloc() podle mě v současné době není problém programátora, ale OOM killeru a dalších mrch a v Lispu se jaksi přímo ani malloc() v programu nevolá, že ano. Nevydařené otevření souboru NIJAK nesouvisí s problémem detekce nesprávného typu ve fázi kompilace.

    A co hůř, kontrola při kompilaci dává leda falešný pocit bezpečí. Pokud zavolám setWindowSize(x, y) a prohodím parametry, kompilátor neřekne ani popel, protože posílám 2 inty, jak očekává. Když je těch parametrů 10 a všechny stejného typu, tak se z toho opupínkuješ, zvlášť, když tam kolega přidá volitelný parametr a neupdatuje to všude v kódu. Python i Lisp na to mají keyword parametry, které jsou podle mě ve spojení s rozumnými názvy tou nejlepší primární kontrolou.

    createFamily(
    father = 'Josef',
    mother = 'Ivana',
    child = 'Pepíček')

    Pokud v Lispu všude posíláš data v jednom parametru typu ("Josef" "Ivana" ("Pepíček" "Andulka") ("Alík" "Micinka") ('Audi 'Porsche) ("Politických vězňů 131" "Praha 1" "11000" ("0609363600" "0800123456"))), riziko se zvyšuje a čitelnost snižuje, ale nikdo Tě k tomu nenutí.