Alweer geen Excel

Een serieus project

Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.

Ik heb de afgelopen weken Pascal herontdekt, ben weer in assembly gedoken, we hebben de stack doorgrond en weten hoe interrupts werken. Het oorspronkelijke doel, het herleven van mijn studietijd met Pascal, is bereikt. Maar nu wordt het tijd om daarmee ook iets nuttigs te doen.

Een van de nuttigste dingen waarmee programmeurs bezig zijn, als ze niet werken aan grote commerciële projecten, is het schrijven van eigen tools. Utilities die het besturingssysteem aanvullen, die laten zien hoe het systeem werkt, die problemen oplossen die anderen niet eens zien. Deze traditie is zo oud als programmeren zelf.

Toen wetenschappers in de jaren vijftig de hele dag in assembly zaten te rekenen, bedacht John Backus FORTRAN; niet omdat assembly niet kón, maar omdat het niet moést. Grace Hopper ging nog verder. Zij vond dat iedereen een programmeertaal verdiende die paste bij hun manier van denken, niet alleen bij de machine. En kijk naar Unix, het is zo rijk aan tools omdat generaties programmeurs hun eigen gereedschap bleven verbeteren. Elke utility lost een echt probleem op en samen vormen ze een ecosysteem.

In de DOS-wereld zie je dat terug in pakketten als Norton Utilities en PC Tools. Dat waren geen simpele command-line programma's, maar complete suites met een grafische interface waarin je allerlei aspecten van je systeem kon bekijken en aanpassen. System information, disk tools, file recovery, sector editors, allemaal tools die lieten zien hoe je computer werkelijk functioneerde en die je op een eenvoudige manier aanpassingen lieten maken.

Dat is dus wat we gaan bouwen: een eigen toolbox. Een suite met een grafische menustructuur waarin verschillende utilities samenkomen. Welke precies? Dat zien we wel. System information, iets met disks, misschien een sector editor – we gaan gewoon beginnen en uitbreiden waar het ons brengt. Het gaat om de pret, niet om een exact vooraf bepaald doel. En laat er geen twijfel over bestaan: het praktische nut hiervan is enorm, mits het nu 1985 is.

 

In tijden van voor Windows moeten we wel eerst een kwestie oplossen: hoe pakken we de grafische interface aan? We zouden direct naar video memory kunnen schrijven, iedere byte precies waar we hem hebben willen. Dat is dicht op het ijzer en snel. Maar er is een probleem: we leven in de tijd van Hercules, CGA, EGA, VGA, Super VGA en al die kaarten hebben hun eigen resoluties, kleuren en geheugen-layouts. Als je voor elk systeem aparte code moet schrijven, ben je meer bezig met video modes dan met je eigenlijke functionaliteit.

 

Daarom kiezen we voor Turbo Vision, de object-georiënteerde library die Borland bij Turbo Pascal 6.0 leverde. Die abstraheert alle hardwareverschillen weg en geeft ons kant-en-klare windows, menu's en dialogen. Object-georiënteerd programmeren is niet mijn favoriete paradigma, te veel abstractie voor mijn smaak, maar hier heeft het wel degelijk nut. Turbo Vision's window- en menu-objecten zijn logische eenheden die je wilt kunnen hergebruiken. En als je toch moet leren hoe iets werkt, kun je het beter doen in een context waar het ook daadwerkelijk een probleem oplost.

Arnout van Kempen is naast computernerd ook directeur compliance & risk bij aaff. Hij schrijft op persoonlijke titel.

Gerelateerd

reacties

Reageer op dit artikel

Spelregels debat

    Aanmelden nieuwsbrief

    Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

    Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.