Etter flere tiår der mange brukte det objekt-orienterte programmeringsparadigmet for applikasjonsutvikling har funksjonell programmering (FP) fått en renessanse. I FP foretrekker man expressions over statements og rene funksjoner (uten side-effekter). Språk som støtter FP har ofte konstruksjoner som gjør det enklere å håndheve immutability.

For utviklere på JVM’et har Scala og Groovy i en del år tilbudt språk-konstruksjoner som gjør det mulig å gjøre funksjonell programmering, men blant mange i Kodemaker er Clojure spesielt populært.

Utenfor JVM’et er Haskell og Elm språk som har økende popularitet.

Våre anbefalinger

Learn You a Haskell for Great Good!
Anbefalt av Alf Kristian, Frode og André

Haskell er et programmeringsspråk som får større og større påvirkningskraft på andre språk. Denne boken gir en vennlig introduksjon til et språk som er ganske ganske annerledes. Man kan lese store deler av boken på nett.

Simple Made Easy
Anbefalt av Kristian og Anders

Rich Hickey, som har skrevet språket Clojure, forklarer her forskjellen på «Simple» og «Easy». Hovedbudskapet er at mange velger «Easy», men istedet ender opp i en jungel av kompleksitet. Det optimale er da å kombinere «Easy» og «Simple»

The Functional Database
Anbefalt av Kristian

Dette foredraget av Rich Hickey introduserer og forklarer ideene bak en funksjonell database. Hva om man distanserer seg fra tradisjonelle databaser og sier at data kun kan legges til? Betyr dette at man kan modellere data over tid? Og hva er egentlig fordelen med at data aldri endrer seg? Dette er noen av spørsmålene som blir besvart gjennom en presentasjon som utfordrer etablerte «sannheter».

The Joy of Clojure
Anbefalt av Alf Kristian

Dette er ingen intro bok om Clojure, dette er en bok for de som vil lære litt mer. I tillegg til et dypdykk i språket, lærer man om generell funksjonell programmering. Kan anbefales for alle som føler det er forbi begynnerstadiet i FP, enten det gjelder Clojure eller andre spåk.

Out of the Tar Pit
Anbefalt av Anders

Ben Moseley og Peter Marks presenterer svært overbevisende argumenter for hva som er kilden til kompleksitet i systemene vi bygger. Dersom du ikke har lest denne artikkelen de siste 3 månedene oppfordrer jeg deg på det sterkeste til å gjøre nettopp det med det samme!

Våre foredrag

Vi gikk bort fra skreddersydd data-streaming per feature og kvittet oss med kilovis med kode. Ikke var det noe moro å skrive den koden heller. Når vi legger til nye features nå, så får vi streaming med på kjøpet. I dette foredraget prater Magnar om den snedige løsningen vår – hvordan og når den funker bra, og i hvilke tilfeller den ikke funker så bra.

Magnar snakker hva, hvorfor og hvordan om Pure Functions, i et utbrudd av entusiasme etter å ha jobbet med en kodebase basert på disse prinsippene et par år.

På Javazone 2015, snakket Alf Kristian erfaringer med de funksjonelle språkene på JVM’en. I tillegg sammenlignet han dem med “FP” i Java 8.

Christian og Magnar parprogrammerer nettspill med Clojure og ClojureScript på JavaZone. Det blir funksjonell programmering, testdrevet utvikling og to tomsinger fra Østfold.

That Tech Show: Magnar Sveen

Magnar tok en prat med to karer fra London om Zombier, Emacs og Clojure. Pass opp for det skumle coverbildet, det var Halloween Special.

Really understanding Clojure, getting into macros

På Javazone 2014, snakket Alf Kristian om Clojure sine makroer. Det ble et dypdykk inn i en av Clojure sine kraftigste features

Programmeringsspråket betyr alt!

Hovedverktøyet til programmerere er programmeringsspråket. Likevel velge vi sjeldent det beste riktige verktøyet for å løse oppgavene. Denne presentasjonen fokuserer på hvor viktig det er å velge riktig programmeringsspråk.

Clojure - JVM språket som er "multi-core ready"

En introduksjonspresentasjon om Clojure, som går igjennom språkets oppbygning og filosofi. Forklarer også hvorfor Clojure er et bedre rustet språk for fremtiden enn andre.

Våre sideprosjekter

Learning Functional JavaScript

Et grundig videokurs i funksjonell programmering med JavaScript. Laget for Packt forlag i 2015.

Vår fri programvare

  • Cull.JS - Funksjonell verktøykasse for JavaScript.
  • Dome - Funksjonell verktøykasse for DOM-manipulering.

Våre blogginnlegg

Gjør mindre, få til mer

En liten historie om hvordan en ny feature i et open source-bibliotek ble nedskalert og samtidig mer nyttig.

Kan mindre frihet være bra?

Er det alltid bra med mer frihet? Nei, ikke når vi skriver kode. La meg forklare.

Lage ditt eget websocket-bibliotek som en tilstandsmaskin?

I jula som var satt jeg og nerdet litt innimellom all julekosen. Jeg prøvde å finne et lite bibliotek for enkel håndtering av websockets i en nettleserapplikasjon. Nå følger det jo med en standard WebSocket implementasjon i alle nettlesere, men jeg ville også at den skulle ha støtte for automatisk gjenoppkobling og pulskontroll mot server. Etter å ha søkt litt på npm som seg hør og bør, fant jeg ikke noen som helt fristet å dra inn. Kanskje jeg skal lage et lite bibliotek selv da? Hva om jeg implementer det ved å basere meg på en Finite State Machine i bunn? Det hadde vært digg om biblioteket hadde en funksjonell kjerne og at sideeffekter håndteres separat. Her er det bare å brette opp armene å se hva vi kan få til.

Spør oss om Funksjonell programmering

Christian

Magnar

Alf Kristian

Magnus

André

Kristian

Frode

Odin