Een kruising tussen een ‘gentleman’ en een ‘renaissance man’. Wim Ebbinkhuijsen is geen van beiden helemaal, maar komt er erg dicht bij. Dat schrijft Barry Tauber, lid van de Ansi (American National Standards Institute) als ik hem vraag iets over de scheidend Cobol-goeroe op papier te zetten.
In zijn huis in Schoorl laat ik Ebbinkhuijsen lezen wat Tauber over hem zegt. “Dat ontroert me”, zegt hij nadenkend. Er zijn meer dingen die hem ontroerd hebben de afgelopen paar maanden. Na bijna 43 jaar neemt Ebbinkhuijsen afscheid van de Cobol-wereld. Op 22 oktober organiseerde zijn uitgever een afscheidsdag voor hem op de Vrije Universiteit in Amsterdam. Daar kreeg hij een IEEE Award en werd hij door de burgemeester van zijn woonplaats onderscheiden als ridder in de Orde van Oranje-Nassau. “Ik heb vreselijk staan janken”, glimlacht Ebbinkhuijsen. “De IEEE Award wordt zelden aan niet-Amerikanen uitgereikt. En ik was nog niet eens van die verrassing bekomen of ik werd geridderd. Ik hoorde later dat mijn zoon Martin anderhalf jaar bezig is geweest om dat voor elkaar te krijgen. Het heeft weken geduurd voordat dit allemaal bezonken was. Hierdoor heb ik me wel gerealiseerd wat het effect was van mijn activiteiten de afgelopen 43 jaar. Het klinkt naïef, maar ik heb me dat nooit zo beseft, totdat ik die onderscheidingen in mijn handen hield.”
Grace Hopper
In maart 1962 kwam Ebbinkhuijsen voor het eerst in aanraking met de programmeertaal Cobol. “Mijn schoonvader zag een advertentie voor een programmeur bij de Staatsmijnen. Ik wist toen niet eens wat een programmeur was! Ik heb gesolliciteerd en werd aangenomen om te programmeren voor de nieuwe Univac III. De computer kwam pas een aantal maanden later, dus ik heb mee eerst bezig gehouden met ponskaartapparatuur. Om te leren programmeren voor de Univac werd ik met drie collega’s op cursus gestuurd. Later bleek dit de eerste Cobol-cursus in Europa te zijn. Twee Amerikanen gaven de cursus, een van hen was Grace Hopper”, lacht Ebbinkhuijsen. “Ik had toen geen idee wie zij was, maar achteraf bezien is het toch wel bijzonder dat ik Cobol van haar heb geleerd.” (Grace Hopper is de grondlegster van Cobol – red.)
In 1966 kwam Ebbinkhuijsen in dienst van Philips, waar hij werkte aan de eerste computer van het elektronicabedrijf. “Die computer droeg de naam P1000. Daar zit wel een grappig verhaal achter. 1000 is namelijk de binaire schrijfwijze voor het getal acht. Philips had enige tijd daarvoor het bedrijf Elektrologica overgenomen en dat bedrijfje was bezig geweest met de ontwikkeling van een computer, maar die had nooit de markt gehaald. Die machine droeg de naam X8, vraag me niet waarom. Als hommage aan Elektrologica heeft Philips dus de acht overgenomen in de naam van hun eerste machine. Philips had wel meer leuke eigenaardigheden. Zo werd niet de komst van de duizendste werknemer gevierd, maar die van de 1024ste. Daar snapte de buitenwereld niets van”, grijnst Ebbinkhuijsen.
Cobol-bijbel
Voor het accountantskantoor Frese, Hogeweg, Meijer en Hörchner adviseerde Ebbinkhuijsen in 1969 en 1970 klanten over besturingssystemen en compilers. Vervolgens raakte hij betrokken bij de oprichting van het Novi, het eerste professionele it-opleidingsinstituut in Nederland. “Daar begon mijn Cobol-invloed te ontstaan, eigenlijk om twee redenen”, zegt Ebbinkhuijsen. “Toen ik samen met de baas van het accountantskantoor het Novi begon, hadden we twee lege handjes. We hadden geen docenten, geen klaslokalen, geen lesmateriaal, helemaal niks. Binnen een jaar startten we, dat was beulen tot en met. Eén van de dingen waar we tegenaan liepen was lesmateriaal. Op Cobol-gebied waren er alleen maar wat handleidingen van leveranciers, er was geen goed boek. Dus mijn baas zei tegen mij: ‘Wil jij een Cobol-leerboek schrijven? Je krijgt een half jaar de tijd, je hoeft een half jaar niet te werken, je moet alleen maar een boek schrijven.’ Dat is gelukt, in een half jaar had ik mijn eerste Cobol-boek klaar, iets van 380 bladzijden of zo.” Bij de ontwikkeling van de taal ging de ontwikkeling van de Cobol-boeken mee, in 2002 kwam het voorlaatste Cobol-boek van zijn hand uit, een twaalfhonderd pagina’s tellende ‘bijbel’. In 2008, bij het verschijnen van de volgende Cobol-standaard, wil Ebbinkhuijsen het boek samen met een coauteur schrijven, zodat de coauteur het vervolgens kan overnemen. “Toen het eerste exemplaar van mijn Cobol 2002-boek werd gepresenteerd, heb ik een boekenbal georganiseerd voor familie, vrienden, de drukker, de zetter, enzovoorts. Het boek is ingebonden, twee delen in een box. Dat vond ik zo bijzonder, dat is iets voor de Van Dale, ongelofelijk wat een eer! Tijdens die presentatie heb ik iedereen gevraagd er iets in te schrijven, dus je ziet overal aantekeningen.” Ebbinkhuijsen pakt zijn eerste exemplaar en laat me bladerend de aantekeningen zien. “Toen ik dit uitgereikt kreeg, stond ik te janken als een klein kind, ik vond het zo waanzinnig, echt!”
Fout
De boeken van Ebbinkhuijsen worden niet voor niets de Cobol-bijbel genoemd. Ze staan erom bekend grondig en correct te zijn. Daarvoor zijn twee redenen; de boeken zijn in het Nederlands geschreven hij heeft zich altijd strikt aan de standaard gehouden. “Ik heb me nooit uitgelaten over bepaalde compilers. Het grappige is nu dat als er een verschil is tussen een compiler en mijn boek, klanten altijd naar de leverancier van de compiler gaan om hem om de fout te wijzen. Ze komen nooit naar mij.” Barry Tauber onderschrijft dit. De reden waarom zijn boeken alom geaccepteerd worden, is dat wat hij opschrijft, grondig doordacht is, schrijft Tauber. Als voorbeeld haalt hij de ‘move’-tabel aan. “Er is een statement in Cobol dat data in het geheugen verplaatst, het ‘move’-statement. Er is een lange set regels over welke data verplaatst kan worden, hoe het verplaatst kan worden, et cetera. Al deze regels zijn verzameld in een grote tabel in de Cobol-standaard. Deze regels zijn er al sinds 1960. Toen de standaard werd gepubliceerd in 1968 en wederom in 1974 was de tabel steeds aanwezig. In de herziene standaard van 1985 stond de tabel ook. En in de meest recente versie (2002) staat hij ook, alleen dit is de j�iste tabel. Wim heeft de tabel bekeken en ontdekte een fout die er al die tijd al in heeft gestaan. Dat typeert hem, hij is niet bang om iets grondig te bekijken en te vragen of dingen kloppen, ook al wordt het al eeuwig voor waar aangenomen”, aldus Tauber.
“Dat klopt inderdaad”, lacht Ebbinkhuijsen. “Het Amerikaanse standaardisatiecomité reageerde geschokt toen ik de fout ontdekte. Vooral de oudgedienden, die baalden dat zij dat zelf nooit hadden gezien. Ik was bezig met een nieuwe versie van mijn boek en zag dat die move-tabel was uitgebreid, dus ik ben er nog eens helemaal doorheen gegaan. Toen kwam ik de fout tegen en ik geloofde het zelf eerst ook niet! Ik vond het bijna gênant om het te melden.”
Cobol Experts Group
Naast zijn boeken is er nog een reden waardoor zijn invloed in de Cobol-wereld begon te ontstaan. “Toen werkte ik nog bij Philips. De Nederlandse Cobol-commissie was net opgericht door Max Euwe. Een collega van mij zat namens Philips in die commissie en toen hij wegging, vroeg hij me of ik het wilde overnemen. Dat heb ik gedaan, daar ben ik tot vorig jaar lid en heel lang voorzitter van geweest. De Nederlandse commissie is de grootste ter wereld. Die commissie werd door het NNI (Nederlands Normalisatie Instituut) gevraagd om ook op te treden als werkgroep voor de programmeertalencommissie. Dat was een commissie die zich bezighield met de standaardisatie van programmeertalen. Zij hadden behoefte aan een groep mensen die het werk rondom de Cobol-standaard wilden volgen en van commentaar wilden voorzien. Dat werd dus de Nederlandse Cobol-commissie. We hadden toen twee petten op, we waren gebruikersgroep en standaardisatiecommissie. Ik werd voorzitter van die commissie, werd daardoor automatisch lid van de programmeertalencommissie en ik ontdekte toen dat die commissie op zijn beurt weer lid was van de ISO ‘Programming Language Committee’. Deze internationale commissie had al jaren niet meer vergaderd, dus heb ik voorgesteld om weer een vergadering te houden met Nederland als gastheer. Maar er was nóg een reden waarom ik dat wilde doen. We merkten dat, met name op Cobol-gebied, Amerika de dienst uitmaakte. De Amerikanen waren bezig met een Cobol-standaard en als die klaar was, werd die in Amerika officieel verklaard en dan zeiden de VS tegen de rest van de wereld: we hebben een idee, wat vinden jullie daarvan? Tja, wat wij ervan vonden was dan al niet belangrijk meer. Het was namelijk al klaar en de grootste leveranciers kwamen uit Amerika en die hadden die standaard allang overgenomen. Dus onze invloed was praktisch nul. Ik wilde daar een internationale samenwerking van maken en het ideale platform daarvoor was het internationale Programming Language Committee. Ik wilde dat we gewoon eens met elkaar zouden praten, respect zouden krijgen voor elkaar, naar elkaar luisteren, elkaars ideeën overnemen, samenwerken en uiteindelijk dat het hele standaardisatiewerk internationaal zou worden. Dat is gelukt en daar ben ik eigenlijk wel trots op. Dat hebben we gedaan door eerst een Cobol Experts Group (CEG) op te richten, iets dat binnen de ISO ongekend was. Zij kenden alleen landen als werkgroepen, maar geen individuen. We kregen drie jaar de tijd om het te doen, waarna het zou worden geëvalueerd. In de CEG zaten Cobol-deskundigen uit zeven, acht landen en uiteraard zaten daar ook de nodige Amerikanen bij. De eerste vergaderingen stonden ból van het wantrouwen”, verzucht Ebbinkhuijsen. “Vreselijk. De Amerikanen vonden ons snotjongens en de rest had er daardoor weinig vertrouwen in. Gelukkig hadden we een fantastische voorzitter, Jitze Couperus, die ons in maximaal drie vergaderingen ‘on speaking terms’ wist te krijgen. Er ontstond respect voor elkaar en er werd geluisterd.”
Coupe
“Na drie jaar vond ISO dat het toch weer een landenwerkgroep moest worden en ze vroegen mij om convenor te worden van een ad-hocgroep om daar regels voor op te stellen. Dit was een unieke groep, want hij is nooit bij elkaar geweest. Het is uitsluitend schriftelijk gebeurd, ik correspondeerde bijvoorbeeld met een professor uit China, daar kreeg ik prachtige enveloppen van”, glundert Ebbinkhuijsen. “We kwamen in 1981 tot een voorstel hoe landenwerkgroepen geformaliseerd moest worden; dat werden ‘working groups’. Die zijn voor verschillende programmeertalen ingesteld, de Cobol-werkgroep was uiteraard de eerste die aan het werk ging. Er was een aantal belangrijke veranderingen; de eerste was dat landen waren vertegenwoordigd in de working groups. Zij konden per vergadering beslissen wie zij naar de working group afvaardigden. De tweede verandering was misschien wel de belangrijkste, namelijk dat wij als working group binnen ISO het recht kregen om een nieuwe standaard voor te stellen.” In 1983 maakte de Cobol working group voor het eerst van dat recht gebruik. Het is voor Ebbinkhuijsen zijn mooiste Cobol-moment: “De Amerikaanse standaardencommissie (Ansi) was bezig met de nieuwe standaard, Cobol-85, en daar werd in Amerika heel veel bezwaar tegen gemaakt, omdat er teveel ‘incompatibilities’ waren met de vorige standaard. Die zijn voor een deel weggehaald, maar de bezwaren bleven bestaan. Er is toen één man geweest, uit de verzekeringswereld, die zo’n tweeduizend brieven stuurde naar zijn collega’s met de vraag of zij die wilden tekenen en op wilden sturen naar de Ansi als bezwaar tegen de nieuwe standaard. Dat was rampzalig. Normaal rekende het Ansi na een standaardvoorstel op tien tot dertig bezwaarschriften. Administratief waren deze tweeduizend exemplaren niet te behappen, want iedere brief moest worden ingeschreven, kreeg een ontvangstbevestiging, elke brief moest in de vergadering worden behandeld, opgenomen worden in de notulen, moest worden beantwoord, dat kon gewoon niet. Ze zaten met hun handen in het haar.
Wij hadden in die tijd een internationale vergadering waar ik voorgesteld heb om van ons recht gebruik te maken. Wat op tafel lag, vonden wij geschikt als de nieuwe internationale standaard, dus we namen het uit handen van de Amerikanen en stelden het voor als nieuwe Cobol-standaard. Dat was écht een coupe!”, grijnst Ebbinkhuijsen. “Vanaf dat moment is het standaardisatiewerk formeel helemaal in die working group terecht gekomen. De working group bepaalt wát erin komt en de Amerikaanse commissie bepaalt hóe het erin komt.”
Zwaarste examens
De derde stempel die Ebbinkhuijsen op de Cobol-wereld drukte, betreft de Cobol-examens. In dezelfde tijd als het Novi werd ook het automatiseringsopleidingsinstituut Ambi opgericht. Verder waren er in de beginjaren zeventig weinig ict-opleidingsmogelijkheden in Nederland. “Ik denk dat in die tijd opleidingen nog niet zo’n gewild item waren, er werd niet ingezien dat het goed verdiende en dat het voor de toekomst heel belangrijk was”, zegt Ebbinkhuijsen. In 1974 werden de eerste Cobol-examens in Nederland gehouden. “De Cobol-examens waren beroemd in Nederland. Soms ook berucht, maar dat kwam omdat het slagingspercentage niet zo hoog was. Dat werd geaccepteerd, omdat ook bekend was dat de kwaliteit van de examens zeer hoog was. Je moest van goede huize komen, wilde je daarvoor slagen.” Vanaf 1978 was Ebbinkhuijsen lid van het examencomité en werd later voorzittter. In 1992 legde hij die functie neer. “Het exameninstituut besloot toen in al haar wijsheid dat het Cobol-examen wel met een multiplechoicetest afgenomen kon worden”, verzucht hij. “Zie je het voor je? Hoezo laten zien dat je kunt programmeren? Er is mij toen gevraagd om van die nieuwe examencommissie voorzitter te worden. Dat wilde ik één keer proberen, geheel tegen mijn zin, maar ik wilde mijn ervaring kunnen inzetten. Na dat ene examen heb ik gezegd dat ik stopte. Dit is absoluut beneden elk examenniveau als je praat over praktijkervaring.” Ineens klaart zijn gezicht weer op, en grijnzend vertrouwt hij me toe: “Ik heb jaren in de examencommissie gezeten, maar ik heb het Cobol-examen zelf nooit gedaan!”
Poepgoot
Van 1977 tot en met 2000 was Ebbinkhuijsen in dienst van Albert Heijn (Ahold). De eerste twee jaar als ontwikkelmanager, waarna hij werd aangewezen als data-architect (de eerste in Nederland). In die functie was hij verantwoordelijk voor de ontwikkeling van Albert Heijns logische databases. In 2000 ging hij met de vut. Brutaal vraag ik hem wat hij dan de afgelopen vier jaar heeft gedaan. Lachend somt hij op: “Mijn boek afgemaakt, drieëneenhalf jaar lid geweest van de Amerikaanse Cobol-commissie, ons tweede huis in Frankrijk bewoonbaar gemaakt. Het was een oude veestal, toen we het kochten zat de poep nog in de poepgoot, de neusringen hingen nog aan de muur, het stro lag nog overal, kleine raampjes, geen water, geen stroom, geen telefoon, niets. Het is nu helemaal bewoonbaar geworden, ik ben er net weer vier weken geweest. Tot slot heb ik me de afgelopen vier jaar voorbereid op een nieuw beroep, waarvan ik vier jaar terug nog niet wist wat het exact zou worden, behalve dat ik met mensen wilde werken. Ik ben nu officieel mediator. Een mediator kun je inzetten bij elk soort conflict, dus burenruzies, overheid-burger, werkgever-werknemer en natuurlijk echtscheidingen. Dat is wel een apart gedeelte, omdat vaak maar één van de twee betrokkenen wil scheiden. Daar komen nog andere dingen aan de orde. Ook omdat ik zelf op een heel goede manier gescheiden ben, heb ik besloten om me op echtscheidings-mediation te richten. Daar ben ik nu mee begonnen en daar wil ik op den duur nog een specialisatie in doen, namelijk de omgangsregeling met kinderen. Ik merk dat daar de meeste verwondingen ontstaan, zowel bij de ouders als de kinderen.”
“Ik heb dit jaar de opleiding tot scheidingsmediator gedaan en ik heb iedere minuut opgezógen, ik vond het heerlijk”, zegt Ebbinkhuijsen. Barry Tauber verwoordt de overgang van de Cobol-wereld naar die van echtscheidingsmediator als volgt: “Hij gaat van een wereld waarin alles bestaat uit nul of één, uit zwart of wit, naar een wereld die uitsluitend grijstinten bevat.” Wanneer ik dit Ebbinkhuijsen voorleg, zegt hij: “In feite heb ik tijdens mijn internationale werk in de Cobol-expertgroups ook al veel aan mediation gedaan. Ik ben in staat mensen bij elkaar te brengen. Ik kan genieten van het pietepeuterig in elkaar zetten van standaardvoorstellen, maar ook van de processen die ik zie in een vergadering, hoe mensen wel of niet met elkaar omgaan. Dat vind ik zo leuk van het mediator-zijn; daar komt een groot stuk gevoel of inlevingsvermogen bij kijken, maar ook een groot deel zakelijkheid, want ik moet mensen bijvoorbeeld ook kunnen begeleiden in het maken van een convenant. Ik kan zowel mijn mentale stuk als mijn hart-stuk daarin kwijt. Het is dus niet zozeer afscheid nemen van nullen en énen. Nullen en énen is natuurlijk ook maar een vorm om met een mentaal deel van jezelf om te gaan.”< BR>
Ik wens Wim Ebbinkhuijsen veel geluk. Er zit echter een klein foutje
in de COBOL-compiler, waar hij het voorzover ik weet nooit over heeft gehad: het MOVE-statement: Geheel ten onrechte wordt in het artikel gesteld dat het MOVE statement gegevens “verplaatst..” Dat is immers waar het Engelse woord move voor staat. Niets is echter minder waar! In werkelijkheid wordt er, schrik niet, gekopieerd! Bijvoorbeeld: MOVE A TO B maakt het veld A niet leeg, maar kopieert de inhoud van A naar B. Bij een MOVE, dus een verplaatsing, zou je toch mogen verwachten dat A na deze MOVE opdracht toch leeg zou moeten zijn, maar dit is niet het geval! Het correcte statement is dan ook COPY A TO B, maar de gemiddelde COBOL-compiler weet hier niets mee aan te vangen: sommige compilers slepen zelfs bij het COPY-statement stukken Cobol-source van buiten erbij. Ik werk al sinds de tachtiger jaren o.a. met COBOL en ben heel toevallig tot mijn ontsteltenis door schade en schande pas na ettelijke jaren hierachter gekomen.
Misschien een Cobol grap, maar waarom werd bij Philips dan die 1024ste werknemer gevierd? wellicht kan iemand hierin mediëren om dit te verklaren !
Het getal 1000 is in het tientallig stelsel 10 tot de derde macht. Informatici rekenen echter digitaal, dus met een tweetallig stelsel waar elke positie in een getal de waarde 0 of 1 kan hebben. Twee tot de tiende macht geeft 1024 (digitaal dus geschreven als 10.0000.0000 waar acht bits dus een byte vormen). De k in kilobyte is dan ook 1024 bytes en niet 1000 bytes.