Eigenlijk is programmeren net schrijven

In de titel heeft ‘net’ twee betekenissen: ‘net’ van netjes, want programmeren moet je op een nettere manier doen dan schrijven, en ‘net’ van bijna, want het lijkt er héél erg op, maar er zijn toch nog verschillen.

Programmeren doe je ook in een taal, namelijk een programmeertaal. Net zoals je héél veel gewone talen hebt, heb je ook héél veel programmeertalen. Net zoals met gewone talen blijf je vaak hangen bij de taal die je als eerste hebt geleerd. Al is dat met programmeren wel minder, doordat echte talen hele ingewikkelde grammatica’s hebben en héél veel uitzonderingen. Programmeertalen zijn veel simpeler.

Die simpelheid heeft twee redenen: ten eerste zijn gewone talen geëvolueerd over de jaren heen, waardoor het zo ingewikkeld is geworden. Programmeertalen bestaan nog helemaal niet zo lang. Ten tweede is een simpele taal veel beter voor een computer. Mensen zijn goed in talen begrijpen, sowieso in iets begrijpen, computers hebben daar meer moeite mee. Computers zijn goed in wiskunde, in structuren, in héél veel in korte tijd doen. Programmeertalen zijn dus meer gestructureerd, hebben wiskundige elementen erin en het is makkelijk om aan te geven dat je héél veel moet doen. Zoals: tel van 1 tot 1 miljoen terwijl je bij elk getal het hele alfabet afgaat.

Programmeertalen hebben grammatica’s, net zoals gewone talen. Alleen zijn de grammatica’s van programmeertalen er specifiek op gericht om goed te werken op computers, daar zit de gestructureerdheid in. In gewone talen kan je één zin op een heleboel verschillende manieren representeren. In programmeertalen ligt het redelijk vast op welke manier je één zin kan representeren. Je kan wel op een heleboel verschillende manieren die ene zin vertellen, maar dat kan in gewone taal ook.

Zoals je in gewone talen verschillende soorten schriften hebt (Latijnse alfabet, Arabische alfabet en Chinese tekens), zo heb je in programmeertalen verschillende soorten talen. Een deel is imperatief: een reeks van zinnen die direct uitgevoerd dienen te worden. Een deel is functioneel: de uitvoering is op wiskundige formules gebaseerd. Een deel is declaratief: daarin beschrijf je de vorm, zoals HTML. Een deel is op logica gebaseerd: “als dit geldt, dan doen we dat”.

Er zijn een heleboel verschillende goedheden in programmeren. Sommige zijn er goed in, andere zijn er minder goed in. In gewone talen heb je vooral last van ‘goede’ mensen doordat het grammer nazi’s zijn. In programmeertalen heb je vooral last van ‘slechte’ mensen, doordat ze foute programma’s opleveren. Wij mensen kunnen namelijk de fouten van minder goede mensen begrijpen in gewone talen, terwijl computers dan moeilijk gaan doen.

In een programmeertaal zit een ingebouwd mechanisme om commentaar erin te verwerken. In een gewone taal is dat meer een gevoelskwestie: sommige mensen doen het tussen haakjes, andere ‘ik vind’, andere met blokhaken, enzovoort.

Programmeertalen zijn gemaakt om dingen bij te houden. In een gewone taal moet je het onthouden en gebruiken zodra je in dezelfde context komt, bijvoorbeeld als er ‘hij’, ‘zij’ of een naam van een persoon wordt gebruikt. In programmeertalen noem je dat variabelen: je geeft aan elk ding dat je wil onthouden een eigen verzonnen naam mee. Wiskunde gebruikt a, b, c, d, e, f, g, …, x, y, z, in programmeertalen gebruik je meestal zinnige namen (‘banksaldo’, ‘inhoudReactie’, ‘datumOngeluk’, …), zodat anderen snel begrijpen waarover het gaat. Wiskunde is daar te theoretisch voor.

Het allergrootste verschil tussen programmeertalen en gewone talen is dat programmeertalen eigenlijk niet bedoelt zijn om op volgorde uit te voeren. Stel op regel 14 staat dat je verder moet gaan naar regel 546, dan kan er op regel 546 staan dat je terug moet gaan naar regel 8. Díe sprongen kenmerken programmeertalen het meeste. Door al die sprongen is het ook (bijna) onmogelijk om een programma te testen op correctheid. In een gewone taal is dat véél makkelijker, doordat alles op volgorde staat.

Dit bericht is geplaatst in de categorie Beta. Bookmark de permalink.

1 Reactie op Eigenlijk is programmeren net schrijven

Geef een reactie

Jouw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *