- Funksjonell programmering har aldri vært mer populært, mener ZombieCLJ-duoen

- Ikke så lett å formidle dette med ord, mener Magnar Sveen og Christian Johansen, som derfor inviterer til videoserie.

Magnar Sveen og Christian Johansen jobber begge i Kodemaker, og lager nå en ny sesong av ZombieCLJ, hvor de lager et spill sammen med Clojure og ClojureScript. 📸: Odin Hole Standal
Magnar Sveen og Christian Johansen jobber begge i Kodemaker, og lager nå en ny sesong av ZombieCLJ, hvor de lager et spill sammen med Clojure og ClojureScript. 📸: Odin Hole Standal Vis mer

2011 var året Osama bin Laden ble drept, prins William gifta seg med Catherine og Magnar Sveen starta sin videoserie ZombieTDD.

Her skulle han lage et zombiespill gjennom testdrevet JavaScript, og fikk gjester innom, blant annet Christian Johansen.

- Sånn ble vi kjent, og slik startet dette vakre eventyret, forteller Magnar Sveen til kode24.

Sveen og Johansen ville kode mer sammen på video, og kom med ZombieCLJ i 2014. I denne screencast-en lagde de et spill sammen med det funksjonelle programmeringsspråket Clojure.

- Selv om Clojure ikke er et språk alle bruker i det daglige, så er det interessant å se to utviklere lage noe fra bunnen av mens de prater om det de gjør. Koselig var det óg! sier Sveen.

Og nå, sju år etter forrige sesong og elleve år etter den første, er duoen tilbake med en ny sesong av ZombieCLJ.

Det legges opp til at ZombieCLJ skal følges via nettsida deres, og videoene publiseres som "ikke-oppført" på Youtube.
Det legges opp til at ZombieCLJ skal følges via nettsida deres, og videoene publiseres som "ikke-oppført" på Youtube. Vis mer

Skudd, asfalt og dørstokker

- Vi har opptil flere forsøk på å komme over dørstokkmila for sesong 2, men som har strandet av ymse årsaker, sier Christian Johansen til kode24.

- Det er høye dørstokker her i Østfold, skyter Sveen inn.

- Til JavaZone i 2019 gikk endelig startskuddet. Dessverre traff det først Magnar, som havna på sykehuset, og når vi allerede lå nede kom pandemien og sparket oss kollektivt i tenna, fortsetter Johansen.

- Så hvordan fant dere ut at dere ville lage en ny sesong nå?

- Det har jo blitt vår, både i bokstavelig og overført forstand. Med fuglekvitter, varmende sol og tørr asfalt, kommer noe av energien som forsvant sånn rundt lockdown-tider tilbake. For tre år siden kjøpte jeg to mikrofoner, stativ og en Focusrite Scarlet. Det skal bli godt å endelig få pakket alt ut av emballasjen sin, smiler Sveen.

Magnar Sveen og Christian Johansen beskriver ZombieCLJ som en "koselig kodereise". 📸: Odin Hole Standal
Magnar Sveen og Christian Johansen beskriver ZombieCLJ som en "koselig kodereise". 📸: Odin Hole Standal Vis mer

Zombier og event-sourcing

OK, men hva er ZombieCLJ?

Magnar Sveen mener det kan oppsummeres som "to tomsinger fra Østfold som sitter og koder med Clojure på backend og ClojureScript på frontend", så vi kan jo ta han på ordet. Begge tomsingene jobber i Kodemaker, forresten.

Den funksjonelle kodinga ders foregår i en videoserie på ZombieCLJ.no, med episoder som "Episode 4: Skrive tester, vi må". Og resultatet av all Clojure-kodinga skal bli et zombiespill inspirert av brettspillet King of Tokyo.

Zombier, Clojure og to tomsinger fra Østfold... Vis mer Vis mer

Mye skal være likt fra første sesong, for å vise at "det går an å holde seg til det som funker", men kjernemodellen av spillet skal være mer retta mot event-sourcing, ifølge Sveen.

- Og så bruker vi disse eventene fra kjernen til så forskjellige ting som å oppdatere modellen vår og å lage animasjonssekvenser, forklarer han.

"Koselig kodereise"

- Hvorfor skal man følge med på ZombieCLJ framover?

- Fordi vi byr på noe man ikke ser så ofte i vår bransje: Et godt eksempel på hvordan man bruker en teknologi og et tankesett til å bygge noe “årntlig”. Eksempler i bloggposter og foredrag gir en rask oversikt, men det blir sjelden rom for å gå skikkelig i dybden. I denne serien blir det så mange episoder som trengs for å komme helt i mål. Og da har man sett en helt reell app i mål fra en tom mappe, sier Johansen.

- Også er det jo lov å finne frem godteposen og bare være med på en koselig kodereise. Vi har det veldig hyggelig når vi koder sammen, og jeg tror det kommer frem på skjermen, legger Sveen til.

«De aller fleste språk har jo dratt på seg stadig flere konsepter fra det funksjonelle paradigmet.»

- Hva er deres inntrykk av populariteten til funksjonell programmering blant norske utviklere for tida?

- Funksjonell programmering har vel aldri vært mer populært. De aller fleste språk har jo dratt på seg stadig flere konsepter fra det funksjonelle paradigmet. Å ta steget hele veien over til et språk som Clojure sitter naturlig nok lenger inne i mange organisasjoner, men jeg vet at mange store norske bedrifter bruker Clojure her og der, som Telenor, Telia, Nortura og Schibsted. For ikke å snakke om Ardoq, som nettopp ble verdsatt til over 3 milliarder etter en ny funding-runde, skryter Sveen.

- Jeg pleier å si at ClojureScript er Clojure sin “killer app”, sier Magnar Sveen. 📸: Odin Hole Standal
- Jeg pleier å si at ClojureScript er Clojure sin “killer app”, sier Magnar Sveen. 📸: Odin Hole Standal Vis mer

ClojureScript vs. JavaScript

- Er ZombieCLJ et forsøk på å øke interessen blant norske utviklere?

- Så klart. Først og fremst så lager vi dette spillet og denne videoserien fordi det er skikkelig kos, og en god grunn til å kode litt mer sammen. Samtidig så har vi skjønt at det er veldig vanskelig å snakke gode idéer inn i hodene til folk. Ja, nær sagt umulig. Vi håper jo at gleden og nytten av å bruke disse gode verktøyene vil være synlig på skjermen. “Show, don’t tell”, om du vil, sier Sveen.

- Og helt til slutt, hundre millioner kroner-spørsmålet: Hvorfor skal man egentlig bygge et webspill med Clojure i stedet for JavaScript?

- Jeg pleier å si at ClojureScript er Clojure sin “killer app”. Det uttrykket trenger kanskje en forklaring: Programmeringsspråket Ruby hadde eksistert i nesten 10 år når Ruby on Rails brakte språket så til de grader på banen. Rails var altså Ruby sin “killer app”. ClojureScript er etter min mening den beste grunnen til å lære seg Clojure, fordi frontend-kode har en iboende kompleksitet man ser få andre steder. Det er asynkron, distribuert programmering i alle retninger. Da trenger man et språk som ikke eskalerer kompleksiteten ytterligere, men gir gode verktøy for å dra ting fra hverandre og jobbe med enklere byggeklosser. Slikt som immutable data, og rene funksjoner.

- Men du trenger ikke ta vårt ord for det. Sånt er ikke så lett å formidle med ord. Se sjæl på zombieclj.no, så kanskje noen av idéene skinner gjennom? skyter Johansen inn, før Sveen avslutter:

- Det er i hvert fall håpet!

Hva sier du - vil du prøve deg på funksjonell programmering i år? Eller er det bare tull og tøys? Si din mening under! 💬