Asset 14

Van 0'en naar 1'en, of: waarom ik me eindelijk programmeur durf te noemen

Van 0-en en 1-en of: waarom ik me eindelijk programmeur durf te noemen

Wanneer iemand mij vraagt wat mijn werk is, antwoord ik: ik doe iets met computers. Ik houd het bewust vaag. Mensen vormen zich toch wel een beeld aan de hand van hun eigen gedachten en het bespaart mij de moeite uit te leggen wat ik er zo bijzonder aan vind, want dat is een heel verhaal en ik weet niet of dat altijd goed overkomt.

De eerste keer dat ik iets met een computer deed, was ik twaalf. Daar wordt nu niet meer van opgekeken, maar meer dan veertig jaar geleden was het de enige computer waarover de scholengemeenschap van vijftienhonderd leerlingen beschikte, bestemd voor de administratie en de jaarlijkse Sisyphus-klus van het opstellen van het rooster voor de hele organisatie. 

In een donker en stoffig kantoortje met gesloten gordijnen naar de gang en een hek voor de ramen naar buiten zat ik hele pauzes achter het apparaat. Het was een TRS-80 III, een metallic grijs gespoten plastic moloch; zelfs de voorlopers van Windows en Windows PC’s bestonden nog niet. Het zagende geluid van de grote 5 1/4-inch floppy [1] waarmee het systeem opstartte, herinner ik me als de dag van gister. De bureaucomputer stond nog in de kinderschoenen, van computeronderwijs was nog geen sprake en dat ik op die computer mocht was voor de wiskundedocent net zo experimenteel als voor mij.

Ik leed nog niet aan imposter syndrome en dook blijmoedig elk digitale konijnenhol in dat zich aandiende

Ik leerde noch tekstverwerken noch spreadsheets te maken. Onderricht in de principes van computersystemen of in die van het programmeren kreeg ik al helemaal niet. Ik was er aan mijn lot overgelaten, zonder begeleiding en met alleen een paar vuistdikke handleidingen van DiskOS en BASIC. Dat er nog geen internet was om dingen op op te zoeken, spreekt voor zich. Wat ik zo vooral leerde was geen angst te hebben, ik leed toen nog niet aan imposter syndrome en dook blijmoedig elk digitale konijnenhol in dat zich aandiende.  ‘Stuk’ kon het niet gaan: wanneer de computer vastliep zette ik hem uit en weer aan en begon ik met een schone lei. [2]

Van de matrix-printer [3] kon ik op zeker moment de puntjes individueel aansturen; heel veel uitzoekwerk en een ellenlange reeks aan opdrachten leverden echter niet meer op dan een zelfontworpen afdrukje ter grootte van een halve pinknagel in de uiterste linker bovenhoek van een printervel. Ik kon het apparaat op verschillende toonhoogtes laten piepen en experimenteerde met lange lijsten van steeds kortere piepjes om de klank te beïnvloeden, maar muziek werd het nooit. Programmeren als activiteit om de computer naar mijn hand te zetten, was - moest ik bekennen - even fascinerend als frustrerend.

Van 0-en en 1-en of: waarom ik me eindelijk programmeur durf te noemen 1

‘Hé Siri. Zet een timer voor vijftien minuten.’ Wanneer ik dit hardop tegen mijn horloge zeg, gaat er een kwartier later een alarm. Dat is totaal onbegrijpelijk en tegelijk volstrekt natuurlijk. De logische relatie tussen de gesproken opdracht en het afgaan van het alarm voelt volstrekt natuurlijk aan, totaal onbegrijpelijk wordt het wanneer ik me een voorstelling probeer te maken van de miljoen maal miljoen keren dat een 0 een 1 wordt of omgekeerd, in onnavolgbare patronen in vele stukken hardware.

In het online essay What is code? [4] van de Amerikaanse schrijver en programmeur Paul Ford beschrijft hij de computer als ‘a clock with benefits’. Miljarden keren per seconde tikt de klok en telkens veranderen 0-en in 1-en of omgekeerd volgens niet veel meer dan een handvol regels; met pen en papier en een uitleg van hooguit vijf minuten zou je alles kunnen wat de computer kan. Je kan het alleen niet miljarden keren per seconde, ‘en dat telt op,’ voegt Paul Ford er aan toe, ‘die pure snelheid maakt het mogelijk om niet één, maar meerdere lagen van zinsbegoocheling toe te passen, kaarttruc op kaarttruc.’ Dus, terwijl hij niet meer doet dan 0-en en 1-en schuiven, líjkt het of mijn horloge mij begrijpt. De lijst aan individuele computerinstructies nodig om die schijn te wekken is, alleen al in dit voorbeeld, zo onvatbaar lang dat alle programmeurs in de wereld tezamen het niet zou lukken deze handmatig binnen een redelijke termijn op te stellen. Laat staan dat ze dat in zo’n goede samenspraak zouden kunnen doen dat het eindproduct ook echt zou werken.

Het echte wonder is niet dat een brok van kunststof, kristal, metaal doet alsof het mij begrijpt, dat is slechts de manifestatie. Het echte wonder is dat alle inspanningen die hier aan ten grondslag liggen zó samenwerken en in elkaar grijpen dat het product oneindig meer wordt dan de zielloze, samenstellende delen.

 Wie informatica studeert, hoort vroeg of laat [5] van Edsger Dijkstra, die in tweede helft van de vorige eeuw hoogleraar informatica in Texas was en, zoals de naam al doet vermoeden, een Nederlander. Hij was meer dan zes decennia geleden een van de grondleggers van de informatica. Hij benaderde het programmeren vanuit de logica, het wiskundig model en volgens het aan hem gewijde Wikipedia-artikel verhief hij het vak ‘van aanmodderen tot wetenschap’. Een beschrijving die steekt omdat het de vinger op mijn onzekerheid legt. Ondanks mijn vroege start stroomde ik pas veel later zijdelings in het programmeren in en ben ik geen geschoold informaticus.

Wat Edsger Dijkstra de ICT heeft gegeven is het besef dat programmeren gestructureerd aangepakt moet worden, en hij heeft organiserende principes geformuleerd waarmee dat mogelijk is. De hele kathedraal van menselijk vernuft die de ICT naast al het andere óók is, rust op fundamenten waar hij aan gewerkt heeft.

Telkens wanneer een computer opstart, speelt die in zekere zin een stuk ICT-geschiedenis na


Een 1 wordt een 0 en die weer een 1 en een ander wordt dat niet, of misschien wat later. Om ook maar iets met computers te kunnen doen, moet het proces waarin die
enorme aantallen 0-en en 1-en steeds maar wijzigen hanteerbaar worden. Dat gaat niet in één keer, maar stapsgewijs, gelaagd. Als eerste wordt die wereld van 0-en en 1-en aan het oog onttrokken: groepjes 0-en en 1-en worden weergegeven als getallen, wijzigingen daarin worden uitgedrukt in woord-labels als ADD, SUB, INC bijvoorbeeld, voor optellen, aftrekken en verhogen met 1. Labels die al iets herkenbaars hebben. Niet voor de computerchips die de opdrachten uitvoeren, natuurlijk, die zal het worst wezen, maar voor ons, mensen, programmeurs; door zo’n lijst met woord-labels te lezen, kunnen we een indruk krijgen wat er gebeurt. Een computerchip bundelt logische lijstjes van dit soort labels in een instructie. Een enorme waslijst aan basishandelingen kan zo al in een kortere lijst instructies uitgedrukt worden.

Ooit zijn er, zoals baron Von Münchhausen zich aan de eigen veters uit het moeras trok [6] , handmatig lijsten van dit soort instructies opgesteld, die in staat zijn om geautomatiseerd lijsten van instructies op te stellen. Deze programma’s worden gevoed met opdrachten uit een algemenere lijst, een programmeertaal. Als een wonderbaarlijke vermenigvuldiging worden enigszins begrijpelijke zinnen in zo’n programmeertaal automatisch omgezet in lijsten en lijsten aan instructies, die op hun beurt weer in waslijsten en waslijsten basale handelingen met enen en nullen omgezet worden. 

Dit is de truc die mogelijk is door de formele basis van programmeren die Dijkstra formuleerde: een combinatie van een formele taal en een programma dat die formele taal geautomatiseerd vertaalt levert een computertalig Lego op, waarin elk nieuwe bouwlaag past op andere bouwlagen en het tegelijk mogelijk maakt er bovenop te bouwen. 

Programmeren betekent: vertrouwen op wat anderen al hebben uitgeschreven

Paul Ford zegt hierover: ’Terwijl je over de schouder van een programmeur meekijkt, zou je kunnen denken dat programmeren complex en saai is, maar het onttrekt juist onvoorstelbaar uitgestrekte, repetitieve saaiheid aan het oog’. Programmeren is niet de dingen uitschrijven die allemaal precies moeten gebeuren, maar juist zo min mogelijk uitschrijven wat precies moet gebeuren. Programmeren betekent: vertrouwen op wat anderen al hebben uitgeschreven. Programmeren is ook: anderen dat vertrouwen geven over jouw programmeerwerk.

Onlangs is er bij ons thuis na bouw- en renovatiewerk een nieuwe ruimte gestuukt. Van al het achterliggende, water en elektriciteit, zowel oud als nieuw als omgelegd, oorspronkelijke buitenmuur, een stuk binnenmuur, houtskeletbouw, gipsplaten, gaten gevuld met mortel, en de ruwe beton van het originele pand, van al deze elementen kortom, netjes, slordig en aangelegd door verschillende mensen op verschillende tijdstippen, maakte de stukadoor een strak en uniform geheel dat de basis vormt voor ons interieur. Voor een deel lijkt het werk van een programmeur daarop: achterliggende concepten, programma’s en andere digitale bouwwerken aan het oog onttrekken en voorzien van een uniforme manier om daar gebruik van te maken.

De ICT is niet alleen een kathedraal van logica, van formele, mathematische principes, maar ook een van mensenwerk


Een andere Nederlander in de informatica met wereldwijde impact is Guido van Rossum. Hij stond aan de wieg van de programmeertaal Python, die is uitgegroeid tot een van de meest gebruikte programmeertalen. Hij werkte voorheen bij Google en nu voor Dropbox, platforms die op basis van zijn programmeertaal zijn ontwikkeld. Een van z’n uitgangspunten is dat je programmeert voor andere mensen, en niet voor de computer. De computer redt zich immers wel, het formele bouwwerk dat er aan ten grondslag ligt zorgt daar wel voor. ‘Programmeertalen zijn hoe programmeurs hun ideeën uitdrukken en overdragen — niet computers, maar andere programmeurs zijn hun publiek.’ Dat uitgangspunt leidt ertoe dat een van de belangrijkste kenmerken van Python de leesbaarheid is, niet zozeer voor de computer, dus, maar voor de mens. Voorbeeld daarvan zijn de nadrukkelijke regels
voor het gebruik van inspringen, regellengte en regelval, en voor het toepassen van witregels, die maken dat de logische structuur van een stuk code in een oogopslag duidelijk is, je kan de programmeur zien denken.

Daarnaast is Python een programmeertaal die de toegang tot heel veel verschillende onderliggende bouwlagen verenigt en uniformeert. Dat maakt het een heel krachtige taal, niet omdat het de pure rekenkracht van een computer ten volle benut [8], maar omdat het de volledige Alexandrijnse bibliotheek van mogelijkheden, ideeën en producten van anderen ontsluit.

De ICT is niet alleen een kathedraal van logica, van formele, mathematische principes, maar ook een van mensenwerk. ‘Programmeertalen,’ volgens Paul Ford, ‘zijn grote, complexe, dynamische uitdrukkingen van menselijke cultuur’. Die cultuur leren kennen en leren gebruiken, je weg er in weten te vinden en er aan bij dragen maken programmeren ook tot een ambacht. Daardoor durf ik na vele jaren iets met computers doen te beweren dat ik een programmeur ben. Ja, het helpt als je het vak studeert en leert waarom en de manieren waarop het programmeren gestructureerd aangepakt wordt, maar het is maar een deel van dat ambacht.

Als zodanig had het in Jan Luykens Afbeelding der Menschelyke Bezigheden kunnen staan. Eén in de reeks gravures: Boekdrukker, Glasblazer, Metzelaar — vanwege de verbouwing bleef ik hier even bij hangen: De Metzelaar verzorgt de Muuren/Om grijze Jaaren te verduren/Hij werd van Slofheid overtuigd/Trekt hij een Zijmuur op die buigt — Boekbinder, Programmeur dus, Bierbrouwer, ook heel erg belangrijk, en — echt waar, het staat erin als ambacht — Koning. 

Een gravure van een gebogen achter een bureau gebogen figuur, we kunnen vaag een vierkant apparaat, piepklein scherm en verduisterde ramen herkennen, met onder de gravure het kwatrijn:

 

De Programmeur temt de Machine

Opdat die den Menschen diene

Van die Menschen de verhaelen

Sal hij in ene digi Tael vertaelen.

 

 

[1] De enige vorm van opslag in die tijd voor bureaucomputers, 360kB op een kwetsbaar en slap magnetisch schijfje van ruim 13 cm in een flexibel plastic omhulsel.

[2] Ik bezat daartoe een eigen tegen overschrijven beveiligde floppy die ik van gedurende maanden opgespaard zakgeld gekocht had.

[3] Plaatje van een in puntjes geprinte letter.

[4]  https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/, een interactief essay met de lengte van een kloeke novelle, dat in 2016 de National Magazine Award won.

[5] Nou ja, geloof me: eerder vroeg.

[6] Ook de Engelse term voor het opstarten van de computer, booten, kort voor bootstrapping, vindt zijn oorsprong in deze Münchhausener mythe. [7]

[7] Telkens wanneer een computer opstart, speelt die in zekere zin een stuk ICT-geschiedenis na: eerst worden er basissets aan instructies geladen die gebruikt kunnen worden om complexere, meer samengestelde instructiesets mee uit te voeren, als laatste de laag aan instructiesets die de menselijke gebruiker in staat stellen een interactie met de computer aan te gaan.

[8] Dat doet het niet.

 

Dit essay kwam tot stand in samenwerking met De Nieuwe Garde. Bij de essays die De Nieuwe Garde voor begeleiding aanneemt, wordt de voor het stuk ideale mentor gezocht. Marten Hoekstra werkte samen met Heleen Oomen, die zijn essay namens Hard//hoofd redigeerde.
Leven in een grijs gebied 1

Mail

Marten Hoekstra is een schrijver die iets doet met computers. Verhalen en essays van hem verschenen eerder in onder andere De Revisor, Sintel en de bundel Straat!

Kazuma Eekman is een Rotterdamse kunstenaar. Hij heeft een passie voor schilderkunst en laat zich daar door inspireren in zijn illustraties. Voornamelijk werkt hij met acrylverf, maar hij is ook vaak te vinden in de zeefdruk werkplaats. Naast de vrije kunsten speelt hij graag video games en is een fanatiek hardloper.

Hard//hoofd is gratis en
heeft geen advertenties

Steun Hard//hoofd

Ontvang persoonlijke brieven
van redacteuren

Inschrijven
test
het laatste
Anders voel ik me zo oud 1

Anders voel ik me zo oud

In dit essay analyseert Loulou Drinkwaard de tegenstrijdige etiquetten die haar zijn geleerd of opgelegd: ‘Tussen u en jou in, zweef ik. De waarden van mijn vader in mijn ene hand en de waarheid van mijn moeder in mijn andere. Mijn oma deelt de kennis van ons moederland en ‘De Nederlander’ bepaalt wat hoort. Ondertussen vond ik een alternatief. Zullen wij elkaar vousvoyeren?’ Lees meer

:De herhaling van de zombie-apocalyps: Op zoek naar een alternatieve dystopie

De herhaling van de zombie-apocalyps: Op zoek naar een alternatieve dystopie

De zombie is een popcultuuricoon. En niet alleen tijdens Halloween! Series als The Walking Dead en The Last of Us volgen de gebaande zombiepaden. Volgens Anne Ballon hebben zombies méér narratief potentieel. In vernieuwende verhalen wordt onderzocht 'hoe wij als halfbewusten de wereld beleven, hoe we opgaan in systemen die we niet hebben gekozen, hoe we verlangen en met verlies omgaan.' Lees meer

Twee dagen

Twee dagen

Rocher Koendjbiharie belicht de verschillende paden die we tijdens de aankomende verkiezingen in kunnen slaan. Kiest Nederland opnieuw voor rechts, en strompelen we verder richting democratisch en moreel verval? Of kiest Nederland toch voor een samenleving waarin we omkijken naar elkaar? 'Alleen fascisten zien antifascisme als een bedreiging.' Lees meer

Vergeten vrouwen 1

Vergeten vrouwen

In dit essay schrijft Anne Louïse van den Dool over vrouwelijke kunstenaars die meer dan ooit in de schijnwerpers staan. Niet alleen hedendaagse makers, maar ook opvallend veel vrouwen die rond 1900 actief waren in de kunstwereld trekken veel aandacht. Met solotentoonstellingen over Suze Robertson, Coba Ritsema en Jo Koster laten musea zien waarom juist deze kunstenaars alsnog een plek in de canon verdienen. Lees meer

Wil de Nederlander opstaan alsjeblieft?

Wil de Nederlander opstaan alsjeblieft?

Wanneer de VVD pleit voor het bijhouden van gegevens over ‘culturele normen en waarden’ van mensen met een migratieachtergrond, over welke normen en waarden hebben ze het hier dan eigenlijk? Rocher Koendjbiharie neemt de eisen onder de loep die de politiek alleen stelt aan mensen die zichtbaar wortels elders ter wereld hebben. ‘Men wil geen vermenging van culturen en geen uitwisseling van gedachten. De echte eis is assimilatie en het afbreken van wortels.’ Lees meer

Roze, wit, blauw

Roze, wit, blauw

Rechtse en nationalistische partijen laten in hun nieuwste verkiezingsprogramma’s zien dat hun ruimte voor de lhbtqia+-gemeenschap altijd voorwaardelijk is geweest. Journalist Rocher Koendjbiharie legt uit: 'Homoseksualiteit en vrouwenrechten zijn binnen rechtse kringen vaak pas relevant wanneer ze in relatie tot migratie besproken worden.' Lees meer

De achterblijvers

De achterblijvers

Fietsend over een jaagpad reflecteert Gert-Jan Meyntjens op zijn rol als echtgenoot en vader, en neemt hij je mee op een zoektocht naar wat het betekent om man te zijn. Zonder bitter te worden. Lees meer

Ik sliep rechts

Ik sliep rechts

Daten met iemand aan de andere kant van het politieke spectrum? Naomi Ronner deed het. In dit essay beschrijft ze haar ervaringen. Lees meer

De kleinste kans

De kleinste kans

Roosje van der Kamp bereidt zich altijd voor op het ergste. Een vreemd plekje op haar huid, opladers in het stopcontact: overal schuilt gevaar. Als ze achter een geheim komt in de familie begrijpt ze beter waar haar angsten vandaan komen. Ze vertelt erover in dit openhartige essay over intergenerationeel trauma. Lees meer

:Zomergast Koch: ‘Het is gewoon leuk om mensen iets op de mouw te spelden’

Zomergast Koch: ‘Het is gewoon leuk om mensen iets op de mouw te spelden’

Het plezier van de leugen en de bevrijding van de agressie: volgens Zomergast Herman Koch verfraait iedereen het leven een beetje met leugens. Lees meer

Hondenvoer 1

It takes an adult to raise a village: Halsema is streng, rechtvaardig, en een tikje autoritair in Zomergasten

De bedachtzame, maar mediagetrainde, Femke Halsema nam ons als Zomergast mee in de bestuurlijke (opvoed)dilemma’s uit haar werk. Als een klassiek ouderfiguur toont ze zich streng en rechtvaardig, maar mist ze óók zelfinzicht op sommige punten. Lees meer

Uğur Ümit Üngör stilt in Zomergasten maar zelden onze honger naar menselijkheid en ‘goeie dingen’

Uğur Ümit Üngör stilt in Zomergasten maar zelden onze honger naar menselijkheid en ‘goeie dingen’

‘Uğur Ümit Üngörs fragmenten zijn broodnodige kost voor een samenleving die consequent doet alsof wijdverbreid extreem (staats)geweld een ver-van-mijn-bedshow is.’ Terwijl Zomergast Üngör zichzelf kundig naar de achtergrond werkt, maakt hij duidelijk dat de zomer vele winters verstopt. Met opgewekte grimmigheid vraagt hij ons om ons zorgen te maken over het leed van anderen. Lees meer

Zomergasten met Eva Crutzen roept de vraag op of een mooi gesprek genoeg is of dat kijkers toch snakken naar goede televisie.

Zomergast Eva Crutzen zorgde voor een mooi gesprek, maar is dat genoeg?

Na de ideale televisieavond van Eva Crutzen vraagt Hanna Karalic zich af of een mooi gesprek genoeg is voor Zomergasten of dat kijkers toch snakken naar goede televisie. Lees meer

Mijn tweede kutland… 2

Mijn tweede kutland…

Toen Iskra de Vries vanuit Polen naar Nederland verhuisde, bleek dat zij niet van een koude kermis thuiskwam, maar naar een koude kermis vertrokken was. Iskra schrijft een verschroeiend eerlijke break-up brief aan het adres van ons kikkerlandje. Lees meer

Schroot voor de kunstkenner 1

Schroot voor de kunstkenner

Wat doet een beschilderd stuk schroot in het Stedelijk? Waarom ruikt het er opeens chemisch en zoet tegelijk? Het is het werk van Selma Selman, die opnieuw definieert wat kunst is en mag zijn. Ivana Kalaš is onder de indruk – en heroverweegt haar eigen positie. Zoetig en naar ijzer – dat aroma komt op... Lees meer

Zomers zwijgen

Volim nas: hoe de taal van de liefde mijn lichaam tot stilte maande

Wat als je vertrouwen in jezelf en je lichaam plotsklaps wordt aangetast door epileptische aanvallen? En tegelijkertijd je vertrouwen in de onvoorwaardelijke liefde van je oma ook op losse schroeven komt te staan? In een persoonlijk essay neemt Dorea Laan je in beeldende taal mee in deze zoektocht. Lees meer

:Meer dan Maria: het moederschap in de beeldende kunst 3

Meer dan Maria: het moederschap in de beeldende kunst

Wat betekent het om moeder te zijn? En wanneer ben je dan een ‘goede moeder’? Moederschap, en alle nuances daarrond, blijft onderbelicht. Anne Louïse van den Dool onderzoekt via de representatie van moeders in de beeldende kunst de vele kanten die horen bij moeder zijn. Lees meer

Als je écht kinderen wilt redden

Als je écht kinderen wilt redden

Shashitu Rahima Tarirga kwam 33 jaar geleden via interlandelijke adoptie naar Nederland vanuit Ethiopië. Na een reis naar Ethiopië maakt ze nu een afweging tussen haar leven hier en het gemiste leven daar. 'Weegt een westers paspoort op tegen het moeten omgaan met de trauma’s van scheiding en achterlating? Weegt een leven hier op tegen onbekendheid met je leven daar?' Lees meer

nuclear family

Queerkroost

In een briefwisseling over queer ouderschap zoeken Eke Krijnen en Lisanne Brouwer naar steun, herkenning en een houding om de maatschappelijke discriminatie buiten het gezinsleven te houden. Lees meer

Informatiehonger

Informatiehonger

We verslikken ons in data, maar blijven gulzig drinken. In dit essay onderzoekt Paola Verhaert hoe onze honger naar informatie — ooit gevoed door boeken, nu door eindeloze datastromen — ons hoofd én onze wereld begint te verzwelgen. Waar ligt de grens? En merken we het als we die overschrijden? Lees meer

Bestel de bundel ‘Ik wil, wil jij ook!’

Op zoek naar een intiem, verzachtend en verzettend cadeau? Voor maar €10 bestel je de bundel ‘Ik wil, wil jij ook?’, een voorstel voor een nieuwe taal om over seksualiteit te spreken. Met ploeterende brieven en prikkelende beelden. Alleen te bestellen vóór het einde van dit jaar en zolang de voorraad strekt!

Bestel nu