Clojure-opfinder fupper publikum med falske kodefakta

Opfinderen af programmeringssproget Clojure, Rich Hickey, skar tirsdag fronterne skarpt op mellem funktionsorienterede og objektorienterede sprog på GOTO Copenhagen 2012.

GOTO Copenhagen 2012. Den krøllede hårpragt dansede, og fagterne føg gennem luften, da Clojure-opfinderen Rich Hickey leverede en veloplagt keynote tirsdag på udviklerkonferencen GOTO Copenhagen 2012.

Clojure er et nyere, funktionsorienteret programmeringssprog i familie med Lisp. Det kører blandt andet oven på Java’s virtuelle maskine og er designet for at løse nogle af problemerne med flertrådede programmer på moderne CPU'er.

Rich Hickeys ærinde var at forklare en af de største fordele ved funktionsorienterede sprog; at de baserer sig på uforanderlige værdier – han brugte betegnelserne ’facts’ eller ’values’.

I modsætning til for eksempel et objektorienteret sprog som Java, hvor objekter løbende kan få ændret værdier gennem metodekald, holder Clojure sig til, at værdier er uforanderlige.

»Rigtig hukommelse er associativ. Der er ikke nogen særlige telefonnummer-neuroner i din hjerne, som overskrives, hvis din ven får et nyt telefonnummer,« lød analogien fra Rich Hickey.

På den måde kan programmøren styre uden om en stribe ulykker, som kan være svære at fejlfinde, lyder filosofien.

Det gælder ikke mindst programmering af kode, som skal køre fejlfrit på af nutidens CPU'er med flere processorkerner. Den slags kan ellers give anledning til hovedbrud, fordi der let kan opstå synkroniseringsproblemer med foranderlige objekter i sprog som Java og C#.

Diskede op med fup-slide

Rich Hickey lagde ud med at prøve at tage fusen på publikum. Med et veltilrettelagt stone face begav han sig ud i at forklare, hvad et ’fact’ er i programmeringens verden.

I virkeligheden opremsede han en stribe egenskaber, som netop ikke gør sig gældende for funktionsorienterede sprog.

Efter en kunstpause kunne Rich Hickey løfte sløret:

»Hvor mange af jer føler sig ikke tilpas ved situationen lige nu? Det her er ikke, hvad et ’fact’ er,« sagde Rich Hickey.

Linjerne mellem ’facts’ – uforanderlige værdier – og ’places’ – et afgrænset sted i hukommelsen eller på disken, hvor man lagrer informationer eller objekter, som løbende kan ændres - blev trukket skarpt op i løbet af den times tid, keynote’en varede.

Konkrete ting som harddiske og hukommelse blev nævnt og vævet sammen med abstrakte betragtninger om menneskets hukommelse og den latinske betydning af ordet 'faktum'.

Rich Hickey erklærede dog til sidst, at hans foredrag ikke skulle ses som en total afskrivning af andre typer programmeringsparadigmer.

»Jeg er ikke ude på at bashe objektorienteret programmering generelt. De (udviklerne, red.) kan gå hjem og gøre det, de nu gør,« sagde han.

Dansk Java-udvikler: Clojure kan være ok

Sådan en af slagsen er den danske seniorkonsulent Thomas Arp, som i nogle tilfælde sagtens kan se meningen med sprog som Clojure.

Også selvom han til daglig specialiserer sig i Java-programmering for det norske konsulenthus Bekk.

»Prototyping og testing er oftest der, hvor vi vil tage det ind. Det kan for eksempel være i tilfælde, hvor kunden går med på at lave et proof-of-concept i et sprog som Scala eller Clojure,« siger Thomas Arp til Version2.

Hans største bekymring omkring sprog som Clojure er langtidsholdbarheden.

»Det handler om at kunne sikre vedligeholdbarhed over tid. Java forsvinder ikke sådan lige, og det betyder også, at kunderne rigtigt ofte stiller krav om, at en løsning skal udvikles i Java. Så nytter det ikke noget at insistere på at bruge Scala eller Clojure,« siger Thomas Arp til Version2.

Version2 er mediepartner på GOTO Copenhagen 2012, der finder sted 21.-23. maj.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (2)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Allan Ebdrup Blogger

Jeg talte lidt med ham bagefter. Som jeg forstod det handlede det mere om at det ikke holder på lang sigt at datamining og BI via Hadoop og lign. foregår på baggrund af logfiler, det holder ikke. Vi skal bygge databaser og lignende så de implementerer "temporal patterns" (en tidsakse) og ikke opdaterer ting "in place" og overskriver data PLOP PLace Oriented Programming, som han kaldte det. Og han sagde at jeg skulle checke hans database http://datomic.com/ ud, som implementerer det han taler om.

PLOP blev født da vi ikke havde nok hukommelse og diskplads, nu kan vi bare købe mere, så grunddesignet i et system bør være helt uden PLOP.

Og jeg giver ham fuldstændigt ret, de tools vi har i dag til at implementere tidsstyring er helt umulige at arbejde med, hvis du nogensinde har prøvet at implementere tidsstyring og ingen overskrivning/opdatering af data i en RDBMS ved du at det slet ikke er det rigtige værktæj til det.

Jeg er dog ikke sikker på at jeg er parat til at smide PLOP ud overalt, men jeg ser helt klart et potentiale i en DB der er født uden PLOP. Hvem vil ikke gerne kunne genskabe tilstanden i en database præcis som den så ud da en specifik fejl opstod fx.

  • 0
  • 0
Log ind eller Opret konto for at kommentere