Uusia tuttavuuksia: Pollen ja Racket

“Hei kylläpäs näyttää hyvältä”, ajattelin törmätessäni Practical Typography -kirjasivustoon. Haluaisin osata tehdä samanlaista jälkeä itsekin. En edes muista mitä olin netistä etsimässä, kun päädyin taas vaihteeksi pohtimaan web-suunnittelua ja julkaisutoimintaa netissä. Sen lisäksi, että innostuin vaihtamaan verkkosivustojeni fontteja ja määrittelemään kirjasinvälejä, päädyin kania koloon seuraten tutustumaan sellaisiin teknologioihin kuten julkaisujärjestelmä Pollen ja ohjelmointikieli Racket.

Olin vasta päässyt vauhtiin Clojuren kanssa ja kuvitellut, että minun tuskin tarvitsisi opetella uusia ohjelmointikieliä taas vähään aikaan. Lisp-fobiasta selvinneenä ja koodisulkeisiin vähitellen tottuneena alkoi mieleen hiipiä kuitenkin ajatus, että ehkä Clojure olikin vain alku.

Lokakuussa olin poikennut Tampereella ClojuTRE-tapahtumassa. Tilaisuus sinänsä oli huikea näyttö Suomen Clojure-skenen draivista. Tämän tarinan osalta oleellisinta oli kuitenkin se, että ensimäinen henkilö, johon siellä tutustuin, olikin Racket-koodari. Kieli oli tullut vastaan myös Cognicast-podcasteissa, mutta vasta nyt alkoi hahmottua mikä tämä Scheme-johdannainen lisp oikeastaan on, ja miksi se sattaisi olla oikea työkalu joihinkin tehtäviin.

Pollen ei todellakaan ole mikään jokamiehen kliksutteluratkaisu, vaan enemmänkin julkaisijanörtin työkalu. “Kirja on ohjelma” on järjestelmän isän, Matthew Butterickin, näkemys. Typografina hänelle ei riitä sisällön printtaaminen valmiisiin sivupohjiin, vaan hän haluaa maksimoida vapauden sivun muotoiluun ja asetteluun. Ohjelmointitaitoja siis tarvitaan. Kun selvisi, että Pollen on kirjoitettu nimenomaan Racketilla, sain itselleni riittävästi tekosyitä tutustua taas yhteen uuteen ohjelmointikieleen.

Olen yrittänyt kääriä päätäni Pollen-systeemin ympärille ja kokeillutkin sitä jo parilla sivustolla. Ensituntumalta ratkaisu tuntuu hieman erikoiselta monella tavalla. Sekoitetaan syntaksia, semantiikkaa ja logiikkaa, ja lispin myötä soppa vain sakenee. Toisaalta Racketissa, kuten lispeissä yleensäkin, koodi ja data tuppaavat muutenkin sekoittua yhdeksi muovailuvahaksi. Pollen tuo esiin myös muita Racketin vahvuuksia, kuten oman täsmäkielen (DSL) luonnin.

En oikein vielä ymmärrä täysin mikä Pollen oikeastaan on. Staattinen sivugeneraattori? Template-kieli? Jokumuumikä? Tätä selvittääkseni päätin — mitäpä muutakaan — kirjoittaa tämän blogin uudestaan Racketilla ja katsoa pystynkö näkemään siinä saman potentiaalin kuin Butterick.

##Linkit

comments powered by Disqus
2015-11-19