|
Het Millennium-probleem bestaat nietTerug naar de site van Jan van Bakel Bange mensen zijn snel geneigd geld uit te geven ter bestrijding van
iets waar ze bang voor zijn. Het is de moeite waard ze te laten zien dat
hun vrees op niets berust. De beste manier daarvoor is aantonen dat het
gevreesde niet kan bestaan. Daarom enige uitleg over het zogenaamde millennium-probleem.
Ik wil trachten precies uit te leggen waarin het zou kunnen bestaan en
argumenten aanvoeren waarom het ondenkbaar is dat het zich zou voordoen.
Als mijn redenering niet klopt zal er iemand zijn die dat kan aantonen.
Dan hebben we in elk geval zoveel gewonnen dat we eindelijk precies zullen
weten waar het om gaat. Ik spreek uitsluitend over dingen die iedereen
met gezond verstand kan begrijpen. Gezond verstand is per definitie iets
wat iedereen heeft en er is niets wat zo principieel voor iedereen begrijpbaar
is als een computer.
We hoeven ons niet af te vragen waarover we het hebben. Het gaat erom,
zegt men, dat "computers de overgang naar het jaar 2000 niet aankunnen"
(NRC 26 okt.). Zomaar heel in het algemeen. Ze "denken" dat het 1900 is.
Dit is de eerste zaak waarover we moeten spreken en niet alleen omdat er
mystificerende termen worden gebruikt. Waarop trouwens een groot deel van
de hele hype berust.
Tegenwoordig is de AT op een of andere manier zodanig veranderd dat
het hoogste radertje met de waarde 19 gewijzigd kan worden tot 20. Vraag
mij niet hoe, want dat kan niet schelen. Wilt u weten wat uw eigen computer
doet? Gebruik het programma DATE en stel in: jaar 1999, maand 12, dag 31.
Gebruik het programma TIME en stel in: uur 23, minuut 59, seconde 30. ENTER
en wacht 31 seconden. Gebruik wederom het programma DATE en constateer
de nieuwe datum: 1 januari 2000 of , onveranderd, 31 december 1999. Het
verschil is dat tussen nieuwe en ouderwetse AT. In het eerste geval kan
uw machine zelf nimmer de oorzaak zijn van een zgn. millennium-fout. In
het tweede geval moet u de machine uitzetten en weer inschakelen (rebooten
noemen ze dat) en weer het programma DATE starten. Wat ziet u? De machine
zegt 1 januari 1900. Conclusie: oude AT die vanuit zichzelf ongeschikt
is om een zgn. millenniumfout te voorkomen Maar dit feit op zichzelf betekent
de millennium-fout niet. Dat komt allemaal nog.
Hierbij nu een algemene opmerking. Een computer, van welk merk dan ook, kan uit zichzelf in beginsel met een datum niets anders doen dan de hier beschreven systemen XT en AT (Melk-twijfel). Van nu af hoef ik wat de machine betreft alleen te spreken over correcte en incorrecte: de correcte zeggen op 1 januari 2000 'het is 1 januari 2000', de incorrecte zeggen 'het is 1 januari 1900'. Niets anders dan dit verschil ligt aan de basis van het hele probleem. Dat is niet anders in een kerncentrale dan in een gewoon computertje dat uw kinderen gebruiken. De toestand zelf van welke machine dan ook heeft wat betreft zijn datum geen enkel gevolg, zolang niet een of ander programma aan die datum een gevolg verbindt. Geen enkel programma dat op welke machine dan ook tot het erop geïnstalleerde systeem behoort trekt welke conclusie dan ook uit de datum (Melk-twijfel). Reeds op dit moment staat vast dat we in verband met het zgn. millennium-probleem niet hoeven te kijken naar machines die zich niet met een datum bezighouden. Niemand kan zich een elektronische rekenmachine voorstellen in een vaatwasser, een lift, een hart-long-machine, een videoapparaat, een thermostaat, een automatische piloot (en vult u maar aan: alle systemen die niet met een menselijke gebruiker communiceren of wel met een menselijke gebruiker communiceren maar niet over een datum) waarbinnen het probleem van een datum wordt gesteld. Wie bij de discussies over het millennium-probleem zulke apparaten betrekt spreekt als een volslagen ondeskundige. Tot op het hoogste niveau (Buitenhof, Witteman, Van Inge en Timmer, NRC, Volkskrant) worden zulke machines genoemd. Trouwens, neem aan dat dat wèl het geval was en dat er in die machines bepaalde conclusies worden getrokken i.v.m. een datum. Eventueel gevaarlijke conclusies, want daarom worden juist al die voorbeelden genoemd. Dan zouden er dus vandaag op zulke plaatsen afwegingen gedaan worden met de eventuele conclusie: veroorzaak nu deze of gene ramp. Dat gelooft u toch zelf niet, ook al kan een programmeur natuurlijk alles. Wat kan een programma met een datum doen? Vooreerst: die tonen. Dat tonen gebeurt door een of ander programma, een systeemprogramma als DATE of een zgn. gebruikersprogramma. Het gebeurt ook via een of ander medium: de monitor, de printer, een magneetband, een CD, op de harde schijf (dat kunt u alleen bekijken als u weer een ander programma start), op een floppy disk en mogelijk nog andere. Het programma dat voor het 'tonen' zorgt heeft zijn eigen manier van doen. Het beslist zelf hoe het de datum afbeeldt. Als het om 1 januari 2000 gaat:1-1-2000, 1jan2000, 2000jan1, enzovoort. Daarvoor is geen computer verantwoordelijk maar een programmeur, als u wil: een softwarehuis. (Een instantie met veel machines en waar u geluk hebt als u er nog eens een mens tegenkomt aan de telefoon. En waar soms programma's worden verkocht waarop staat: wij nemen geen enkele verantwoordelijkheid whatsoever voor dit programma als u het gebruikt. Dat moest Organon eens wagen.) Met iets wat afgebeeld is op de printer of de monitor kan alleen nog iets gebeuren door een menselijk wezen. Is het gegeven getoond of afgebeeld op een ander medium, dan kan een computerprogramma daar weer naar kijken en er eventueel mee werken. Dat moeten we even vasthouden. Dat was het tonen of afbeelden. Wat kan een programma nog meer doen met een datum? Het enig mogelijke zinvolle is: ermee rekenen.Natuurlijk moet men niet denken aan vermenigvuldigen of delen (en zeker niet door 0, meneer Yardeni), en zelfs niet optellen, maar uitsluitend aftrekken. Het enig zinvolle wat met twee (!) datums kan gebeuren is: het verschil berekenen tussen beide om de lengte van een periode te leren kennen (zonder Melk-twijfel). En even ter uitbreiding van een opmerking hierboven: geen enkel programma dat zich niet bezighoudt met lengte van periodes in termen van de kalender komt zelfs maar in aanmerking om gecontroleerd te worden i.v.m. het millennium-probleem. En daarmee raakt dus ook het vliegtuig dat in de nacht van 31 december 1999 in de lucht is uit de gevarenzone (Melk-twijfel, want een programmeur kan alles, whatsoever). Achter twee heb ik zoëven een uitroepteken geplaatst. Voor het zinvol werken met de datum van de computer (of: met welke datum dan ook) is altijd een tweede datum nodig. En dat kan niet zijn de datum van de computer zelf (die van zijn eigen datum-klok), want de computer heeft maar één datum. (Ik kom daarop terug, omdat er iets aan moet worden toegevoegd). Dat betekent dus noodzakelijk: het programma dat loopt heeft ergens vandaan een tweede datum 'in de hand' en wenst de lengte te weten van de periode tussen deze datum en die van de machine (of eventueel nog weer een andere datum, ook afkomstig van elders, een bestand met afschrijvingen van de giro etc.). Het programma moet bepalen welke van beide datums de laatste in tijd is (zeg A) en rekent dan uit A minus B, de andere datum. En kent zo de lengte van de periode tussen B en A. Als deze berekening niet adequaat is en het wordt veroorzaakt door een incorrecte machine, dan hebben we met het millennium-probleem te doen. En: uitsluitend dan. Een vraag die zich voordoet vóórdat we de resultaten van de berekening kunnen bekijken is: hoe ziet de datum eruit die niet uit het computersysteem zelf afkomstig is maar uit een of ander bestand? Die kan correct zijn en luiden 2-2-1987 of 3-3-2005. Maar hij kan ook incorrect zijn. Iemand uit een ver verleden kan hebben gedacht "die 19 dat weten we wel" en daarom in het thans gelezen bestand hebben geschreven: 2-2-87. En op een creditkaart kan staan dat hij geldig is tot 31-12-00. (Persoonlijk heb ik op een creditkaart al de ponsing '00' gezien, maar dat zegt natuurlijk niets over de magnetische informatie.) Hierboven hebben we gezien dat we twee typen computers moeten onderscheiden, correcte en incorrecte. Het verschil was dat de correcte de datum van 1 januari 2000 noemen als 1-1-2000 en de incorrecte als 1-1-1900. Als nà 1999 door een programma aan het systeem gevraagd wordt wat de datum is, krijgt het dus een verkeerde datum terug. Die verkeerde datum kan natuurlijk weer in een bestand geplaatst worden, en als hij later wordt teruggelezen en vergeleken met een andere datum die correct is (niet die van de computer zelf, want die deugt niet!) dan gaat het mis. Ook gaat het mis wanneer correcte datums uit oude bestanden worden vergeleken met de foutieve datum van de incorrecte machine na 1999. Maar het is wel de moeite waard om hierbij het volgende op te merken. Als een computer vandaag gevraagd wordt om zijn datum om die te vergelijken met een datum in een oud gegevens-bestand, dan gaat het ook nu al fout wanneer de datum in dat bestand incorrect is: 10 december 1999 minus 10 december 98 levert 1901 jaren op. Zulke fouten vallen helemaal buiten de zgn. millennium-problematiek. Ze doen zich allang voor en zijn dus allang gecorrigeerd. Natuurlijk kan een programmeur altijd al de datum van de computer hebben verminkt tot 99 (in plaats van 1999), maar over zoiets praten we niet, want iedere programmeur kan altijd al alle onzinnige dingen hebben gedaan. Samenvattend signaleren we dat er 4 denkbare situaties zijn:
De conclusie moet zijn: het millennium-probleem bestaat niet (Melk-twijfel). En nou zou u kunnen nagaan of mijn betoog ergens niet klopt. En zeker moet u nog eens nalezen welke onzin Yardeni etaleert in deze krant op maandag 26 oktober 98. En u afvragen hoe het toch kan bestaan dat iemand denkt dat er ergens programma's draaien die zeggen: indien de thans berekende periode wat haar lengte betreft niet voldoet aan deze (of die) eis, stop dan de stroomtoevoer aan het Nederlandse net. En hoe juist zulke mensen de bevoegdheid hebben om te besluiten in het jaar 2000 de stroomimport al bij voorbaat stop te zetten. Nostradamus zou er toch zijn vingers bij aflikken. Had u ook gezien in het programma Buitenhof op zondag 25 oktober 1998 welke moeite Timmer deed om althans hier of daar iets te bedenken dat mogelijk de onzin in het hoofd van de interviewer aan ons oog zou onttrekken? Of begreep hij het zelf niet? Nooit zelf een regel code geschreven zei Vincent Icke in de NRC. Als er een millennium-probleem bestaat wordt het veroorzaakt door schrikreacties van ondeskundigen. Die lopen naar de software-huizen en vragen: weet u zeker dat er niets gebeurt? En krijgen natuurlijk het antwoord: nee, dat weten we niet zeker. Die mensen hebben ook een kostwinning Jan van Bakel Nijmegen. Post scriptum. |