Wat was ik trots op mijn eerste digitale rekenmachine, een Casio FX-80. Ergens moet ik hem nog hebben liggen.
Goedkoop waren ze niet. 160 gulden of daaromtrent, zit in mijn hoofd. Dat was toen een hele smak geld, voor een apparaat dat je tegenwoordig standaard op je telefoon of computer meegeleverd krijgt als virtuele calculator.
Met dat ding bleek iets mis te zijn: de berekening van de sinus bevatte een fout. Het kan ook de logaritme geweest zijn, of een andere ingewikkelde functie. Hoe dan ook, je kon de rekenmachine inruilen voor een nieuw, verbeterd exemplaar.
Een paar jaar later zou ik leren dat dergelijke berekeningen aan de hand gaan van voorgeprogrammeerde tabellen, en in dit geval zat er dus een fout in zo’n tabel.
Aan het begin van de 19ᵉ eeuw ergerde een zekere Charles Babbage zich aan de fouten in tabellenboeken. Dergelijke naslagwerken had je nodig om soort-van-snel ingewikkelde berekeningen te doen van zoiets als een sinus of een logaritme.
Omdat er in die tijd nog geen rekenmachines bestonden die meer konden dan optellen en aftrekken, werden dergelijke berekeningen met de hand uitgevoerd door mensen die calculator werden genoemd, Latijn voor rekenaar. De resultaten werden in lange tabellen in boeken gepubliceerd. Daar kon nogal wat mis bij gaan. De drukker die van de tabellen zetsel moest maken kon een fout maken bij het overnemen van de getallen. Of erger: de calculator kon een fout maken in een berekening, en als dat aan het begin van een tabel gebeurde en de rest van de berekeningen was ervan afhankelijk, dan was de ellende niet te overzien.
Babbage[1] was een wiskundige, maar hij had ook connecties met de handel, waar dergelijke tabellen bijvoorbeeld werden gebruikt om samengestelde rentes snel te kunnen berekenen. En hij was bekend met het Jacquardgetouw, een industrieel weefgetouw waarmee ingewikkelde patronen automatisch geweven konden worden met behulp van een soort ponskaarten.
Kon je die techniek niet op de een of andere manier gebruiken om wiskundige berekeningen te ‘weven’. Dat was minder eenvoudig dan het weven van een stof, maar in essentie moest het kunnen. En dus bedacht hij dat wiskundige weefgetouw, de difference engine, de stamvader van de moderne computer.
Daarmee was Babbage nog niet klaar. Hij bedacht ook een opvolger, de analytical engine, waarmee ook allerlei dingen mogelijk waren die je in elke hedendaagse computer vindt, zoals het opslaan en hergebruiken van resultaten. En omdat hij toch lekker bezig was bedacht hij ook nog een mechanisme waarmee de resultaten uit zijn machines kant en klaar werden opgeleverd in een soort zetsel, waardoor er ook bij de drukker niets meer mis kon gaan. Computer en printer ineen.
Hij bedacht ze. En hij bouwde kleine stukken ervan — Babbage was ook nog ingenieur, had ik dat al verteld? Maar een complete laat staan werkende engine kwam er nooit. Lang werd aangenomen dat het met de technologie van zijn tijd niet mogelijk was geweest om een volledige machine te maken, hoewel de correcte werking ervan inmiddels wel buiten kijf stond. Totdat een team van wetenschapshistorici en ingenieurs in 1991 voor het Londonse Science Museum een werkende machine bouwde met technieken die Babbage in zijn tijd zeker wél kende.[2]
De grondlegger van de computer heeft zijn werk nooit in de praktijk kunnen zien. In zekere zin was hij dus ook de grondlegger van de virtuele machine.
Maar hij was niet de grondlegger van het programmeren van computers. Die eer gaat naar een adellijke dame, met wie Babbage bevriend was.
Zij werd in 1815 geboren als Augusta Ada Byron, het enig wettig kind van de roemruchte dichter Lord Byron. De wereld kent haar vooral als Ada Lovelace — als de wereld haar al kent.[3] Ada was een intelligente dame, en toen zij als adolescent een interesse ontwikkelde in wiskunde, besloot haar moeder dat alles beter was dan de poëtische waanzin van wijlen haar ex-echtgenoot en regelde zij dat de jongedame privé-onderwijs in de wiskunde kreeg (de universiteit zat er nog niet in voor vrouwen).
Via die studie kwam Ada in contact met gelijke geesten, waaronder dus die ene Charles Babbage. Zij zag de mogelijkheden van zijn wiskundige machines en ontwierp er de eerste programma’s voor, waarmee zij de grondlegster werd van het programmeren.
Net als Babbage heeft zij de vruchten van haar intellectuele arbeid nooit kunnen plukken. Ze was niet alleen de pionier van het programmeren, maar tegelijk ook van het virtueel programmeren.
Wel is er in 1980 een computertaal naar haar vernoemd: ADA. De wrange ironie wil dat dat een computertaal is die aanvankelijk werd ontwikkeld door en voor het Amerikaanse Ministerie van Defensie. Een ministerie dat tegenwoordig het nieuws haalt door agressief gedrag in het buitenland, maar in het voorgaande jaar vooral door het verwijderen van alle verwijzingen naar alles wat niet blank-mannelijk is. Gelukkig wordt het voortbestaan van deze ADA niet meer bepaald door dom ‘patriottisme’, maar nu zou die naamgeving er waarschijnlijk niet meer door zijn gekomen.
Charles Babbage en Ada Lovelace verdienen allebei eer voor hun visionaire werk. En Ada misschien wel meer dan Charles: zij had niet alleen te kampen met een slechte gezondheid maar ook met een maatschappij waarin vrouwen nog per definitie minderwaardig waren, ook intellectueel. Dat ze in betere kringen verkeerde (ze droeg de titel gravin) en met een wiskundige trouwde zal enigszins hebben geholpen maar het moet zeker niet gemakkelijk zijn geweest om te bereiken wat ze bereikte. Ze maakte bovendien een virtuele dubbelslag: ze bedacht virtuele programma’s voor een machine die niet werkelijk bestond.
Als ik het aanbod kreeg om een uurtje met de geest van één van beiden te kunnen praten, dan zou ik zonder aarzelen kiezen voor Ada. Een contact met een virtuele computervrouw waarvoor niemand zich hoeft te schamen.