De Grote Sprong Voorwaarts

DE ASCII-TABEL van 128 tekens, zoals die aan het begin van de jaren zestig ontstond, betekende in al zijn beperktheid een enorme stap vooruit in het pionierende wereldje van computerbouwers en programmaschrijvers.

Tot dan toe was elke computer eigenlijk niet meer geweest dan een prototype, een experimenteel apparaat, zelfs als het in serie gebouwd werd. Elke computer was vrijwel vanaf de grond opnieuw opgetrokken, op zijn geheel eigen manier en met geheel eigen software, die voor geen enkele andere computer te gebruiken was. Iedereen zat als het ware telkens weer opnieuw het wiel uit te vinden.

In de beginjaren was dat ook precies wat er moest gebeuren. Ervaring met computers bestond niet, en dus waren er ook nauwelijks vastomlijnde ideeën over de eisen waaraan een bruikbare computer zou moeten voldoen. Niemand wist wat theoretisch de beste koers was, aan welke eigenschappen in de praktijk het meeste behoefte zou zijn, en wat technisch wel en niet haalbaar was. Bovendien had men geen flauw idee van de markt voor computers. Mensen die het weten konden betwijfelden zelfs of er wel een markt wás. Binnen IBM dacht men nog ver in de jaren vijftig dat het met een paar honderd flinke exemplaren wel bekeken zou zijn.

Wanneer er geen traditie is die houvast biedt, omdat de omstandigheden volstrekt nieuw en uniek zijn, dan is, zoals zelfs Mao Ze Dong in diezelfde jaren vijftig door schade en schande leerde, 'Laat honderd bloemen bloeien' een efficiëntere strategie dan pogen in het wilde weg een 'Grote Sprong Voorwaarts' te doen. En terwijl Mao met zijn onbezonnen grote sprong China opzadelde met bergen onbruikbaar schroot, bloeiden elders, vooral in Amerika, honderden kleinere en grotere experimenten in het bouwen van computers en software. Die experimenten zorgden ervoor dat er stukje bij beetje een beter beeld ontstond van wat een computer in de praktijk eigenlijk was en hoe hij het beste kon worden ingericht.

Dan komt onvermijdelijk het moment dat de creatieve pioniers-anarchie een belemmering wordt voor verdergaande ontwikkeling. Dan is het tijd voor consolidatie van de verworven kennis, en een echte Grote Sprong Voorwaarts: de overgang van experimentele prototypes naar een min of meer volwassen industrieel product. Een van de belangrijkste basisvoorwaarden daarvoor is een zekere mate van standaardisatie. Standaarden maken het mogelijk om de kwaliteit van producten te controleren en te vergelijken. Ze garanderen de aansluiting tussen verschillende deelproducten en uitwisselbaarheid van onderdelen. En ze geven richting aan verdere ontwikkelingen. Ze zetten als het ware de creatieve neuzen dezelfde kant op.

De ASCII-tabel was een van de eerste standaarden, en een van de weinige die breed geaccepteerd werden. In de hele complexe computerwirwar lag nu in elk geval vast hoe de in- en uitvoer van computers behoorde te gebeuren, wat het mogelijk maakte om programma's en randapparaten zoals toetsenborden te fabriceren, die niet meer aan één specifieke machine gebonden waren. Teken 10 stond voortaan gelijk aan 'ga naar de volgende regel'. Teken 13 betekende 'ga naar het begin van de regel'. De combinatie 10-13 is dus wat u met een druk op de Enter-toets eigenlijk doorgeeft aan de ingewanden van uw computer. Op dezelfde manier lag vast dat '32' een spatie inhield, '65' tot en met '90' de letters 'A' tot en met 'Z', '9' een tab, enzovoort. En zo is het nog altijd. Probeer het maar op uw DOS-scherm: druk, terwijl u de Alt-toets ingedrukt houdt, op het cijfer 9 op het numerieke toetsenblok (denk er wel om dat NumLock aan moet staan). Laat de Alt-toets los, en u ziet de cursor een tabpositie naar rechts springen. Alt-8 laat de cursor een plaats teruggaan, Alt-10 zet hem op de volgende regel.

Net zoals God de mens schiep naar zijn evenbeeld, omdat hij nu eenmaal niets beters wist te verzinnen, richtten ook de makers van de ASCII-tabel hun tabel in naar wat ze al kenden: het toetsenbord van telex en schrijfmachine. En omdat de tabel een Amerikaans product was, kwamen er uitsluitend de tekens in voor die Amerikanen gebruiken: het dollarteken als enig valutateken, de zesentwintig basisletters van het Engelse alfabet, maar geen enkele letter met een accent, trema of cedille. Dat maakte de eigenlijke ASCII-tabel maar heel beperkt bruikbaar voor sprekers van beschaafde talen als Frans, Duits, Spaans of Nederlands, een probleem dat nijpend werd toen het belang van de computer als tekstverwerker duidelijk begon te worden.

Gelukkig was daar wel iets aan te doen zonder de hele standaard weer overboord te gooien. Omdat de byte inmiddels als standaard minimale rekeneenheid geaccepteerd was, werd elk teken in computers als een byte beschouwd. Maar een byte telt acht bits, terwijl de ASCII-tabel er maar zeven per teken gebruikte. De meest linkse bit had altijd de waarde nul, of werd voor andere doeleinden gebruikt. Als je die bit ook gebruikte om tekens te definiëren, pasten er geen 128, maar tweemaal zoveel tekens in de tabel, terwijl hij toch in dezelfde ruimte in de computer paste.

En zo ontstond Extended-ASCII, de uitgebreide ASCII-tabel. De eerste 128 tekens bleven wat ze waren, daarboven kwamen 128 nieuwe. Het werd een wat ongeregeld zootje, dat voor ongeveer de helft bestond uit letters met diacritische tekens, extra leestekens zoals de Spaanse ? en valutatekens, waaronder onze eigen ƒ. Ervaren tekstverwerkers die aan DOS-tekstverwerkers als Wordperfect gewend zijn, kennen de nummers uit hun hoofd: Alt-130 voor de 'é', en Alt-137 voor de 'ë', bijvoorbeeld. De rest ging op aan streepjes en hoekjes waarmee op een gewoon DOS-scherm lijnen en kaders getekend konden worden. Niettemin was Extended-ASCII een hele verbetering. Je kon nu tenminste in principe de meest voorkomende tekens uit de belangrijkste Europese talen op het scherm krijgen en afdrukken, en simpele kaders en lijnen tekenen op scherm en papier. Maar het bleef een lapmiddel, dat bovendien veel van zijn nut verloor toen de grafische interfaces kwamen. Hun komst, halverwege de jaren tachtig, luidde het einde in van een kwart eeuw van bijna absolute hegemonie van ASCII.