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.

Lezen: Mohammed, door Marcel Hulspas

Wie was Mohammed? Wat dreef hem? In deze vlot geschreven biografie beschrijft Marcel Hulspas de carrière van de de Profeet Mohammed. Hoe hij uitgroeide van een eenvoudige lokale ‘waarschuwer’ die de Mekkanen opriep om terug te keren tot het ware geloof, tot een man die zichzelf beschouwde als de nieuwste door God gezonden profeet, vergelijkbaar met Mozes, Jesaja en Jezus.

Mohammed moest Mekka verlaten maar slaagde erin een machtige stammencoalitie bijeen te brengen die, geïnspireerd door het geloof in de ene God (en zijn Profeet) westelijk Arabië veroverde. En na zijn dood stroomden de Arabische legers oost- en noordwaarts, en schiepen een nieuw wereldrijk.

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.

Lezen: Het wereldrijk van het Tweestromenland, door Daan Nijssen

In Het wereldrijk van het Tweestromenland beschrijft Daan Nijssen, die op Sargasso de reeks ‘Verloren Oudheid‘ verzorgde, de geschiedenis van Mesopotamië. Rond 670 v.Chr. hadden de Assyriërs een groot deel van wat we nu het Midden-Oosten noemen verenigd in een wereldrijk, met Mesopotamië als kernland. In 612 v.Chr. brachten de Babyloniërs en de Meden deze grootmacht ten val en kwam onder illustere koningen als Nebukadnessar en Nabonidus het Babylonische Rijk tot bloei.