Sådan blev Danmark en supermagt i programmeringssprog

19. september 2019 kl. 05:1133
Sådan blev Danmark en supermagt i programmeringssprog
Illustration: Dansk Datahistorisk Forening.
Hvad er årsagen til, at så mange væsentlige programmeringssprog har danske rødder? Version2 har set på sagen.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

At nogle af de bedste og mest succesfulde designere af programmeringssprog kommer fra et land med blot 5,7 millioner indbyggere er noget, vi som danskere bør være stolte af.

Det er nemlig en række danskere, der står bag nogle af de mest udbredte og anvendte programmeringssprog og miljøer i verden: C++, C#, Ruby on Rails, PHP og Typescript.

Foruden de nævnte sprog har danskere været med til at lægge fundamentet for væsentlige sprogkonstruktioner i sprog som Java og Rust, ligesom danskere har været med til at speede eksekveringsplatformen for Javascript væsentligt op.

Iført en dannebrogsflagrende stolthed forsøger Version2 at indkredse, hvad der egentlig er årsagen til den ejendommelige situation, at et lille land har haft så uforholdsmæssigt stor indflydelse på den digitale verdens væsentligste værktøj: programmeringssprog.

Ildsjælen og Regnecentralen

Peter Sestoft, professor på IT-Universitetet i København, forsker selv i programmeringssprog og er ofte blevet spurgt af kollegaer om det danske mysterium.

Programmeringssprog med danske rødder

Mange programmeringssprog er udviklet over længere tid, så det kan være svært at tidsfæste det præcise tidspunkt for sprogets fødsel.

Undfangelsen af Beta-sproget startede i 1976 med etablering af Beta-projektet og det første udkast til sproget. I 1979 var den første komplette definition af Beta klar, og i 1983 var den første implementering af sproget klar.

Tilsvarende startede C# som et internt projekt hos Microsoft i 1999, hvor det en kort overgang blev kaldt COOL (C-like Object Oriented Language) og blev frigivet som kommercielt programmeringssprog i 2002.

1960: Algol60, Peter Naur

1974: Concurrent Pascal, Per Brinch Hansen

1974: COMAL, Benedict Løfsted, Børge R. Christensen

1983: Turbo Pascal, Anders Hejlsberg

1983: C++, Bjarne Stroustrup

1983: Beta, Kristen Nygaard, Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen

1987: Standard ML Modules, Mads Tofte

1994: PHP, dansk-canadieren Rasmus Lerdorf

1995: Delphi, Anders Hejlsberg

2002: C#, Anders Hejlsberg

2003: Ruby on Rails, David Heinemeier Hansson

2011: Dart, Lars Bak, Kasper Lund

2012: Typescript, Anders Hejlsberg

2017: Flutter, Kasper Lund

Kilder: Wikipedia, datamuseum.dk, semanticscholar.org, stroustrup.com, ‘Essentials of Standard ML Modules’, ‘The when, why and why not of the BETA programming language’


»Der var en amerikansk kollega, der spurgte, om der var noget særligt i vandet i Danmark, siden der er så mange, der laver noget godt indenfor programmeringssprog,« siger Peter Sestoft.

Det er dog ikke i det danske grundvand, at vi skal finde svaret, men mere i den historiske baggrund for programmeringssprog. I modsætning til en compiler, der skal levere en entydig oversættelse af en sprogkonstruktion, så er forklaringen på den danske succes dog lidt mere tvetydig.

Artiklen fortsætter efter annoncen

Der er ikke en enkelt årsag, men mere et samspil af omstændigheder. Peter Sestoft sporer dog begyndelsen tilbage til den afdøde datalogi-professor Peter Naur og Regnecentralen.

»Det er svært at sige, præcist hvad der er årsagen, men der er ingen tvivl om, at Peter Naur har haft en væsentlig rolle, i kraft af at han spillede en central rolle i udviklingen af programmeringssproget ALGOL. Vi skal også tilbage til Regnecentralen, der lavede de første danske computere,« siger Peter Sestoft.

Regnecentralen blev stiftet i 1955 med støtte fra Marshallplanen på 900.000 kroner, og det var Regnecentralen, som stod bag de første danske datamaskiner som Gier og DASK.

Peter Naur kom med i en international komité der var i gang med at udvikle programmeringssproget ALGOrithmic Language (ALGOL), der kunne anvendes på forskellige typer datamater, hvilket var banebrydende på det tidspunkt.

Artiklen fortsætter efter annoncen

Peter Naur kastede sig med ildhu ind i arbejdet med at specificere sproget og blev redaktør for den banebrydende ALGOL60-rapport fra 1960. Efterfølgende udviklede han sammen med Jørn Jensen ALGOL-compilere til de to danske datamater DASK og GIER.

»Regnecentralen spillede en central rolle, da det var det sted i Skandinavien, hvor man først implementerede oversættere. Programmeringssprogsforskning i Skandinavien var stærkt påvirket af København,« siger Peter Sestoft.

ALGOL over Simula til C++ med øl

Det gjaldt eksempelvis nordmændene Ole-Johan Dahl og Kristen Nygaard, der udvidede ALGOL 60 med nye koncepter som klasser, objekter og nedarvning. Med andre ord et objektorienteret sprog.

Nordmændene arbejdede sammen med Aarhus Universitet, hvor manden bag C++, Bjarne Stroustrup, senere studerede datalogi. Her blev han introduceret til Simula, som han syntes var et fantastisk sprog, men Simula-programmerne kørte forfærdeligt langsomt.

Som Stroustrup tidligere har fortalt til Version2’s journalist:

»Klassekonceptet gjorde det muligt for mig at mappe systemkoncepter til sprogkonstruktioner på en direkte måde, der gjorde min kode mere læsbar, end jeg havde set i noget andet sprog. Der var dog en væsentlig begrænsning ved Simula. Performance var en katastrofe.«

Det hjalp også med til den unge Bjarne Stroustrups indsigt i Simula og objektorientering, at Kristen Nygaard var gæsteprofessor på Aarhus Universitet i starten af 1970'erne.

»Han boede i gæstelejligheden på loftet af den gamle datalogibygning i Ny Munkegade. Mit kontor var lige ved trappen, så når Kristen ankom, råbte han til mig, at jeg skulle finde nogle studenter og noget øl. Det gjorde jeg, og så snakkede vi – det vil sige Kristen snakkede, og vi lyttede,« fortalte Bjarne Stroustrup om inspirationen og baggrunden for udviklingen af C++.

Den naurske ånd fra Regnecentralen til universiteterne

Det er ikke kun for udviklingen af C++, at personlige bekendtskaber har haft betydning. En række af Regnecentralens folk kom i løbet af årene ud på de danske universiteter, hvor faget datalogi blev etableret.

Professor Peter Naur i 2008.

Peter Sestoft remser en række vigtige personer fra Regnecentralen op i den forbindelse.

Artiklen fortsætter efter annoncen

Bjarne Svejgaard som blev professor på Aarhus Universitet, Christian Gram blev professor på DTU, Per Brinch Hansen, som først var mange år i USA og derefter kom til Datalogisk Institut på Københavns Universitet, og Søren Lauesen, der har været professor på Københavns Universitet, CBS og IT-Universitetet.

»Mange af de folk så op til Peter Naur, og selvom de ikke alle er compiler-udviklere, så har de medbragt noget af den ånd,« siger Peter Sestoft.

Som ringe i vandet spredte den naurske ånd sig ud til de danske universiteter, og der blev etableret en solid dansk tradition for forskning i programmeringssprog.

En stor bidragsyder til den tradition har været DTU, hvor Dines Bjørner og Hans Bruun har spillet en væsentlig rolle for compiler-teknologi i årevis. De har begge været involveret i formel specifikation og Vienna Development Method (VDM), som blev udviklet sammen med IBM.

»Det har været med til at gøre den slags specifikationssprog til en dansk specialitet,« forklarer Peter Sestoft og nævner, at DTU-arbejdet blandt andet førte til, at den første validerede oversætter for Ada udenfor USA blev lavet i København af ansatte og studerende fra DTU på Dansk Datamatik Center.

Hejlsberg: Danmark har altid været villig til at investere i uddannelse

Et fyrtårn når det gælder design og implementering af programmeringssprog, er Anders Hejlsberg, der også studerede på DTU. Efterfølgende har han stået bag Poly-Pascal, Turbo-Pascal, Delphi, C# og Typescript.

»Han kommer ikke direkte fra Peter Naur eller DIKUs indflydelsessfære, men han har et fantastisk talent for sprogdesign,« siger Peter Sestoft om den mange-programmeringssprogede dansker.

Hejlsberg har selv tidligere har fremhævet Danmarks uddannelsesniveau og peget på Regnecentralens indflydelse.

»Vi havde vores egen EDB-industri fra starten af. Vores egen kultur omkring det,« har Anders Hejlsberg sagt ifølge denne fortælling hos DR, hvor han videre er citeret for:

»Men måske kan man sammenstille det med, at vi i Danmark altid har været villige til at investere i uddannelse.«

Udbredelsen af teknologi var med fra fødslen af dansk it. Eksempelvis skrev Christian Andersen fra Regnecentralen en lærebog om ALGOL kaldet 'DASK ALGOL for skole og hjem' i 1961.

»Titlen var lidt af en joke, da der på det tidspunkt eksisterede én maskine, og der ikke var nogen mulighed for at programmere ALGOL i hverken skole eller hjem. Men der var allerede på det tidspunkt i Regnecentralen en holdning om, at det her var noget, som skulle udbredes overalt, ikke bare i andre videnskabsgrene, men i befolkningen generelt,« siger Peter Sestoft.

Du kan læse om baggrunden for den bog med Christian Andersens egne ord her.

Beta som inspiration for Java og C

Krydsfertiliseringen af ideer og sprogkonstruktioner fortsatte på Aarhus Universitet, hvor Kristen Nygaard sammen med Bent Bruun Kristensen, Ole Lehrmann Madsen og Birger Møller-Pedersen udviklede sproget Beta.

»Det er ikke et særligt udbredt sprog, men et forskningssprog, der har haft indflydelse på designet af Java og senere hen C#,« forklarer Peter Sestoft.

Den indflydelse kom blandt andet fra en anden dansk sprogdesigner Mads Torgersen som studerede på Aarhus Universitet i 1990'erne, hvor han inspireret af Beta-sproget udviklede Javas generiske typer i form af wildcards.

Ligesom Anders Hejlsberg er Mads Torgersen i dag ansat hos Microsoft, hvor han er programansvarlig for C#-sproget og også deltager i designet af Typescript og Visual Basic.

Det er også værd at nævne det aarhusianske makkerpar Lars Bak og Kasper Lund, som blandt andet stod bag Chromes epokegørende Javascript-engine V8, der formåede at speede javascript-eksekveringen i browsere op.

Makkerparret stod også bag scriptsproget Dart, der dog ikke har formået at få den samme succes som C#, C++, Typescript eller andre programmeringssprog med danske aner. Sproget spiller dog en rolle i Googles Android-miljø Flutter, der har førnævnte Kasper Lund som medskaber.

Vi har programmeringssprog nok

Ser man på nyere sprog som Swift og Rust, havde Version2’s journalist den vildfarelse, at der ikke var nogen dansk indflydelse, men Rust har faktisk en væsentlig dansk indflydelse. Nemlig fra Mads Tofte, der blandt andet er tidligere rektor på ITU.

»Et af de centrale koncepter i Rust kommer fra Mads Tofte. Region inference, som er programanalyse og hukommelsesadministration, udviklede han sammen med Jean-Pierre Talpin,« siger Peter Sestoft og fortsætter:

»Mads Tofte lavede den første implementering i MLKit og så kom Bit-C og Cyclone fra USA. Det er døde projekter i dag, men Rust er inspireret af Cyclone, selv om den præcise mekanisme til hukommelsesadministration er lidt anderledes,« siger Peter Sestoft.

Med hensyn til Swift har Peter Sestoft ikke mange positive ord set fra en sprogdesignmæssig vinkel, og han ser Apples app-udviklingssprog som et eksempel på programmeringssprog, som ikke bidrager med noget nyt.

»Jeg havde nær sagt, at jeg håber, der ikke kommer flere sprog. Der har ikke været meget dybsindig innovation de seneste år. Swift er en overflødig innovation. Apple kunne lige så godt have anvendt C#, hvis det ikke handlede om licenspolitikker og forretningsmodeller,« siger Peter Sestoft.

Han vil dog ikke afvise, at der kan komme programmeringssprog med radikale forbedringer fremover.

»Jeg skal ikke kunne sige, om der kommer nogle radikale forbedringer, men jeg tror, mange skridt er taget med Erlang, Scheme og Haskell. Scala er et godt ægteskab mellem funktionsprogrammering og objektorientering, men til gengæld er Scala vanvittigt komplekst med et afsindig indviklet typesystem,« siger Sestoft og tilføjer:

»Der er man nok nødt til at gå tilbage til ideer om dependent types. Der findes sprog som Agda og Idris, der gør det, men de er ret akademiske. Det stammer fra konstruktiv typeteori, der er en ret teoretisk affære, men der har vi en helt ny slags typesystem, som Scalas og Haskells efterfølgere måske skal baseres på, så det er bestemt ikke sådan, at vi er færdige med sprogudviklingen.«

Mon der vil være danskere involveret i den udvikling?

33 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
33
3. november 2019 kl. 17:45

Det med at detektere hardware fejl er et must inden for såkaldt sikkerhedsrelevant software. Det er også der man skal følge visse retningslinjer for at minimere software fejl. Modul opdeling er et krav ligesom dynamisk fejldetektering i softwaren og især krav til hvordan softwaren blev udviklet.
Jeg har ret svært ved at se hvad det er som er atraktivt ved at ikke at følge disse retningslinjer, især når man ser hvor mange fejl som findes i alm software. Der er udmærkede standarder til formålet men ingen synes at kende til dem.

32
3. november 2019 kl. 14:44

Hvorfor har datalogi i Danmark den her insisteren på at bruge bøvede, danske termer?

Jeg kan ikke tale for andre, men for mit vedkommende er det delvist en udfordrende leg at finde på gode begreber, og delvist fordi det rent grammatisk ofte er skønnere. Hvordan bøjer du "stack frame" i bestemt flertal? "Stack framesne"? Så er "aktiveringsposterne" noget mere mundret (omend mange nok ikke vil vide hvad det betyder).

Begrebet "dragebogen" er for så vidt relativt udbredt, modulo at bogen er forældet og mig bekendt ikke bruges så meget mere i Danmark, så jeg synes ikke dette er et godt eksempel på fænomenet med obskure danske begreber.

30
3. november 2019 kl. 13:42

I 70'erne på DtH var "Programmeringssprog og Oversættere" kurserne i høj kurs, og vi sugede til os. Lærebogen - programmeringssprogenes bibel var "Principles of Compiler Design", af Aho & Ullman, bland os studerende hurtigt omdbøbt til Uha og Ullman. 604 tæt pakkede sider i compilerteori - det var lidt uha, uha, men når man først fangede pointen, var det egentlig ikke så svært.

Med den i ballasten, kunne man springe ud i udvikling af næsten ethvert programmeringssprog, og det gjorde vi så.

Jeg udviklede på THILL - Texas Instruments HIgh Level Language - et Pascal/Algol lignende sprog som krydskompilerede til TI59 lommeregner "sprog" eller rettere taststurkoder. Og selv om TI var behørigt interesseret og vist nok også fik en kopi af både sproget (skrevet i Pascal på en VAX) og manualen, så nåede det aldrig uden for DtU. Men sjovt var det.

Både compilerbiblen og TIHILL håndbogen står på min reol den dag i dag - godt nok i den nostalgiske ende - men alligevel.

27
3. november 2019 kl. 11:42

Jo, Blue Label Pascal var det første navn, og den første compiler kunne være i en 8k rom som var bestemt af at Nascom havde den sokkel ledig når man smed dens basic ud. Og de 8k compiler var med editor. Manualen var dengang ca 20-30 siders god læsning i A5. Compas Pascal blev næste produktnavn, nu på pc. Men "Compas Danmark" syntest dog ikke om at dele "Compas" med andre, derfor endte det ved PolyPascal. Og da prisen samtidig blev hævet til professionel niveau på 5000,- så kom der rigtig gang i salget.

25
3. november 2019 kl. 08:55

Varnish (som er noget helt andet) i denne sammenhaeng.

Jeg indrømmer blankt at Varnish er en lille dreng på en rød trehjulet cykel bag militærparaden i den her sammenhæng, men det er faktisk et (domæne-specifikt) programmeringssprog, kaldet VCL, man bruger til at konfigurere Varnish med og ca. 20-25% af al web-traffik kommer igennem VCL på et eller andet sted undervejs.

22
11. oktober 2019 kl. 12:03

Chr. Rovsings Software Engineering Low Level language - SWELL - skal vel også på listen.

Et sprog der, som navnet antyder, bl.a. prøvede at få gjort det lettere at skrive optimerede programmer.

21
22. september 2019 kl. 11:11

Der kommer altid nye sprog. Når kompleksiteten bliver for stor, finder nogen ud af at at løse dette problem.

20
21. september 2019 kl. 23:22

Når vi nu alligevel er ved de gamle uddøde sprog så synes jeg da at prof. Olaf Kaysers MIRIAM H, M og L som blev benyttet på DIA-B i slut firserne på Supermax terminaler koblet op på UNI C , (det tidligere NEUCC) også lige bør nævnes. Det var faktisk et relativt avanceret sprog der kunne multiplicere matricer på højniveau til løsning af ligninger med flere ubekendte. Langt senere kunne man jo løse samme ligningssystemer med sin HP 15C men kun op til 8x8 matricer. Jeg husker ikke længere hvad grænsen var for MIRIAM men det var mere end 8 rækker.

19
20. september 2019 kl. 11:13

Per Brink Hansen udviklede Concurrent Pascal, mens han var professor i Californien. I run-time blev overførsel mellem processer udført ved kopiering af data. Så udviklede RECAU (= Regionale Center på Aarhus Universitet, hvis forste leder var Bjarner Svejstrup) et sprogvariant, de kaldte Platon. I run-time blev data overført ved at man alene overførte descriptoren til data. RC udviklede så RC 3500 computeren/Controlleren med Bent Skarø (= Designeren af DASK). RC 3500 havde 32 registersæt og to typer RAM-lager, et der kunne indeholde program og data og et andet, der kun kunne indeholde data. Jeg var medarbejder på Regnecentralen i Aahus fra 1969 til 1979.

18
20. september 2019 kl. 10:27

Det er sludder at naevne AsmOne (som kom fra SEKA og var en assembler og ikke et sprog), Ruby-on-Rails (som er en katastrofe og ikke et sprog), og Varnish (som er noget helt andet) i denne sammenhaeng. Til gengaeld er det vaerd at vide, at TurboPascal faktisk blev udviklet i Danmark, under navnet PolyPascal. I lang tid koebte Borland bare licenser til det og renamede det. Borland paastod, at de havde en mand der som ned fra bjergene med en diskette ind i mellem, men reelt kom manden fra Danmark. Jeg har i min pure og letpaavirkelige ungdom indtaget en del genstande sammen med Preben Madsen, som var direktoer for PolyData, og hoert mange sjove historier om hvordan de vaeltede sig i penge og havde det sjovt dengang i yuppiefirserne, se https://itverden.blogspot.com/2007/09/commodore-64-og-anders-hejlsberg-nskes.html .

16
19. september 2019 kl. 17:26

Der er gennem tiden blevet udviklet et stort antal programemringssprog i Danmark, men det er de færreste, der har fået stor udbredelse. Mange er kun brugt idenfor et enkelt firma eller et enkelt universitet, men der er undtagelser.

Man kan f.eks. med en vis ret kalde scriptingsprogene for Navision (https://en.wikipedia.org/wiki/C/AL) og Axapta (https://docs.microsoft.com/en-us/dynamicsax-2012/developer/x-language-programming-guide) for udbredte sprog. Godt nok bruges de kun(?) i sammenhæng med ERP-systemerne, men det gør de til gengæld mange steder.

Andre sprog har ikke endnu den store udbredelse, men det kan komme. Et par eksempler på sådanne "boblere" er:

15
19. september 2019 kl. 16:59

Der har været meget lidt udvikling af sprog som minimerer programmerings fejl og konsekvensen af hardware fejl.
Det undrer i betragtning af hvor mange fejl der er i programmer.

Mange af de forskele der er på sprog som Java og C# i forhold til fx C, er netop forsøg på at eliminere ofte sete fejl. Med C var fx pointeraritmetik notorisk svært, og array overløb nemt at komme til at lave. Disse problemer er elimineret i C# og Java. Et af de tilbagevendende problemer i Java-programmer er null-pointer problemer. Det har fx Kotlin og Swift forsøgt at eliminere ved at tvinge programmøren til at tage stilling. Mht. konsekvensen af hardware fejl, er jeg lidt i tvivl om, hvad du mener kan gøres. Selvfølgelig kan man, hvis man kan detektere/genkende dem, håndtere visse fejl i hardware, i visse systemer. Jeg har dog svært ved at forestille mig en ensartet måde at håndtere dem på, da det både afhænger af fejltypen og det system den opstår i.

14
19. september 2019 kl. 16:29

Det er spændende læsning, tak.

Det er også et prægtigt foto, hvad. Det er ikke altid arkitektur og indhold passer så godt sammen.

Jeg vidste slet ikke, at Regnecentralen havde ligget dér. Nogle der ved indtil hvornår? (Periode, årstal? Kan finde adresser i Præstø, Valby/Bjerregårdsvej 5, Ballerup, Glostrup + div. service).

”På 5. sal i Rialto-bygningen” ... (Vedr. oprettelse af RC4000 softwareudviklingsafdeling, 1967. Hvor de blandt andet skal beskæftige sig med projekter som ”Flydende regning”. ”Afdelingens arbejdsopgave skønnes afviklet over 2 ½ - 3 kalenderår” ...?)https://datamuseum.dk/site_dk/rc/pbh/SoftwareGroup.pdfMen ”Rialtoafdelingen” har ligget der endnu før (1963):https://datamuseum.dk/site_dk/rc/pbh/Ansaettelsesbrev.pdf

Det er Rialto-bygningen på Frederiksberg. Falkonér Allé 1-5 (du kan se på foto og fortsat rundt om hjørnet ad Smallegade).

En biograf-, kontor-, butik- og boligbebyggelse fra 1964 med Rialto Teatret. Tegnet af (”velfærds”-)arkitekten Svenn Eske Kristensen (1905-2000):https://da.wikipedia.org/wiki/Svenn_Eske_Kristensenhttps://slks.dk/fileadmin/user_upload/kulturarv/publikationer/emneopdelt/bygninger/aarshefte/2008/velfaerdssamfundets_bygninger.pdf#page=29

Jeg kan godt lide, at gå over den lille fodgængerovergang dér. Se facaden, der rejser sig op, knejsende. Der er en masse halløj på bygningen nu, ud mod gaden. Ikke mindst butikkerne i bunden, derfor er det godt at gå på samme side, ”ind under” bygningen, hvis man skal den vej forbi. Det er da meget godt at tænke på, at Regnecentralen har ligget dér engang :)

13
19. september 2019 kl. 14:58

Datalogi i århus har faktisk lavet endnu to (eller flere) specielle sprog til undervisningen (se f.eks. https://skema.secretman.dk/mesterdatalogen/trine.html).

Det første AKA, fik vi dengang beskrevet som "så smukt at man er NØDT til at programmere ordentligt" - så kunne vi lære det. Det andet Trine, kender jeg ikke så godt, men da det var mere rigt og komplekst, var det væsentligt svære at lære og man kunne godt komme til at lave nogen unoder...

12
19. september 2019 kl. 13:15

Swift er en overflødig innovation. Apple kunne lige så godt have anvendt C#, hvis det ikke handlede om licenspolitikker og forretningsmodeller

Det er sikkert ikke helt forkert, men spøjst at benytte C# i sammenligningen.

Spol tiden tilbage og udskift "Apple" med "Microsoft" og "C#" med "Java". Alle der kender historien ved at Microsoft på daværende tidspunkt ikke opfandt et nyt sprog som C# for at være innovative, udelukkende for at fremme egen forretning.

11
19. september 2019 kl. 13:08

At sige at C++ har "rod i Danmark", når det blev udviklet på Cambridge Universitet, og har rødder i C og Simula, for ikke at nævne at Anders Hejlsberg's forskellige Pascal dialekter står som selvstændige sprog til trods for at de blev udviklet hos Borland og Micrsoft henholdsvis, og naturligvis har rødder i Pascal, og derfor har norske "rødder". Så er der Ruby on Rails som ikke er et programmeringssprog., hvis vi bare skal tælle software som er udviklet af folk som er født i Danmark fuldstændigt ukritisk, synes jeg at PHK's Varnish mangler fra listen, eller Rune Gram-Madsen's ASM-One.

10
19. september 2019 kl. 13:06

Hvis man gerne vil genopfriske gamle dage med Simula eller ALGOL60 så kan man bruge CIM compileren. Den vigtigste forskel mellem Simula og ALGOL60 er default parameteroverførsel til procedurekald. ALGOL60 valgte call-by-name som skal specificeres explicet i Simula. Call-by-name bør kun bruges hvor det virkelig udnyttes. "Jensens device" er noget speciel, men programpakken SAFEIO er et godt eksempel som vanskeligt kan laves uden call-by-name. GUI programmering i Simula behøver ikke et GUI-framework men man kan starte med et hovedprogram der danner vinduer med indhold og agerer på brugerens interaktion.

8
19. september 2019 kl. 11:08

Hvis vandet gör en forskel så skyldes det mere hvad der IKKE er i vandet i Danmark.

Forfärdeligt mange steder i USA er drikkevandet forurenet.

Blandt andet med bly fra old-gamle vandrör som man ikke har "råd" til at skifte ud (formodentligt fordi problemet findes der hvor de fattige bor).

Bly i barndommen koster en 10-15 point på intelligensskalaen, oveni livslange problemer med impulskontrol og planlägning.

4
19. september 2019 kl. 10:08

...hvis nogen skulle være i tvivl. (Lidt off topic) Jeg ved ikke hvorfra Peter Naur arvede sin, men min søn kom i en længere periode sammen med hans barnebarn. Hold da helt k... hvor var hun skrap! Desværre havde min søn kun arvet min :-) så det holdt ikke i længden.

3
19. september 2019 kl. 09:54

Mit kontor var lige ved trappen, så når Kristen ankom, råbte han til mig, at jeg skulle finde nogle studenter og noget øl.

Jeg tænkte det nok. Det var ikke noget i vandet, det var noget i øllet.

1
19. september 2019 kl. 08:47

Der har været meget lidt udvikling af sprog som minimerer programmerings fejl og konsekvensen af hardware fejl.
Det undrer i betragtning af hvor mange fejl der er i programmer.