De auteur beschrijft zijn aanvankelijke frustratie met de vaak overlappende en verwarrende terminologie binnen de informatica. Door middel van drie verschillende inzichten — ongedefinieerde termen in de wiskunde, de pragmatische visie van een professor op programmeertalen en de manier waarop psychiaters 'depressie' definiëren als een set symptomen — concludeert de auteur dat termen primair bedoeld zijn om communicatie mogelijk te maken.
De kernboodschap is dat het obsessief najagen van exacte definities vaak minder waardevol is dan het begrijpen van de context. De auteur pleit ervoor om terminologie niet als een barrière te zien, zeker niet voor beginners, maar als een hulpmiddel dat ondergeschikt is aan het werkelijke begrip van een concept.
Waarom ik stopte met me zorgen maken over terminologie
Programmeurs bedenken elke dag nieuwe termen, en iedereen kan dat doen. Op een gegeven moment begon ik het gevoel te krijgen dat twee mensen in verschillende contexten een term zouden bedenken die vrijwel hetzelfde concept beschrijft. Later zou iemand op Stack Overflow je dan vol vertrouwen en met veel plezier de "nuances" in betekenis uitleggen die iedereen over het hoofd ziet. Deze antwoorden beginnen natuurlijk altijd met "ze zijn nauw verwant, maar verschillend" (of sommige AI-tools die daar nog zelfverzekerder in zijn), maar vaak is het eigenlijk simpeler: vraag de persoon die de term gebruikt wat hij of zij ermee bedoelt.
Ik begon ook op te merken dat sommige termen binnen verschillende programmeerecosystemen op een specifieke manier worden gebruikt. Dezelfde term kan in verschillende contexten een andere betekenis hebben. Zo simpel is het.
Ik had een intense relatie met termen; ik ben opgegroeid met vertalen als een van mijn hobby's. Ik was verliefd op het opzoeken van de oorsprong van een term (etymologie). Ik ken veel leuke weetjes, zoals waarom het een lambda-functie wordt genoemd of waarom Shannon het entropie noemde in de informatietheorie. En ik zou je met plezier corrigeren en het verschil uitleggen tussen een higher-order function en een first-class function. Maar maakt dat eigenlijk wel uit?
Waarom ik besloot me niet langer druk te maken over terminologie, komt voort uit drie ervaringen:
De eerste ervaring
Ik las een boek over discrete wiskunde, het beroemde meesterwerk van Susanna. In een sectie schreef ze: "alle termen worden gedefinieerd met behulp van andere termen, maar dit moet ergens beginnen. In de mathematische logica zijn de termen 'zin', 'waar' en 'onwaar' de initiële ongedefinieerde termen". Ik dacht: wat?! Hoe kan dat? Kunnen we ongedefinieerde termen hebben in de WISKUNDE?
Nou, dat hebben we. We hebben overal ongedefinieerde termen en axioma's. We weten niet echt wat "causaliteit" betekent, of zelfs een concept als "tijd", maar we leven ermee. We weten duidelijk dat het bestaat. En hoewel we het nog niet echt kunnen uitleggen of bewijzen, kunnen we er geweldige dingen bovenop bouwen en kunnen we verbazingwekkende wetenschappelijke doorbraken realiseren.
De tweede ervaring
Ik volgde een online cursus over programmeertalen van de University of Washington (UW). Het was een geweldige cursus die me hielp om veel goede termen op te pikken die daadwerkelijk nuttig zijn. Maar op een zeker moment in de cursus, na het uitleggen van enkele concepten uit het functioneel programmeren, zei professor Dan Grossman: "Mensen verwarren vaak higher order functions en first class functions, dus we maken ons daar ook niet druk om".
Dat was een nederige ervaring. Als een man met een PhD in programmeertalen het niet belangrijk vindt, waarom maak ik er dan een strijd van?
Het is overigens vermeldenswaard dat dezelfde Dan Grossman zijn frustratie uitte over het feit dat mensen talen vaak "gecompileerde talen" noemen, terwijl dit eigenlijk een eigenschap is van de implementatie en niet van de taal zelf. Omdat dit in dit geval leidt tot een vertekend begrip van programmeertalen. Dus het is niet altijd zo simpel; het is niet óf "termen doen er niet toe" óf "ik vermoord je als je ze verkeerd gebruikt!".
De derde ervaring
Het derde inzicht zal je misschien verrassen; ik hoorde het van een psychiater die over depressie sprak. Hij zei: we weten niet echt wat depressie is. Sterker nog, het is niet een ziekte zoals andere ziekten die we kennen (zoals diabetes). Daarom noemen we het een stoornis; dat wil zeggen, een set symptomen die we vaak (maar niet altijd) samen zien voorkomen. Dus wij, de gemeenschap van psychiaters, zijn overeengekomen het "depressie" te noemen om met elkaar te kunnen communiceren. Als we op een dag een nieuw geval of een nieuw symptoom ontdekken van wat we "depressie" noemen, voegen we dat gewoon toe aan de lijst en geven we deze nieuwe "variant" misschien een naam (bijv. hoogfunctionerende depressie).
Nou, niets is zo simpel in het echte leven, maar de hoofdgedachte hier is dat we werkelijk niet precies weten wat het is. Maar dat houdt ons niet tegen om het welzijn van mensen na te streven; met ervaring en wetenschappelijk onderzoek kunnen we het zo goed mogelijk behandelen (met of zonder medicatie).
Dat waren de meest nederig makende woorden die ik ooit heb gehoord. En het was een diepe les die nu overduidelijk voelt: termen zijn simpelweg gecreëerd voor begrip. Dat is uiteindelijk wat telt. Dit gaat niet alleen over programmeren; helaas voeren we vaak felle strijden over een concept of een probleem, zonder te beseffen dat ieder van ons er een andere definitie van heeft.
Terminologie kan erg intimiderend zijn voor mensen die net beginnen in het vakgebied. Ik denk dat we moeten benadrukken hoe belangrijk het is om het gewoon rustig aan te doen.
Waarom ik stopte met me zorgen maken over terminologie
Programmeurs bedenken elke dag nieuwe termen, en iedereen kan dat doen. Op een gegeven moment begon ik het gevoel te krijgen dat twee mensen in verschillende contexten een term zouden bedenken die vrijwel hetzelfde concept beschrijft. Later zou iemand op Stack Overflow je dan vol vertrouwen en met veel plezier de "nuances" in betekenis uitleggen die iedereen over het hoofd ziet. Deze antwoorden beginnen natuurlijk altijd met "ze zijn nauw verwant, maar verschillend" (of sommige AI-tools die daar nog zelfverzekerder in zijn), maar vaak is het eigenlijk simpeler: vraag de persoon die de term gebruikt wat hij of zij ermee bedoelt.
Ik begon ook op te merken dat sommige termen binnen verschillende programmeerecosystemen op een specifieke manier worden gebruikt. Dezelfde term kan in verschillende contexten een andere betekenis hebben. Zo simpel is het.
Ik had een intense relatie met termen; ik ben opgegroeid met vertalen als een van mijn hobby's. Ik was verliefd op het opzoeken van de oorsprong van een term (etymologie). Ik ken veel leuke weetjes, zoals waarom het een lambda-functie wordt genoemd of waarom Shannon het entropie noemde in de informatietheorie. En ik zou je met plezier corrigeren en het verschil uitleggen tussen een higher-order function en een first-class function. Maar maakt dat eigenlijk wel uit?
Waarom ik besloot me niet langer druk te maken over terminologie, komt voort uit drie ervaringen:
De eerste ervaring
Ik las een boek over discrete wiskunde, het beroemde meesterwerk van Susanna. In een sectie schreef ze: "alle termen worden gedefinieerd met behulp van andere termen, maar dit moet ergens beginnen. In de mathematische logica zijn de termen 'zin', 'waar' en 'onwaar' de initiële ongedefinieerde termen". Ik dacht: wat?! Hoe kan dat? Kunnen we ongedefinieerde termen hebben in de WISKUNDE?
Nou, dat hebben we. We hebben overal ongedefinieerde termen en axioma's. We weten niet echt wat "causaliteit" betekent, of zelfs een concept als "tijd", maar we leven ermee. We weten duidelijk dat het bestaat. En hoewel we het nog niet echt kunnen uitleggen of bewijzen, kunnen we er geweldige dingen bovenop bouwen en kunnen we verbazingwekkende wetenschappelijke doorbraken realiseren.
De tweede ervaring
Ik volgde een online cursus over programmeertalen van de University of Washington (UW). Het was een geweldige cursus die me hielp om veel goede termen op te pikken die daadwerkelijk nuttig zijn. Maar op een zeker moment in de cursus, na het uitleggen van enkele concepten uit het functioneel programmeren, zei professor Dan Grossman: "Mensen verwarren vaak higher order functions en first class functions, dus we maken ons daar ook niet druk om".
Dat was een nederige ervaring. Als een man met een PhD in programmeertalen het niet belangrijk vindt, waarom maak ik er dan een strijd van?
Het is overigens vermeldenswaard dat dezelfde Dan Grossman zijn frustratie uitte over het feit dat mensen talen vaak "gecompileerde talen" noemen, terwijl dit eigenlijk een eigenschap is van de implementatie en niet van de taal zelf. Omdat dit in dit geval leidt tot een vertekend begrip van programmeertalen. Dus het is niet altijd zo simpel; het is niet óf "termen doen er niet toe" óf "ik vermoord je als je ze verkeerd gebruikt!".
De derde ervaring
Het derde inzicht zal je misschien verrassen; ik hoorde het van een psychiater die over depressie sprak. Hij zei: we weten niet echt wat depressie is. Sterker nog, het is niet een ziekte zoals andere ziekten die we kennen (zoals diabetes). Daarom noemen we het een stoornis; dat wil zeggen, een set symptomen die we vaak (maar niet altijd) samen zien voorkomen. Dus wij, de gemeenschap van psychiaters, zijn overeengekomen het "depressie" te noemen om met elkaar te kunnen communiceren. Als we op een dag een nieuw geval of een nieuw symptoom ontdekken van wat we "depressie" noemen, voegen we dat gewoon toe aan de lijst en geven we deze nieuwe "variant" misschien een naam (bijv. hoogfunctionerende depressie).
Nou, niets is zo simpel in het echte leven, maar de hoofdgedachte hier is dat we werkelijk niet precies weten wat het is. Maar dat houdt ons niet tegen om het welzijn van mensen na te streven; met ervaring en wetenschappelijk onderzoek kunnen we het zo goed mogelijk behandelen (met of zonder medicatie).
Dat waren de meest nederig makende woorden die ik ooit heb gehoord. En het was een diepe les die nu overduidelijk voelt: termen zijn simpelweg gecreëerd voor begrip. Dat is uiteindelijk wat telt. Dit gaat niet alleen over programmeren; helaas voeren we vaak felle strijden over een concept of een probleem, zonder te beseffen dat ieder van ons er een andere definitie van heeft.
Terminologie kan erg intimiderend zijn voor mensen die net beginnen in het vakgebied. Ik denk dat we moeten benadrukken hoe belangrijk het is om het gewoon rustig aan te doen.