In dit essay bekritiseert Edsger W. Dijkstra het streven naar 'natuurlijke taalprogrammering'. Hij stelt dat de complexiteit van programmeren niet voortkomt uit het gebruik van formele symbolen, maar uit de noodzaak voor precisie.
De belangrijkste punten zijn:
- Formeel symbolisme vs. Natuurlijke taal: Formele talen sluiten onzin en ambiguïteit uit, terwijl natuurlijke talen juist uitnodigen tot onduidelijkheid.
- Historische context: Dijkstra verwijst naar de wiskunde, waar de overstap van verbale naar symbolische weergave essentieel was voor wetenschappelijke vooruitgang.
- De interface-illusie: Het idee dat de mens minder werk hoeft te verrichten als de machine de natuurlijke taal begrijpt, is volgens hem een misvatting; de communicatie over zo'n brede interface wordt juist minder efficiënt.
- The New Illiteracy: Hij waarschuwt dat de afnemende beheersing van de eigen taal in de westerse wereld het risico op fouten bij natuurlijke taalprogrammering alleen maar vergroot.
Dijkstra concludeert dat machines die in moedertalen geprogrammeerd kunnen worden, zowel extreem moeilijk te bouwen als onmogelijk te gebruiken zullen zijn.
Over de dwaasheid van "natuurlijke taalprogrammering" (EWD 667)
De evolutie van programmeertalen
Machinecode, met het nagenoeg volledige ontbreken van redundantie, werd al snel geïdentificeerd als een onnodig risicovolle interface tussen mens en machine. Deels als reactie op dit inzicht werden zogenaamde "hogere programmeertalen" ontwikkeld, en na verloop van tijd leerden we tot op zekere hoogte hoe we de bescherming tegen domme fouten konden verbeteren. Het was een significante verbetering dat veel domme fouten nu resulteerden in een foutmelding in plaats van in een foutief antwoord. (En zelfs deze verbetering werd niet universeel gewaardeerd: sommige mensen vonden foutmeldingen die ze niet konden negeren irritanter dan foute resultaten, en bij het beoordelen van de relatieve verdiensten van programmeertalen lijken sommigen "het gemak van programmeren" nog steeds gelijk te stellen aan het gemak waarmee onopgemerkte fouten worden gemaakt.)
De (abstracte) machine die correspondeert met een programmeertaal bleef echter een trouwe slaaf; oftewel, een onverstandige automaat die perfect in staat is om onzinnige instructies uit te voeren. Programmeren bleef het gebruik van een formeel symbolisme en vereiste daarom nog steeds de zorgvuldigheid en nauwkeurigheid die voorheen nodig was.
De illusie van natuurlijke taal
Om machines aanzienlijk gemakkelijker bruikbaar te maken, is voorgesteld (te proberen) machines te ontwerpen die we in onze moedertalen kunnen instrueren. Dit zou de machines weliswaar veel complexer maken, maar er werd aangevoerd dat het leven voor ons gemakkelijker zou worden door de machine een groter deel van de last te laten dragen. Dit klinkt verstandig, mits men de verplichting om een formeel symbolisme te gebruiken als de bron van de moeilijkheden beschouwt. Maar is dit argument geldig? Ik betwijfel het.
Inmiddels weten we dat de keuze voor een interface niet slechts een verdeling van (een vaste hoeveelheid) arbeid is, omdat het werk dat gepaard gaat met het samenwerken en communiceren over de interface moet worden opgeteld. We weten inmiddels — uit een ontnuchterende ervaring, mag ik toevoegen — dat een wijziging van de interface aan beide kanten van de grens de hoeveelheid werk die moet worden verricht gemakkelijk kan verhogen (zelfs drastisch). Vandaar de toegenomen voorkeur voor wat nu "smalle interfaces" worden genoemd. Daarom moeten we, hoewel een overstap naar communicatie tussen machine en mens in de moedertaal van die laatste de last van de machine aanzienlijk zou vergroten, de aanname uitdagen dat dit het leven van de mens zou vereenvoudigen.
Historische lessen en de waarde van formalisme
Een korte blik op de geschiedenis van de wiskunde laat zien hoe gerechtvaardigd deze uitdaging is:
- De Griekse wiskunde liep vast omdat het een verbale, picturale activiteit bleef.
- De islamitische "algebra" stierf, na een timide poging tot symbolisme, toen deze terugkeerde naar de retorische stijl.
- De moderne beschaafde wereld kon alleen ontstaan — voor beter of slechter — toen West-Europa zich kon bevrijden van de ketenen van de middeleeuwse scholastiek —een vergeefse poging tot verbale precisie!— dankzij de zorgvuldig, of althans bewust, ontworpen formele symbolismen die we te danken hebben aan mensen als Vieta, Descartes, Leibniz en (later) Boole.
De kracht van formele teksten is dat hun manipulaties, om legitiem te zijn, slechts aan een paar eenvoudige regels hoeven te voldoen; ze zijn, als je erover nadenkt, een verbazingwekkend effectief instrument om alle soorten onzin uit te sluiten die, wanneer we onze moedertaal gebruiken, bijna onmogelijk te vermijden zijn.
In plaats van de verplichting om formele symbolen te gebruiken als een last te beschouwen, zouden we het gemak van het gebruik ervan als een privilege moeten zien: dankzij hen kunnen schoolkinderen leren doen wat in eerdere tijden alleen een genie kon presteren. (Dit werd overduidelijk niet begrepen door de auteur die — in 1977 — in het voorwoord van een technisch rapport schreef dat "zelfs de standaard symbolen die gebruikt worden voor logische connectieven zijn vermeden omwille van de duidelijkheid". Het voorkomen van die zin suggereert dat het misverstand van de auteur niet beperkt is tot hem alleen.) Wanneer alles gezegd en gedaan is, komt de "natuurlijkheid" waarmee we onze moedertalen gebruiken neer op het gemak waarmee we ze kunnen gebruiken om uitspraken te doen waarvan de onzin niet voor de hand ligt.
Een hypothetisch scenario
Het kan verhelderend zijn om te proberen ons voor te stellen wat er zou zijn gebeurd als onze moedertaal vanaf het begin het enige voertuig zou zijn geweest voor de input in en de output uit onze informatieverwerkingsapparatuur. Mijn weloverwogen gok is dat de geschiedenis zich in zekere zin zou hebben herhaald, en dat de informatica hoofdzakelijk zou bestaan uit de inderdaad "zwarte kunst" van hoe men vanaf dat punt kan bootstrapen naar een voldoende goed gedefinieerd formeel systeem. We zouden alle intellect ter wereld nodig hebben om de interface smal genoeg te maken om bruikbaar te zijn, en gezien de geschiedenis van de mensheid is het wellicht niet overdreven pessimistisch om te vermoeden dat het goed uitvoeren van die taak opnieuw een paar duizend jaar zou kosten.
Opmerking over "De Nieuwe Analfabetisme"
Als gevolg van de educatieve trend weg van intellectuele discipline, is in de westerse wereld de laatste decennia een scherpe daling te zien in de beheersing van de eigen taal. Velen die naar de normen van een vorige generatie beter zouden moeten weten, zijn niet langer in staat hun moedertaal effectief te gebruiken, zelfs niet voor doeleinden waarvoor deze redelijk adequaat is. (Men hoeft alleen maar te kijken naar de inderdaad alarmerende hoeveelheid betekenisloze woordenzaligheid bij nauwkeurig lezen in wetenschappelijke artikelen, technische rapporten, overheidspublicaties, etc.) Dit fenomeen — bekend als "The New Illiteracy" (Het Nieuwe Analfabetisme) — zou de gelovigen in natuurlijke taalprogrammering die het technische inzicht missen om het falen ervan te voorspellen, moeten ontmoedigen. (Einde opmerking.)
Conclusie
Vanuit één onderbuikgevoel put ik veel troost: ik vermoed dat machines die in onze moedertalen geprogrammeerd kunnen worden — of het nu Nederlands, Engels, Amerikaans, Frans, Duits of Swahili is — net zo verdomd moeilijk te maken zullen zijn als ze te gebruiken zouden zijn.
prof.dr. Edsger W. Dijkstra Burroughs Research Fellow
Over de dwaasheid van "natuurlijke taalprogrammering" (EWD 667)
De evolutie van programmeertalen
Machinecode, met het nagenoeg volledige ontbreken van redundantie, werd al snel geïdentificeerd als een onnodig risicovolle interface tussen mens en machine. Deels als reactie op dit inzicht werden zogenaamde "hogere programmeertalen" ontwikkeld, en na verloop van tijd leerden we tot op zekere hoogte hoe we de bescherming tegen domme fouten konden verbeteren. Het was een significante verbetering dat veel domme fouten nu resulteerden in een foutmelding in plaats van in een foutief antwoord. (En zelfs deze verbetering werd niet universeel gewaardeerd: sommige mensen vonden foutmeldingen die ze niet konden negeren irritanter dan foute resultaten, en bij het beoordelen van de relatieve verdiensten van programmeertalen lijken sommigen "het gemak van programmeren" nog steeds gelijk te stellen aan het gemak waarmee onopgemerkte fouten worden gemaakt.)
De (abstracte) machine die correspondeert met een programmeertaal bleef echter een trouwe slaaf; oftewel, een onverstandige automaat die perfect in staat is om onzinnige instructies uit te voeren. Programmeren bleef het gebruik van een formeel symbolisme en vereiste daarom nog steeds de zorgvuldigheid en nauwkeurigheid die voorheen nodig was.
De illusie van natuurlijke taal
Om machines aanzienlijk gemakkelijker bruikbaar te maken, is voorgesteld (te proberen) machines te ontwerpen die we in onze moedertalen kunnen instrueren. Dit zou de machines weliswaar veel complexer maken, maar er werd aangevoerd dat het leven voor ons gemakkelijker zou worden door de machine een groter deel van de last te laten dragen. Dit klinkt verstandig, mits men de verplichting om een formeel symbolisme te gebruiken als de bron van de moeilijkheden beschouwt. Maar is dit argument geldig? Ik betwijfel het.
Inmiddels weten we dat de keuze voor een interface niet slechts een verdeling van (een vaste hoeveelheid) arbeid is, omdat het werk dat gepaard gaat met het samenwerken en communiceren over de interface moet worden opgeteld. We weten inmiddels — uit een ontnuchterende ervaring, mag ik toevoegen — dat een wijziging van de interface aan beide kanten van de grens de hoeveelheid werk die moet worden verricht gemakkelijk kan verhogen (zelfs drastisch). Vandaar de toegenomen voorkeur voor wat nu "smalle interfaces" worden genoemd. Daarom moeten we, hoewel een overstap naar communicatie tussen machine en mens in de moedertaal van die laatste de last van de machine aanzienlijk zou vergroten, de aanname uitdagen dat dit het leven van de mens zou vereenvoudigen.
Historische lessen en de waarde van formalisme
Een korte blik op de geschiedenis van de wiskunde laat zien hoe gerechtvaardigd deze uitdaging is:
- De Griekse wiskunde liep vast omdat het een verbale, picturale activiteit bleef.
- De islamitische "algebra" stierf, na een timide poging tot symbolisme, toen deze terugkeerde naar de retorische stijl.
- De moderne beschaafde wereld kon alleen ontstaan — voor beter of slechter — toen West-Europa zich kon bevrijden van de ketenen van de middeleeuwse scholastiek —een vergeefse poging tot verbale precisie!— dankzij de zorgvuldig, of althans bewust, ontworpen formele symbolismen die we te danken hebben aan mensen als Vieta, Descartes, Leibniz en (later) Boole.
De kracht van formele teksten is dat hun manipulaties, om legitiem te zijn, slechts aan een paar eenvoudige regels hoeven te voldoen; ze zijn, als je erover nadenkt, een verbazingwekkend effectief instrument om alle soorten onzin uit te sluiten die, wanneer we onze moedertaal gebruiken, bijna onmogelijk te vermijden zijn.
In plaats van de verplichting om formele symbolen te gebruiken als een last te beschouwen, zouden we het gemak van het gebruik ervan als een privilege moeten zien: dankzij hen kunnen schoolkinderen leren doen wat in eerdere tijden alleen een genie kon presteren. (Dit werd overduidelijk niet begrepen door de auteur die — in 1977 — in het voorwoord van een technisch rapport schreef dat "zelfs de standaard symbolen die gebruikt worden voor logische connectieven zijn vermeden omwille van de duidelijkheid". Het voorkomen van die zin suggereert dat het misverstand van de auteur niet beperkt is tot hem alleen.) Wanneer alles gezegd en gedaan is, komt de "natuurlijkheid" waarmee we onze moedertalen gebruiken neer op het gemak waarmee we ze kunnen gebruiken om uitspraken te doen waarvan de onzin niet voor de hand ligt.
Een hypothetisch scenario
Het kan verhelderend zijn om te proberen ons voor te stellen wat er zou zijn gebeurd als onze moedertaal vanaf het begin het enige voertuig zou zijn geweest voor de input in en de output uit onze informatieverwerkingsapparatuur. Mijn weloverwogen gok is dat de geschiedenis zich in zekere zin zou hebben herhaald, en dat de informatica hoofdzakelijk zou bestaan uit de inderdaad "zwarte kunst" van hoe men vanaf dat punt kan bootstrapen naar een voldoende goed gedefinieerd formeel systeem. We zouden alle intellect ter wereld nodig hebben om de interface smal genoeg te maken om bruikbaar te zijn, en gezien de geschiedenis van de mensheid is het wellicht niet overdreven pessimistisch om te vermoeden dat het goed uitvoeren van die taak opnieuw een paar duizend jaar zou kosten.
Opmerking over "De Nieuwe Analfabetisme"
Als gevolg van de educatieve trend weg van intellectuele discipline, is in de westerse wereld de laatste decennia een scherpe daling te zien in de beheersing van de eigen taal. Velen die naar de normen van een vorige generatie beter zouden moeten weten, zijn niet langer in staat hun moedertaal effectief te gebruiken, zelfs niet voor doeleinden waarvoor deze redelijk adequaat is. (Men hoeft alleen maar te kijken naar de inderdaad alarmerende hoeveelheid betekenisloze woordenzaligheid bij nauwkeurig lezen in wetenschappelijke artikelen, technische rapporten, overheidspublicaties, etc.) Dit fenomeen — bekend als "The New Illiteracy" (Het Nieuwe Analfabetisme) — zou de gelovigen in natuurlijke taalprogrammering die het technische inzicht missen om het falen ervan te voorspellen, moeten ontmoedigen. (Einde opmerking.)
Conclusie
Vanuit één onderbuikgevoel put ik veel troost: ik vermoed dat machines die in onze moedertalen geprogrammeerd kunnen worden — of het nu Nederlands, Engels, Amerikaans, Frans, Duits of Swahili is — net zo verdomd moeilijk te maken zullen zijn als ze te gebruiken zouden zijn.
prof.dr. Edsger W. Dijkstra Burroughs Research Fellow