Recensie

Alles wat je altijd over computers wilde weten (maar nooit durfde te vragen)

Voor iedereen die niet zelf sleutelt aan computers maar toch alles wil weten van de digitale wereld, is er nu een fijn boek. Daarin duikt Brian Kernighan diep in de ‘computerijsberg’ onder de smartphones, IP-adressen en cookies.

De humanoïde robot Pepper, die vorig jaar in Tokio was te zien, kan (straks) worden gebruikt in de zorg, het onderwijs en de detailhandel. Christopher Jue

‘Computers in onze wereld’, zo heet het vak dat Brian Kernighan al bijna twintig jaar geeft aan de Princeton-universiteit. Een wat vage naam voor een studievak geeft hij toe: hij moest het ooit binnen vijf minuten bedenken, daarna werd het lastig om nog te veranderen. In zijn collegezaal zitten geen bètastudenten, maar juist (kunst-)historici, muzikanten, of studenten economie. Voor hen is ook zijn zojuist verschenen boek Understanding the digital world; voor iedereen die niet zelf al voor de lol een computer demonteert en weer in elkaar schroeft.

Je moet onze digitale wereld snappen om je te kunnen wapenen tegen bijvoorbeeld een computercrimineel, vindt Kernighan namelijk. Technologie zet ons dagelijks leven, privacy en economie op zijn kop. Niet alleen onze laptops zijn computers. Computers zitten ook in smartphones, auto’s, vliegtuigen en in systemen die zorgen dat ons geld naar de juiste bankrekening wordt afgeschreven. De „computerijsberg” noemt Kernighan dit en gaat diep in op de onderliggende mechanismen. Wat is een glasvezelkabel precies? Hoe werken cookies? Hij legt dit begrijpelijk en heel volledig uit.

Hij ontleedt eerst hardware, apparaten die we kunnen aanraken. Dan software, dat vertelt de computer wat het moet doen. Tot slot communicatie: hoe computers met elkaar praten zodat wij met elkaar kunnen praten.

Dat laatste gaat via internet, een soort samenraapsel van vele miljoenen netwerken. Kernighan legt uit hoe die precies met elkaar verbonden zijn. Ook het web had een adresboek nodig zoals een telefoonboek: het zogeheten Domein namen systeem (DNS). Dat koppelt numerieke adressen (IP-adressen) aan sites of apparaten, zodat bijvoorbeeld e-mail de weg kan vinden.

Algoritmen omschrijft Kernighan als een manier om ondubbelzinnig te vertellen wat een computer moet doen, als een stappenplan. Een beetje vergelijkbaar met een kookrecept, maar ook weer niet. Recepten zijn namelijk nog veel te vaag. Wanneer is het vlees precies gaar? Moet er wel of niet worden geroerd?

Waar het algoritme de blauwdruk is, vormt programmeercode het daadwerkelijke gebouw.

Algoritmen zijn abstracte en geïdealiseerde beschrijvingen van wat de computer moet doen. Waar het algoritme de blauwdruk is, vormt programmeercode het daadwerkelijke gebouw. Daarin staat namelijk elke precieze stap beschreven die de computer moet zetten, bijvoorbeeld in een bepaalde spelletjesapp.

De code moet praktische problemen oplossen, zoals niet genoeg geheugen, beperkte snelheid van de processor of een slechte internetverbinding. In tien- of soms zelfs honderdduizenden regels code zijn altijd wel bugs (weeffouten) te vinden. Die bieden vaak een ingang voor computercriminelen en ‘achterdeurtjes’ worden zelfs verhandeld op de zwarte markt.

Kernighan leert zijn lezers en passant de basis van JavaScript. Dat is een nog volop gebruikte programmeertaal uit 1995, gemaakt door het bedrijf achter de vroeger populaire browser Netscape. De auteur gaat nog veel dieper op de materie in: de werking van lineaire algoritmes, hoe zoekalgoritmes omgaan met het immense web, en zelfs de vroegste manieren van programmeren in binaire getallen. We lezen over de geschiedenis van programmeertalen door de twintigste eeuw heen.

Helaas komt er te weinig van zijn voornemen om uit te leggen hoe computers onze levens beïnvloeden. Dat komt doordat hij steeds verzandt in de techniek. De internetplatforms Uber (taxi-diensten) en Airbnb (overnachtingen) worden in de inleiding gebruikt om te illustreren hoezeer het leven van de auteur verweven is met technologie, maar de diensten komen nergens meer terug in het boek. Internetgebruikers brengen dagelijks gemiddeld twee uur door op sociale netwerken zoals Facebook en Instagram, in Understanding the digital world is het subhoofdstuk ‘Social networks’ al na twee pagina’s weer voorbij.