Clojure-opfinder fupper publikum med falske kodefakta

23. maj 2012 kl. 08:292
Opfinderen af programmeringssproget Clojure, Rich Hickey, skar tirsdag fronterne skarpt op mellem funktionsorienterede og objektorienterede sprog på GOTO Copenhagen 2012.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

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.

Artiklen fortsætter efter annoncen

»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.

Artiklen fortsætter efter annoncen

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.

Artiklen fortsætter efter annoncen

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.

2 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
2
23. maj 2012 kl. 22:51

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.

1
23. maj 2012 kl. 13:26

Fin artikel, men er der nogen grund til Ekstrablads-overskrifter på Version2?