Der kan man bare C

(Kort efter at jeg havde skrevet dette indlæg, opdagede jeg, at Dennis Ritchie, en af ophavsmændene til C (og til Unix), døde i denne uge. Det er selvfølgelig ikke min hensigt at klandre Ritchie for noget som helst. C har været et vigtigt programmeringssprog, men heller ikke C er hele sandheden.)

Som jeg afslørede for ikke så længe siden, er jeg en af underviserne i kurset “Programmeringsparadigmer”, der ligger på 5. semester af vores datalogiske uddannelser (i datalogi og software). Jeg afholder to kursusgange om programmering i Prolog, og til sidst vender jeg tilbage med en kursusgang om lambda-kalkylen.

En øvelse, der volder mange af de studerende overraskende store problemer, er at skrive et Prolog-prædikat, der konverterer et naturligt tal i sædvanlig notation til unær notation. Dvs. at oversætte 5 til succ(succ(succ(succ(succ(0))))).

Her er mit bud på en løsning.

tosucc(0,0).
tosucc(N,succ(X)) :- M is N-1, tosucc(M,X).

Lad mig understrege at det bestemt ikke er et specielt besværligt hold af studerende, jeg har med at gøre. De fleste ser ud til at gøre sig umage. Men dét, jeg observerer, er to problemer. Det første: Hvor får man serveret resultatet henne og hvordan? Det er svært for mange at opdage, at resultatet findes i anden parameter af prædikatet tosucc. Et typisk problem er, at man har svært ved at skelne mellem størrelserne N og M, der er sædvanlige tal, og X, der er et tal i unær notation. Det andet problem: Hvordan beregner man det unære udtryk? I Prolog handler det i høj grad om at programmere ved brug af rekursion, som løsningen ovenfor også kraftigt antyder.

Det kan der være to mulige forklaringer på. Den ene er, at Prolog ikke har noget typebegreb. Hvis Prolog var typet, ville man let kunne se forskel på N og M på den side og X på den anden. Den anden er, at de studerende i de første to år af deres studium har lært at programmere i C-lignende sprog. Først kom C, så kom C# og nogle har også muntret sig med C++. Jeg skal retfærdigvis sige, at C# er designet af folk, der bestemt kender til applikative sprog som Prolog og Haskell, men man kan sagtens som C#-programmør helt undgå at finde ud af det. Man kan også nemt undgå at møde rekursive definitioner, for slet ikke at tale om prædikater, hvis man programmerer i et C-lignende sprog. Måske er det mest bekymrende i virkeligheden, at de studerende starter med at møde C, der ikke er et typesikkert sprog og hvor man sagtens kan undgå at blive nødt til at bruge rekursion.

Jeg skal passe på med at lyde alt for kritisk, for jeg var trods alt med til at skrive de nye studieordninger for uddannelserne i datalogi og software. Jeg vil heller ikke klandre dem, der underviser i introducerende programmering, for jeg ved, at de gør det rigtig godt. Men dels var jeg ikke ene om at skrive studieordningen, dels er det muligt at reflektere over den faktiske studieordning på baggrund af praksis.

Det sædvanlige argument for at man skal lære C-agtige sprog tidligt i sit studium er, at “det får de studerende brug får, når de engang bliver færdige og skal arbejde med at udvikle programmer”. Det er formodentlig rigtigt, men hertil vil jeg indvende følgende.

  1. De fleste andre læringsmål, som de studerende bliver præsenteret for tidligt i deres studium, er begrundet i en progression i studiet, ikke i fremtidig erhvervskompetence. Sagt mindre knudret: Vi siger som regel: “Dette får I også brug for at vide på et senere semester”, ikke “Dette får I brug for at vide, når I engang får et arbejde”.
  2. Det kan være, at man skriver bedre C-programmer, hvis man har set et helt anderledes sprog først. Der var faktisk en kort periode på 3 år, hvor de studerende på første studieår mødte SML som deres første sprog. Og de lærte at programmere i C-agtige sprog alligevel.
  3. Måske er der i et vist omfang en selvopfyldende profeti indbygget i at fokusere så meget på C-agtige sprog. Kandidater i datalogiske fag lærer at C-agtige sprog er de vigtigste og fører uvilkårligt denne tradition videre, når de får arbejde og måske ender som ledere af softwareudviklingsprojekter.

Jeg kan ikke lade være med at tænke på analogien med at lære fremmedsprog. Alle får at vide, at det er vigtigt at lære engelsk. Og ja, engelsk er vigtigt at kunne, men ikke fordi engelsk er det bedste sprog – kun fordi mange taler det og fordi der er skrevet en hel masse på engelsk. Problemet kommer, når man glemmer at engelsk er ét blandt mange sprog, det er værd at kende.

På den lange bane osv.

Bare rolig,  jeg har ikke tænkt mig at skrive om politik. Jeg vil skrive lidt om noget, det er endnu sværere at gøre noget ved – nemlig sproget. Georg Metz indleder en lang klumme i Information således:

Danske politikere synes i det store og hele og med undtagelse af en håndfuld retoriske talenter at befinde sig uden for pædagogisk rækkevidde i deres forfloskning af sproget. Det tilbagelagte folketingsvalg afkræfter ikke den påstand. Hvad de dog får høvlet af sig af kolde og varme hænder i fremadrettede udfordringer, fordi det skal kunne betale sig at arbejde, mens vi som ansvarligt parti trækker i arbejdstøjet og afviser ufinansierede skattelettelser på den lange og korte bane med verdens bedste folkeskole og udsigt til bæredygtige fleksible løsninger — og så videre i én uendelighed. Det er næsten ikke til at bære, og man fatter ikke at politikernes presserådgivere ikke kan gøre noget ved det. Eller det fatter man måske alligevel ved nøjere eftertanke.

Og så hedder klummen endda “Hvorom alting er”, en af de vendinger, jeg af og til bliver kritiseret for at gribe til i tide og (især) i utide.

Flosklerne er de tilsyneladende meningsfyldte sproglige konstruktioner, som i virkeligheden enten er tømt for mening eller ikke kan gives en bare nogenlunde veldefineret mening. Hvad betyder f.eks. “ansvarlig økonomisk politik” eller “verdensklasse”?

Det barokke er, at mange meningsdannere prøver at finde frem til stærke formuleringer, men ender i floskelmageri. Floskler findes nemlig ikke kun i politik. Alle fag kender dem. En tidligere kollega, der i en del år var toneangivende på mit institut på godt og ondt, talte ofte om “åben dialog”. I Akademisk Råd, hvor jeg er medlem, har vi vores helt eget repertoire. En ny sport, der gør møderne nemmere at komme igennem, er født – floskelbingo. Kryds flosklerne af på pladen, efterhånden som de dukker op til mødet.

I reklamebranchen handler det vel stort set ikke om andet end kontrolleret floskelmageri. Ovenfor kan man se en floskelbingoplade, der kan anvendes ved møder i dén branche. Til min store skræk opdager jeg, at de svenske floskler til forveksling ligner de danske.

Også forskningsverdenen har sine floskler. Fra datalogien kender jeg de “sikkerhedskritiske systemer”, der gerne må være “kvalitetssoftware”. Kigger man i en typisk publikation (især inden for de mindre matematisk orienterede dele af datalogi), står den slags ofte i kø. Prøv blot at læse om “cloud computing” (der vel selv er en floskel). De mest banebrydende videnskabelige publikationer har derimod deres eget, floskelfrie sprog, for her har forfatterne set verden påny og været nødt til at formulere et nyt sprog.

Negationstesten er mit yndlingsredskab, når bestemte floskler skal aflives (men kan desværre ikke bruges på dem alle). Lad os prøve at udtrykke det modsatte af en vending, enten ved at indsætte ordet “ikke” eller ved at prøve at udtrykke det modsatte på anden vis. Hvor tit hører man at f.eks. “i vores parti vil vi føre en uanstændig retspolitik”, at “vi vil føre en lukket dialog med nogle udvalgte få” eller “vi vil ikke fremme beskæftigelsen”?

Det bedste, jeg ved, er at læse eller lytte til dem, der ikke bruger floskler, men kan kommunikere selv. Vi kender sikkert alle sådanne kommunikatorer; prøv at lægge mærke til, hvad de gør og lær af dem. Det vil jeg selv blive bedre til.

De naturlige sprogs informationsteori

Hvorfor er der nogle sprog, der lyder “hurtigere” end andre? Spansk virker for mange (også for mig) som et sprog, hvor der bliver talt hurtigt, mens fransk og tysk er mere adstadige i tempo. Underligt nok, for fransk er tættere beslægtet med spansk end med tysk. I Time kan man læse om en fransk undersøgelse fra Université de Lyon, der undersøger dette.

Der er tale om en empirisk undersøgelse, hvor man har ladet mennesker med forskellige modersmål læse de samme tekster i hver deres oversættelse højt. Det viser sig, at der er forskelle i informationstætheden i det sprog, der tales – løst sagt, hvor mange stavelser, der skal bruges for at udtrykke en mening – og på hvor mange stavelser, der siges pr. tidsenhed. På spansk er informationstætheden lavere end på fransk, men der siges flere stavelser pr. tidsenhed. Det er derfor, det virker det som om spansktalende taler hurtigere end fransktalende.

En anden undersøgelse fra Manchester University synes til gengæld at påvise, at forskellige naturlige sprog har samme entropi, og det undrede mig først. Entropi i informationsteoretisk forstand er et mål for den forventede informationsmængde i et sprog. Mere præcist, hvis en stokastisk variabel X kan antage værdier i mængden \{ x_1, \ldots, x_n \} med sandsynlighed p(x_i), så er entropien givet ved

H(X) = - \sum^{n}_{i=1} p(x_i)\log_2(p(x_i))

Fra Lyon-undersøgelsen skulle man forvente, at spansk og fransk ikke havde samme entropi. Men Manchester-undersøgelser siger, at det har det. Hvordan kan de to konklusioner leve sammen? Forskellen er så vidt jeg kan se, at undersøgelsen fra Lyon betragter entropien af stavelser, mens undersøgelsen fra Manchester betragter entropien af længere sproglige konstruktioner (sætninger og helmeninger) – så udfaldsrummet for X er i Lyon-undersøgelsen mængden af stavelser og Manchester-undersøgelsen mængden af sætninger.

Det er også interessant, at Manchester-undersøgelsen tilsyneladende udelukkende betragter “langsomme” sprog som engelsk, tysk, fransk, finsk, kinesisk, tagalog (det mest udbredte sprog på Filippinerne) og uddøde sprog som sumerisk og oldægyptisk, for hvilke man muligvis ikke (jeg ved det ikke) kan sige meget om hastigheden.

Hvad gør os frie?

20110910-081020.jpg

Her på bloggen har jeg skrevet om hvordan positivt ladede begreber bliver forsøgt kapret og givet en ny mening og hvordan dele af menneskerettighederne bliver isoleret og forsøgt kapret. Det klassiske eksempel er ytringsfrihed. Idehistoriker Mikkel Thorup har en interessant kronik i Information i dag om netop dette. Hans nøglecitat er:

Danskhed bliver med andre ord en ressource i en usikker verden; en kulturel ressource imod den såkaldt multikulturelle eller endda muslimske trussel. En økonomisk ressource, idet danskere angiveligt kan noget qua deres autoritetskritik, frigjorthed og kreativitet, som vil tjene os i den globale konkurrence. Danske og universelle værdier er gledet sammen. Eller rettere: Universelle værdier fra oplysningstraditionen præsenteres nu som danske værdier.

Det er kønnenes ligestilling og seksuelle minoriteters rettigheder; det er kunstens autonomi, ytringsfrihed og ret til latterliggørelse; det er adskillelse af religion og politik; det er tolerance og frisind; det er demokrati og autoritetskritik; det er forbud mod at banke børn og koner derhjemme; det er med ét ord: frigørelse, der hyldes.

Det pudsige er, at frigørelse er et ord, som både højre- og venstrefløj ellers tidligere var enige om, at de venstreorienterede havde patent på: De venstreorienterede, fordi de mente, frigørelse var frigørelse fra alt det højreorienterede. De højreorienterede, fordi de egentlig var enige, men bare så frigørelse som et angreb på alt det, de satte pris på. Nu betyder frigørelse ikke kritik af, men bekræftelse af det bestående; ikke en forandring, men en bevaring af og et forsvar for det bestående.

440 Hz

Dagbladet Information er næsten blevet et temanummer om “tonen” i den politiske debat. Først er der et telegram fra Ritzau, hvor den norske statsminister Jens Stoltenberg bliver citeret.

– Jeg synes, at man skal være varsom med at spekulere i årsager, og hvad der udløser sådanne handlinger. Vores erfaring her i Norge er, at vi tidligere har set racistisk motiveret vold, selv om debatten ikke har været hård, siger Jens Stoltenberg.

Anna von Sperling skriver i en klumme at

Naturligvis skal vi snakke ordentligt til og ikke mindst om hinanden. Men det er alligevel påfaldende i post-Utøya-debatten, hvor meget krudt der er blevet brugt på at sammenkoble skredet i sproget og tonen i debatten om radikalisering af unge mænd som Anders Behring Breivik. Og hvor rungende stille der har været om en totalt indlysende og uhyggelig simpel pointe: At vi i dag i Danmark, i Skandinavien, i Europa har skabt dybt diskriminerende lovgivninger og praksiser til tider med skræmmende racistiske slagsider. Vi er langt, langt længere på det plan end med skred i sproget.

Og endelig har Center for Vild Analyse en vild analyse, denne gang om – “kammertonen”.

Hvis der er noget galt med ‘tonen’ i debatten, er det, at vi er blevet tonedøve af kulturalismens relativeringer, hvor alting igen skal tilbageføres til privatgemakkerne. Argumenter er blevet til holdninger, og menneskehedens interesse er blevet til lokale kulturers historiske egenarter, som hver især har ret til at ytre deres syn på verden, som de vil. Dermed bliver ytringer til støj, snarere end samtale. Vi har glemt, at ytringsfriheden udspringer af den samme tradition som kammertonen og er tæt forbundet med den.

Hvad nu hvis virkelig respekt for den anden, som siger noget racistisk, ikke er at forsvare hans ytringsfrihed, men at antage ham for en diskussionspartner, der fortjener at blive irettesat? Kulturalismen, højre- og venstreorienteret, betragter den anden som et udtryk for en kulturel egenart, der ikke kan være anderledes, nærmest som om ethvert udsagn var determinteret af den biotop, det udspringer af. Var det ikke mere respektfuldt at lytte til den anden, reagere og antage, at han vil være i stand til at reflektere over modstand: »Det, du siger der, er simpelthen for dumt. Du må holde op med det. Vi gider ikke høre på det mere.«

Og her er det, mine egne overvejelser kommer ind.  Er det sproget, der skaber den politiske virkelighed eller er det mon den politiske virkelighed, der skaber sproget? Jeg er i dag mest overbevist om, at der er en vekselvirkning, og at vi derfor skal huske at sproget er skabt af vores tanker om samfundet. De nationalistiske holdninger kommer først, og derefter finder dens tilhængere frem til nationalismens sprog. Først herefter går påvirkningen den anden vej, fra sprog til politik.

Et “pænt” sprog er nemlig ikke garant for noget som helst. Selv de mest intolerante personer i tidens debat taler ikke om sigøjnere og muhammedanere mere, men om romaer og muslimer. Og selv de mest diskriminerende beslutninger i dansk politik – 24-års-reglen, “starthjælpen” og senest loven om udvisning, som Socialdemokratiet og SF har stemt for i år – kan omtales af beslutningstagerne uden de man gør brug af “en hård tone”.

Og måske er det ikke så meget de ord, vi bruger, men snarere den måde vi ikke taler sammen på, der er problemet. Der er i dagens politiske debat i stort omfang en forbløffende enighed om ikke at lytte til hinanden eller at finde frem til de gode argumenter, men i stedet bruge sproget som et strategisk fremføringsmiddel og at betragte modpartens ytringer som kulturelt betingede. Det gode argument har det ikke godt.

De tre citater ovenfor vil jeg derfor gerne lade blive stående til eftertanke her.

Det flotte sprog

 

Jeg tænker over sproget, og jeg kan ikke lade være. Alle akademiske fag – og bestemt også datalogi – er trods alt en slags sprogfag. For nylig gik jeg gennem et indkøbscenter i Aalborg, og da så jeg adskillige skilte som ovenstående. Et kort øjeblik fik jeg lyst til at gå ind og spørge, hvor alle salene var. Eller mindre sarkastisk: hvorfor kan de da ikke bare skrive “udsalg”?

Jeg tog et billede og lod det havne på Facebook. Min gamle klassekammerat, den altid skeptisk anlagte Bertel Brander, undrede sig over at jeg her tilsyneladende var enig med nationalkonservative personer som Søren Krarup.

Jeg tror bestemt ikke, jeg er enig med Søren Krarup. Det danske sprog må meget gerne udvikle sig og lade sig inspirere af andre sprog. Et særligt træk ved det sprog, vi taler, er at det både bliver formet spontant efter mekanismer, der på mange måder svarer til den biologiske evolutions, og gennem bevidst påvirkning fra lovgivere og institutioner. Men det jeg gerne så, var, at vi reflekterede mere over sprogets udvikling – at vi stiller os selv spørgsmålet: Hvorfor udtrykker vi os egentlig, som vi gør?

I dette tilfælde fører dette til spørgsmålet: Hvorfor er udsalg inden for de seneste par år blevet til “sale” i en del danske butikker? Her er et antal hypoteser.

  1. Der er tale om ny form for udsalg, der ikke kan beskrives med det vante ord.
  2. Ordet “udsalg” er langt og svært at udtale.
  3. Pres fra talesproget; ordet “sale” bliver brugt i daglig tale, mens “udsalg” er en gammel konvention fra skriftsprogets verden, og et ord, ingen bruger.
  4. Krav om en højere grad af terminologisk præcision i butiksverdenen.
  5. Et ønske om at få turister fra engelsktalende lande til at købe mere.
  6. Større butikskæder anvender eller får produceret fælles reklamemateriale, der bruges i mange forskellige lande.
  7. Den “japanske beundringsmodel”: Engelske ord opfattes som ‘smarte’. I Japan (og siden også andre lande i Østasien) har man ofte tilsyneladende tilfældigt valgte engelske ord trykt på tøj og tasker, måske endda helt ugrammatisk anvendt.

Jeg tror ikke på hypoteserne 1-5; hypotese 6 er meget sandsynlig (omend jeg ikke ved om det faktisk er tilfældet) og kan forklare at salene dukker op så pludseligt, og hypotese 7 er også meget sandsynlig. Spørger man min datter, vil hun også sige, at engelsk er ‘smart’ – det er idolernes og præsidenternes og popsangenes sprog. Det er de andres sprog, et lidt fremmed sprog, og ‘vi’ vil gerne være som ‘dem’.

Det er en pseudo-overtagelse af udvalgte ord; butikkerne løber ikke linen ud og skriver f.eks. “Hver dag: Nyt offer!”.

Måske er dansk ikke ‘smart’, netop fordi der ikke er en barriere? Jeg tror, vi har udviklet en form for blufærdighed forbundet med at udtrykke sig på dansk, og det er vel også derfor, at en del danske musikgrupper, der bestemt ikke altid har en chance for at slå igennem i udlandet, har skrevet sange med engelske tekster. Man kan sige noget andet, være en anden og måske også sige noget mindre forpligtende og mindre præcist på et andet sprog. Tilsvarende: hvis udsalget bare hedder “udsalg”, får vi en fortælling om nedsatte varer et sted i Aalborg. Men et sale smager af indkøb i London og New York, af at være et andet sted og være en anden person, derude i salene.