Nederlandse code ziet er niet uit!

Bij de start van de ontwikkeling van de Taken-module voor Clientbox hebben we besloten om Nederlandse code te schrijven. En nee, ik heb het dan niet over `publieke functie naam(): tekenreeks { geef terug $dit->naam; }` maar over de code om het domein 1 op 1 te laten reflecteren – dus ook in taal. Dat is nogal een controversiële keuze, omdat het als programmeur heel onnatuurlijk of zelfs onjuist voelt om Nederlandse termen en begrippen op te nemen in je code.

De programmeertaal is Engels, de frameworks en libraries die je gebruikt zijn allemaal Engels dus je eigen code is ook altijd Engels. Dat is nou eenmaal zo. “Als je dat gaat mengen met een andere taal ziet het er niet uit!”, is een mening die ik veel hoor maar verder niet onderbouwd kan worden.

Internationaal gaan

Toen we gingen kijken naar objectieve argumenten om het in het Engels te schrijven, konden wij er eigenlijk maar één bedenken: “Wat nou als we internationaal willen gaan?” Als je het in het Nederlands doet kunnen er alleen Nederlandstalige programmeurs aan werken.

Maar onze spreektaal is Nederlands. Onze applicatie is hoofdzakelijk gericht op de Nederlandse markt. En buitenlandse programmeurs aannemen is voor ons ook niet praktisch. Tenzij ze in de buurt wonen, in welk geval ze de taal toch zullen moeten -leren- spreken.

Dus onszelf in rare bochten wringen over een mogelijk probleem in de verre toekomst is dan niet erg logisch. En bovendien zullen we tegen die tijd wel grotere en belangrijkere problemen hebben.

Rare vertalingen

Daarnaast hoef je geen rare, ongemakkelijke vertalingen te maken. Sommige Nederlandse begrippen vertalen nou eenmaal niet zo soepel naar het Engels. Gebruiker of factuur vertaal je wel makkelijk, maar bijvoorbeeld een incasso is een stuk lastiger. Er is daarvoor niet één Engelse term die bij iedereen hetzelfde betekent. Tuurlijk kan je een vertaling pakken met dezelfde definitie, maar het kan nog steeds een ander gevoel opwekken dan dat de term officieel betekent.

Een voorbeeld daarvan is het verschil tussen Templates en Lijsten op een abonnement. De templates zijn herbruikbaar, de lijsten gebruik je alleen voor dat specifieke abonnement, oftewel die zijn voor eenmalig gebruik. Maar ‘template voor eenmalig gebruik’ bekt niet echt lekker, dus probeer je daar een term voor te bedenken. Ik had daarvoor ‘wegwerptemplate’ bedacht. Voor mij was dat erg duidelijk, maar collega’s hadden een heel ander gevoel bij dat woord. Dan moet je uitleggen en relativeren -in dit geval (ironisch genoeg) met de Engelse term ‘single-use’- waarom dat een logische term is, maar dan ben je eigenlijk al verkeerd bezig.

Spreektaal in code

Daarom is het dus belangrijk om de woorden te gebruiken die ook daadwerkelijk worden gehanteerd binnen het bedrijf. Want als iedereen een ander gevoel heeft bij hetzelfde woord, dan praat je snel langs elkaar heen. En om die woorden dan ook eerst nog te moeten vertalen vraagt wel erg veel onnodige mentale gymnastiek. Dan moet je je echt afvragen wat voor voordelen dat biedt.

TaakRepository

Wij hebben er dus voor gekozen om het domein Nederlands te houden. En ja, in het begin was dat best gek omdat je combinaties krijgt als ‘TaakRepository’. Maar dat went snel en je krijgt een hele duidelijke scheiding tussen wat belangrijk is (het domein) en wat minder belangrijk is (de techniek). Maar het grootste voordeel is dat het duidelijk is waar we het over hebben in de code en de gesproken taal direct terug te zien is in die code.

Silvan Wakker
Technologie