Python en poëzie

Een van de interessantste Nederlanders op dit moment is ongetwijfeld Guido van Rossum, de ontwerper van de programmeertaal Python. Het is niet overdreven om te zeggen dat dit inmiddels wereldwijd de populairste programmeertaal is – een taal die vrijwel iedere programmeur wel een beetje kent. Hij is bovendien iemand die over heel veel onderwerpen goed heeft nagedacht en zijn mening daarover eloquent kan verwoorden, zoals bijvoorbeeld blijkt uit het onderstaandre interview met Lex Fridman. https://www.youtube.com/watch?v=-DVyjdw4t9I&t=5s Dat soort interviews kom je in het Nederlands niet tegen. Ik vraag me af of Van Rossum ooit serieus in de Nederlandse media aan het woord is gekomen. Dat geldt zelfs niet voor podcasts of YouTube-kanalen of andere alternatieve kanalen. Wat zijn we toch ook een armoedige cultuur. Voor 99% procent van de Nederlanders bestaat Van Rossum helemaal niet. (Even een rant. Het is in sommige kringen nog altijd sjiek om af te geven op de verengelsing: in zo’n vreemde taal kun je toch nooit een diepe gedachte uitdrukken? Wat die mensen nooit in de beschouwing betrekken is dat je in het Nederlands maar zelden een diepe gedachte hoort uitdrukken. Wie interessante hedendaagse intellectuele discussies wil horen, moet wel Engels leren. De verarming van het Nederlands komt niet door het Engels, maar door het gebrek aan intellectuele cultuur. Einde rant.) Trager Een van de onderwerpen die Fridman meteen aan de orde stelt is dat leesbaarheid een basisprincipe is van Python. Computerprogramma’s moeten niet alleen door computers worden gelezen, die de instructies moeten uitvoeren, maar ook door mensen. “Zelfs als je een tovenaar hebt die op zijn eigen kamer een heel programma van duizenden regels componeert”, zegt Van Rossum, “dan is die aan het eind van die duizend regels vergeten wat hij aan het begin bedoelde.” Toch is dat belangrijk: computerprogramma’s bevatten noodzakelijkerwijs altijd foutjes en om die op te kunnen sporen en repareren moet een mens een en ander kunnen lezen. Daarnaast kan het natuurlijk altijd gebeuren dat er een uitbreiding moet komen van het bestaande programma, of een verbetering. En tot slot worden échte programma’s niet geschreven door tovenaars maar door teams, die elkaars werk moeten kunnen lezen. Enkele decennia geleden was efficiëntie voor de computer het belangrijkste criterium. Inmiddels zijn computers zo snel en de kosten van programmeurs zo hoog dat computerleesbaarheid er minder toe doet. Als een programmeur er uren over doet om een foutje te vinden, terwijl dat foutje de computer een milliseconde trager doet lopen, is dat geen goede afweging. Visuele intelligentie Intrigerend is nu dat de leesbaarheid vooral zit in het wit op de pagina en in de leestekens. Wanneer je programmeert, krijg je regelmatig te maken met potentiële dubbelzinnigheden. Neem deze instructies voor een feestrobot: als de leeftijd van het baasje groter dan acht is zet een hoedje op blaas op een toeter Moet de robot nu sowieso op die toeter blazen, of alleen als het baasje oud genoeg is? Op de een of andere manier moet je weergeven of de laatste twee instructies bij elkaar horen. Nevenschikkende voegwoorden hebben programmeertalen meestal niet. Veel oudere programmeertalen lossen het op met haakjes. De nog altijd heel populaire taal C (vooral voor gevallen waar efficiëntie wel van belang is) bijvoorbeeld: if (leeftijd > 8) { zet_hoedje_op(); blaas_toeter(); } De {} plaatsen instructies bij elkaar. De punt_komma’s onderscheiden ze van elkaar. De ronde haakjes hebben andere functies. Wanneer elders in het programma leeftijd, zet_hoedje_op() en blaas_toeter() gedefinieerd worden, is dit geldig C. Zoals ook het volgende, dat de robot voortdurend laat toeteren: if (leeftijd > 8) { zet_hoedje_op();} blaas_toeter(); Nu valt de toeterinstructie buiten de haakjes en daarmee buiten het bereik van de if-instructie. In Python ziet de eerste versie er zo uit: en de tweede zo: De haakjes en de punt-komma’s zijn verdwenen, wat er moet worden uitgedrukt wordt uitgedrukt met ruimte op de pagina of het beeldscherm. (Overigens kun je in C ook werken met nieuwe-regels en spaties, maar je moet altijd ook al die haakjes en puntkomma’s toevoegen, en dat is toch net wat minder overzichtelijk) Je kunt met Python als lezer beter vertrouwen op je puur visuele intelligentie: je kunt in één oogopslag zien wat bij elkaar hoort, en je ziet weinig dingen die er voor de interpretatie niet toe doen (het is alleen, zou je kunnen, zeggen, jammer van de haakjes). Wat Fridman en Van Rossum niet bespreken: dat dit de principes zijn waaraan je veel moderne poëzie kunt herkennen: het betekenisvolle wit, het gebrek aan leestekens. (In de voorbeelden die ik hierboven geef staan alleen kleine letters; hoofdletters zijn niet verboden in Python, maar net als in poëzie worden ze vaak vermeden of eigenzinnig gebruikt.) Een andere overeenkomst is dat lyriek en programmacode over het algemeen niet gericht zijn tot de menselijke lezer. Een kenmerk van lyriek is de apostrofe – het aanroepen van een tweede persoon die niet de lezer is, ‘oh, oude eik!’ – terwijl de opdrachten die in een stukje computerprogramma staan, niet moeten worden uitgevoerd door de menselijke lezer. Het zou interessant zijn om te onderzoeken of deze overeenkomsten echt toevallig zijn, of dat ze iets vertellen over de manier waarop de mens het best geconcentreerd kan lezen. Poëzie en computerprogramma’s zijn de twee genres die je heel geconcentreerd moet lezen. waar iedere letter telt. Het ligt voor de hand dat je dan zo min mogelijk afleiding nodig hebt. Tegelijkertijd heb je niet te maken met allerlei historische conventies: Python is geen Engels, net zo min als de taal van e.e. cummings dat is.

Door: Foto: Sagaru9535, CC BY-SA 4.0 , via Wikimedia Commons.

Doneer!

Sargasso is een laagdrempelig platform waarop mensen kunnen publiceren, reageren en discussiëren, vanuit de overtuiging dat bloggers en lezers elkaar aanvullen en versterken. Sargasso heeft een progressieve signatuur, maar is niet dogmatisch. We zijn onbeschaamd intellectueel en kosmopolitisch, maar tegelijkertijd hopeloos genuanceerd. Dat betekent dat we de wereld vanuit een bepaald perspectief bezien, maar openstaan voor andere zienswijzen.

In de rijke historie van Sargasso – een van de oudste blogs van Nederland – vind je onder meer de introductie van het liveblog in Nederland, het munten van de term reaguurder, het op de kaart zetten van datajournalistiek, de strijd voor meer transparantie in het openbaar bestuur (getuige de vele Wob-procedures die Sargasso gevoerd heeft) en de jaarlijkse uitreiking van de Gouden Hockeystick voor de klimaatontkenner van het jaar.

Steun ons!

De redactie van Sargasso bestaat uit een club vrijwilligers. Naast zelf artikelen schrijven struinen we het internet af om interessante artikelen en nieuwswaardige inhoud met lezers te delen. We onderhouden zelf de site en houden als moderator een oogje op de discussies. Je kunt op Sargasso terecht voor artikelen over privacy, klimaat, biodiversiteit, duurzaamheid, politiek, buitenland, religie, economie, wetenschap en het leven van alle dag.

Om Sargasso in stand te houden hebben we wel wat geld nodig. Zodat we de site in de lucht kunnen houden, we af en toe kunnen vergaderen (en borrelen) en om nieuwe dingen te kunnen proberen.