Overslaan en naar de inhoud gaan

Syntax

Sinds ik onderzoek doe naar programmeren voor kinderen, krijg ik heel vaak de vraag van programmeurs over wat eigenlijk de beste programmeertaal is om te leren programmeren. Een veelvoorkomende variatie van deze vraag is de vraag of het beter is om een programmeertaal te gebruiken met veel of juist weinig syntax.
kinderen leren programmeren
© MIT
MIT

Omdat ik die vraag steeds weer heb beantwoord de afgelopen jaren, merk ik dat ik weer anders tegen de vraag ben gaan aankijken. De Japanse schrijver Murakami schrijft dat het leuke van ouder worden is dat je altijd dezelfde persoon blijft, maar jezelf ook nog kunt blijven verrassen. Ik vind dat een heel mooi sentiment en ik herken me er ook steeds meer in naarmate ik ouder word.

Bij deze vraag ben ik over de jaren heen vooral meer en meer over de vraag gaan nadenken, in plaats van over het antwoord. Laten we dus, voor we aan het antwoord op de vraag toekomen, eens kijken wat nu de vraag is.

Wat is een taal met weinig syntax eigenlijk? Even een kleine opfrisser voor diegenen voor wie het lang geleden is: syntax is hoe een taal eruitziet, semantiek is wat het betekent. Dat wij in het Nederlands stam + t schrijven is syntax, dat een boek een ding is met papier en verhalen erin is semantiek.

Met een taal met weinig syntax bedoelen programmeurs meestal talen zoals Lisp. In Lisp typ je ongeveer de abstracte syntax tree. Als je bijvoorbeeld de gebruiker zijn naam wilt vragen en wilt antwoorden met Hallo <naam>, doe je dat zo:

(write-line (print (concatenate (“Hello ” (read)))))

Dat vertaalt zicht naar deze syntaxboom:

 

Syntaxboom
Syntaxboom

Even ter vergelijking, in mijn taal Hedy kan dit zo:

name is ask What is your name
print Hello name

Hoe meer ik er over nadenk, hoe gekker ik het vind dat mensen Lisp “weinig syntax” vinden hebben, en vinden dat Hedy meer syntax heeft (en Python of Java natuurlijk nog meer). Het interessante is dat dit een kwestie is van perspectief. Het is zo dat Lisp weinig syntax heeft, als je ermee bedoelt dat je als maker van een parser van Lisp weinig moeite hoeft te doen om de syntaxboom te verkrijgen. Je hoeft maar de haakjes langs te lopen en je bent er. In Hedy moet je meer moeite doen. Je moet bijvoorbeeld bepalen dat 'name' een variabele is in de tweede regel code en 'Hello' een string.

Maar het 'parsegemak' is sterk het perspectief van de programmeertalenmaker. Er zijn veel meer gebruikers van talen dan makers, en als gebruiker zou je kunnen zeggen dat er in Lisp veel meer 'gekke karakters' zijn die je goed moet typen. Meer syntax dus, en niet minder. Het is grappig om je te realiseren dat heel veel programmeurs Lisp classificeren als “weinig syntax” zonder erbij stil te staan wat ze daar eigenlijk mee bedoelen.

Het maakt weer eens duidelijk dat makers van programmeertalen een fikse stempel drukken op de denkwijze van programmeurs, meer dan ze misschien beseffen.

Magazine AG Connect

Dit artikel is ook gepubliceerd in het magazine van AG Connect (juni-julinummer 2021). Wil je alle artikelen uit dit nummer lezen, klik dan hier voor de inhoudsopgave.

Reacties

Om een reactie achter te laten is een account vereist.

Inloggen Word abonnee

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in