Søg
Close this search box.

15. maj 2023

Fremtidens programmeringssprog udvikles i Danmark

Den 9. december 2021 fik virksomheder og organisationer verden over en alvorlig overraskelse, da en kritisk sårbarhed i open source-logningsmodulet Log4J, som bruges af millioner af applikationer, blev opdaget. Sikkerhedshullet kunne udnyttes af hackere til at få adgang til de bagvedliggende systemer og netværk.

Heldigvis blev hullet hurtigt lukket, men verden over sad systemejere og udviklere tilbage med dilemmaet om på den ene side at være afhængig af logningsmoduler og open-source kode udviklet af eksterne firmaer og udviklere, og på den anden side at skulle levere løsninger, som er både sikre og troværdige.

På Aarhus Universitet og Københavns Universitet sidder to unge forskere, Magnus Madsen og Troels Henriksen, med en potentiel løsning til dette dilemma. De vil tilføje en ekstra dimension kaldet effektsystemer til de programmeringssprog, som anvendes i dag. Det gør det lettere at vedligeholde programmer og opdage sårbarheder ved at holde styr på, hvordan kodestumper og biblioteker, som man ikke selv har udviklet, opfører sig.

Danmark fører an på fremtidens programmeringssprog
Vi har længe haft en tradition for at udvikle nye programmeringssprog, og danskere står bag flere af de mest brugte sprog. I 1980’erne udviklede Bjarne Stoustrup C++ programmeringssproget, og Anders Hejlsberg står bag udviklingen af Typescript.

Når det kommer til at udvikle den næste generation af programmeringssprog, der understøtter effektsystemer, er vi igen helt i front i Danmark med hele to innovative programmeringssprog. Magnus Madsen og hans kolleger fra Aarhus Universitet står bag programmeringssproget Flix, som er et relativt nyt sprog. De har udviklet Flix med henblik på at kombinere de bedste aspekter af funktionel programmering og logikprogrammering. Programmeringssproget er designet til at udvikle moderne applikationer med et fokus på at undgå fejl ved hjælp af et stærkt type- og effektsystem.

I den anden ende af Danmark på Københavns Universitet har Troels Henriksen og hans kolleger arbejdet på et andet nyt programmeringssprog kaldet Furthark. Sproget blev oprindeligt udviklet til at understøtte komplekse beregninger i finanssektoren, hvor der var behov for regnekraft, som grafikkortprocessorer kan levere. Således er sproget rigtig godt til at understøtte avancerede applikationer, der skal optimeres til at køre parallelt. Også i Furthark er effektsystemer en central byggeklods.

Fokus på hastighed og brugervenlighed
Selvom begge programmeringssprog har overlappende funktionalitet, er de ikke direkte konkurrenter, da de er målrettet forskellige arbejdsområder. Derfor var det helt naturligt, at de to forskere startede et samarbejde i regi af Digital Research Centre Denmark (DIREC), hvor de fik mulighed for at forbedre effektsystemer.

Ifølge Troels Henriksen og Magnus Madsen er der to store udfordringer ved praktisk anvendelse af effektsystemer:

– Den ene udfordring er, at det kan tage lang tid for en computer at kontrollere, at de programmer, der skrives, overholder de opstillede regler – og det sænker programmørens produktivitet. Vi arbejder derfor fokuseret på at optimere hastigheden af de oversættere (compilere), som tjekker koden. Den anden udfordring er brugervenlighed. Hvis anvendelse af effektsystemer kræver for meget af programmøren, og fejlmeddelelserne er for svære at forstå, vil folk ikke anvende dem, uanset hvor mange fordele de har. Vi arbejder derfor også på at gøre effektsystemer mere brugervenlige.

Samarbejdet på tværs af universiteter har givet meget inspiration og skabt nye relationer. Magnus Madsen uddyber, at han flere gange har besøgt Københavns Universitet for at tale med deres programmeringssprogsforskere. Hver af dem har deres egen holdning og ideer til, hvordan man kan løse specifikke problemer, og det at få nye perspektiver og opbygge nye samarbejdsrelationer har været meget værdifuldt, påpeger han.

Fra nichesprog til mainstream
Til spørgsmålet om, hvorvidt store virksomheder i fremtiden vil bruge Flix og Futhark til at udvikle software, f.eks. til finanssektoren, trækker både Troels Henriksen og Magnus Madsen på smilebåndet.

– Det er en lang og svær rejse at gå fra nichesprog til mainstream. Først skal vi have hobbyprogrammørerne til at tage sprogene til sig, og derefter skal sprogene udbredes til deres netværk og arbejdspladser. De store virksomheder er ofte konservative i deres valg af nye programmeringssprog, og de vil sandsynligvis være de sidste til at anvende nye sprog.

For nu fokuserer de to forskere på at gøre det så let som muligt at anvende Flix og Furthark ved at udvikle god dokumentation, vejledninger og websider, og så må vi se, hvad fremtiden bringer.

Udforsk programmeringssprogene:

·   https://flix.dev
·   https://futhark-lang.org

Test Flix i en online simulator:

·   https://play.flix.dev

Test Futhark i en online simulator:

·   http://playground.futhark-lang.org/

Læs mere om projektet Ergonomic and Practical Effect Systems

Hvad er effektsystemer?

Effektsystemer er en måde at beskrive, hvordan en funktion eller et delelement af et program interagerer med omverden. Det vil sige, hvad sker der rent faktisk, når man afvikler koden.

I programmeringssprog med effektsystemer er det normalt obligatorisk at specificere, hvilke virkninger en funktion kan have, når den oprettes. Ved at specificere det, kan man også bedre begrænse og styre, hvordan forskellige dele af programmet kan interagere med hinanden og med omverden. På den måde kan man med effektsystemer bedre kunne holde styr på, hvad kodestumper og biblioteker, som man f.eks. ikke selv har udviklet, gør. Samtidig kan effektsystemer gøre det lettere at vedligeholde programmer og i visse tilfælde få dem til at køre meget hurtigere ved at identificere kodeelementer, som kan køres parallelt.