Csókavár

Fordított világ

Azon gondolkotunk valamelyik ebéd után, hogy milyen érdekes lenne egy olyan bolygón élni, ahol a funkcionális programozási paradigma került előtérbe, nem az imperatív vonal. Az egész természetesen ott indul, hogy a számítógépekben levő processzorok gráfredukciós algoritmusokkal működnének. Minden kisiskolás valami lebutított Haskellt próbálgatna Logo helyett (típusok nélkül). A mainstream munkahelyeken is funkcionális programozók ülnének, a nagyobb cégekben a túl sok enterprise pirulát beszedett arhitectektek pedig mindent kategóriákkal és én nem tudom milyen bifunktorokal absztrahálnának szarrá.

Az imperatív világgal gyakorlatilag csak az egyetemeken találkozna az ember. Hosszú cikkek sorai porosodnának a könyvtárakban és a levlistákon arról, hogy hogy lehet funkcionális nyelveken imperatív programokat írni. Ne adj Isten: objektum orientált programokat. És Cactus azzal kínozná a munkatársait, hogy jó, jó itt vannak ezek a monádok meg unique típusok, de most egy pillanatra képzeljük azt, hogy ezek tulajdonképpen egy állapotgép utasításai. Hosszú hétvégéken cikket olvasna a Neumann elvű számítógépekről. Aztán kicsit tovább menne és azt kezdené boncolgatni, hogy az imperatív nyelvekbe hogyan lehet funkcionális nyelvi elemeket beletenni, gondolok itt a függvényekre mint first class citizenekre, az anonymous methodokra (akár rekurzió Y kombinátorral), lusta kiértékelésre és így tovább. A párhuzamos folyamatok érdekességeit, boncolgatná, amivel már mindenkit az őrületbe kergetne.

Csak néhány nagy bank engedhetne meg magának imperatív gondolkozású programozókat, az ilyenek a világ végén dolgoznának szemérmetlenül nagy fizetésért.  Miért? Hát nyilván itt nem érvelhetünk azzal, hogy az imperatív programok milyen tiszták, rövidek, jól párhuzamosíthatók és a helyességük könnyen igazolható. Viszont még mindig kijátszhatjuk a teljesítmény kártyát. Az imperatív programozó közel engedhet magához egy nagyon egyszerű gépet, amit akár assemblyben is programozhat, hogy még jobban kioptimalizáljon egy-egy sebességkritikus folyamatot.  Szép lassan aztán megjelenne a hardveres támogatás is. Előbb csak egy egyetemi projekt keretében alkotnák meg a CPU-t, de aztán a letnI felkarolná a dolgot, és kihozna egy iszonyatosan drága gépet imperatív processzorral szerelve.

Kihagytam valamit? Bizonyára. De fura világ lenne az biztos…