(toiminnot)

hwechtla-tl: Nettipäiväkirja 15.10.2014

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Sellaiset kummajaiset kuin awk, sed, m4, bc, dc, sekä vanha säännöllisten lausekkeiden syntaksi (jota sed ja grep oletuksena käyttävät) demoavat sitä, kuinka pitkä evolutiivinen prosessi on ollut hahmottaa, millaiset ohjelmat ovat "käteviä". AWK:ssakin (pieni AWK-mainos) on ollut alun perin kaikenlaisia puutteita kuten se, että FS ja RS eivät voi olla säännöllisiä lausekkeita, eikä SL:iä käyttävien funktioiden SL:ien aliryhmien täsmäämään tekstiin pääse käsiksi. Perinteisessä AWK:ssa niitä ei voi käyttää edes korvauksissa, ominaisuus joka on sentään löytynyt sed:stä aina.

Hassua tässä evolutiivisessa prosessissa on se, että vaikka nämä utilit ovat hankalia tiettyihin tilanteisiin, ne kuitenkin POSIX-standardoitiin sellaisina kuin sattuivat olemaan. Tämä demoaa toista asiaa: standardoidut ratkaisut ovat joskus aika paskoja, koska standardista tarvitaan monta korjausiteraatiota, ennen kuin se alkaa olla inhimillinen käyttää. Se, että esimerkiksi Pythonista on käytännössä vain yksi toteutus, nopeuttaa sekä kaikenlaisen turhan härvellyksen pesiytymistä kieleen että myös kielen siivoamista.

Taaksepäin yhteensopivuus on hurja vaatimus, johon varautuminen vaatii huolellista suunnittelua. Esimerkiksi: eräs Python 1.5.2:n aikainen skriptini meni rikki siksi, että siinä käytettiin muuttujanimeä "as", josta tuli myöhemmin varattu sana. Jos tähän olisi pitänyt varautua, olisi tarvittu jonkinlainen ennakkovaraus varatuille sanoille, esimerkiksi tietyllä kirjaimella alkavat merkkijonot.

Niin sitä sitten taistellaan, jotta yhteensopivuus säilyisi, mutta samaan aikaan vanhat virheet saataisiin jotenkin kuitenkin korjatuksi. Ja loppujen lopuksi evoluutio usein tuottaa tuloksia, jotka ovat oikeasti ihan käteviä - katso virtues of the Unix shell.


kommentoi (viimeksi muutettu 15.10.2014 12:47)