In 1984 bracht Ashton Tate het programma dBase III uit. Met dit programma konden databases worden gemaakt en programma's om de data te bewerken. dBase is daarmee een van de legendarische programma's uit het begintijdperk van de pc samen met Wordstar en later WordPerfect voor tekstverwerking en Visicalc, gevolgd door Lotus 123 voor spreadsheets. Van de laatste programma's wordt alleen WordPerfect nog aangeboden (en waarschijnlijk nog maar weinig verkocht) door het Canadese Corel, de rest is verdwenen van de markt.

Lotus 123 kwam in 1995 in handen van IBM, dat er in 2013 de stekker uittrok. Uiteraard omdat vrijwel iedereen Excel en Word van Microsoft Office gebruikt. Maar hoe is het dBase vergaan? Nadat compilerontwikkelaar Borland enige tijd eigenaar was van dBase werd het uiteindelijk zelfstandig en vandaag wordt het nog steeds verkocht, als dBase Plus 12, voor 499 dollar per licentie. Maar er gebeurt meer met dBase dan wat door de huidige eigenaar dBase LLC wordt aangeboden.


Eerst even wat achtergrond. Er zijn diverse manieren om data op te slaan in een of meer bestanden die met elkaar een database vormen. Een veel gebruikte database is gebaseerd op SQL (Structured query language), zoals de naam als suggereert gaat het hier om de opdrachten waarmee data worden opgevraagd en gevuld; de manier waarop het is opgeslagen verschilt en de SQL-dialecten ook. Veel gebruikte versies zijn MySQL waar veel websites gebruik van maken en Microsoft SQL Server die op servers draaien waar een of meer bedrijfsprogramma's hun data in opslaan.

Maar dBase is anders. Iedere database is eigenlijk 1 bestand voor een bepaald doel met extensie .dbf. Zo'n bestand is opgebouwd volgens een vooraf gedefinieerde structuur, waarin velden zijn gedefinieerd. Bijvoorbeeld het bestand klant.dbf: dit kan adressen van klanten bevatten met velden als naam,adres, postcode, woonplaats. Bijbehorende bestanden kunnen indexen bevatten om zoeken en sorteren op verschillende volgordes te regelen en een bestand voor de opslag van grote hoeveelheden tekst van ongelijke grootte.

Dat zijn zogenaamde memovelden, bijvoorbeeld voor notities, waarvan de lengte veel meer zal variëren dan van een adresveld bijvoorbeeld. De programma's moesten worden geschreven en ook gedraaid vanuit dBase zelf. De vroege versies van pakketten voor zaken als boekhouden en relatiebeheer zijn vaak in dBase geschreven. De programmeur moest zelf de samenhang tussen de bestanden bijhouden; wie gebruik maakte van de ingebouwde mogelijkheden van dBase om zelf data te bewerken moest ook zelf de verbanden tussen verschillende .dbf bestanden aangeven.

Om bij het klantvoorbeeld te blijven: een tweede database zou contact.dbf kunnen zijn waar de verschillende contactpersonen van de klant worden vastgelegd waarbij een sleutelveld, zoals het klantnummer, dient om de contactpersonen bij de klant te kunnen terugvinden. Je maakt gewoonlijk steeds een gekoppelde database aan als er een 1 op meer relatie kan bestaan.

Nog een voorbeeld: een facturenbestand met een apart bestand met daarin de factuurregels: 1 factuur kan uit 1 regel bestaan maar ook uit vele regels. Het nieuwe dBase is vooral bedoeld voor gebruikers die de data zoals ze die willen vastleggen wel voor zich zien maar niet willen of kunnen programmeren. Al is die mogelijkheid er wel.

xBase

Even terug naar de dBase beginjaren. Het Amerikaanse bedrijf Nantucket bracht in 1984 een compiler uit, genaamd Clipper, die voor een belangrijk deel dezelfde syntax gebruikte als dBase, en ook dezelfde .dbf bestanden gebruikt. Daar voegden ze verbeterde bestandsformaten aan toe zoals een .cdx bestand waarin in 1 bestand alle indexen van 1 .dbf bestanden stonden in plaats van een (.ntx) bestand voor iedere indexkey (denk aan: naam, klantnummer, postcode). Omdat de compiler een kant en klaar MS-DOS programma (.exe) produceert konden programma's bij klanten worden neergezet zonder dat deze eerst dBase III moesten kopen en waren die programma's ook nog eens belangrijk sneller.

Later (in 1992) werd Clipper gekocht door Computer Associates. Zij wilden voor grote klanten een programmeertaal uitbrengen die van alle voordelen van het toen opkomende Windows gebruik zouden maken maar met de syntax van het voor velen vertrouwde Clipper. Ook Foxpro maakte een dBase variant en werd later door Microsoft gekocht die in 2007 een einde maakte aan de ondersteuning. Deze en andere varianten kregen de verzamelnaam xBase talen.

Het product van Computer Associates (CA) werd Computer Associates Visual Objects, afgekort Cavo, en was zeer geavanceerd. Clipper programma's konden 1:1 vanuit Cavo draaien maar werkten dan niet anders dan via Clipper in een DOS venster.

Om gebruik te maken van Windows vensters, technieken en voorzieningen, zoals printerdivers of het klembord, en ook de voordelen van object georiënteerde talen moesten programma's behoorlijk herschreven worden. Cavo is niet alleen een compiler maar ook een volledige ontwikkelomgeving waarin je meerdere projecten kunt organiseren, code kunt debuggen (technieken om gedrag van het programma te bekijken dat leidt tot fouten of onjuiste uitkomsten) en veel meer.

Toen CA de belangstelling voor Cavo verloor en er steeds minder aan deed werd het overgedaan aan een Amerikaanse subcontractor die direct begon met het maken van een eigen variant die dan weer gebruik maakte van de toen opkomende .Net omgeving: Vulcan. .Net heeft zo z'n voordelen. Ontwikkelaars hebben voor veel functionaliteit relatief efficiënt werkende code direct beschikbaar waar dat in talen als Cavo en vergelijkbare omgevingen zelf geschreven moest worden.

De eigenaar van Vulcan stimuleerde Cavo-ontwikkelaars om over te stappen, al was het alleen al omdat Vulcan een eigen product was waarvoor ze geen licentiegeld hoefden af te dragen aan CA. Met de subcontractor liep het niet veel anders dan met CA en in 2015 nam een Nederlandse ex Cavo- en Vulcan-ontwikkelaar (Robert v.d. Hulst) het initiatief om een verbeterde versie te ontwikkelen met de naam X#, spreek uit X Sharp.

Qua functionaliteit ligt deze taal dicht bij het veelgebruikte en geavanceerde C#. Anders dan bij Vulcan werd X# gebaseerd op de laatste technieken. De oud Vulcan-ontwikkelaars sloten zich al snel bij hem aan en veel Cavo-ontwikkelaars, waaronder ikzelf, zijn nu ook X# ontwikkelaars. Hetzij voor nieuwe programma's, hetzij voor bestaande Cavo programma's, want ook X# heeft een conversieprogramma dat de omschakeling van Cavo naar X# gemakkelijk maakt. Zie hier.

Het (optisch) verschil voor de eindgebruiker van een Cavo- of een X#-programma is veel kleiner dan dat van een Clipper- en Cavo-programma dus kan een ontwikkelaar eenvoudiger overstappen en geleidelijk .Net verbeteringen uitvoeren. In tegenstelling tot Vulcan is X# open source wat in dit geval betekent dat gebruikers de taal gratis mogen gebruiken omdat de financiering komt van gebruikers die individuele support en als eerste de nieuwste versies willen hebben. Voor de toekomst staat ook een migratiepad naar X# van andere xBase talen uit gepland, zoals Foxpro.


Cavo-gebruikers die X# gebruiken hebben meer keuze uit ontwikkelomgevingen want in tegenstelling tot Cavo heeft X# geen geïntegreerde eigen ontwikkelomgeving. Visual Studio van Microsoft biedt makers van compilers relatief eenvoudige toegang, zodat compileren en debuggen van hun taal plus de vele andere functies van Visual Studio beschikbaar zijn zonder dat deze maker enorm veel ontwikkeltijd hoeft te besteden aan het maken van zo'n omgeving, zeker met de laatste technieken. Voor X# voorloper Vulcan ging een onevenredig groot deel van de ontwikkeltijd op aan het geschikt maken van het programma voor nieuwere Visual Studio versies. Een Vulcan compiler die werkt onder Visual Studio 2017 is er nooit gekomen terwijl X# deze versie ondersteunde op de dag dat 'ie uitkwam.

Daarnaast heeft een van de leden van het ontwikkelteam, de zeer getalenteerde Griek Chris Pyrgas, een lichtgewicht ontwikkelomgeving en compiler uitgebracht onder de naam Xide. Deze is eveneens gratis te gebruiken, installeert in een minuut, is geschikt voor X# en C# en ondersteunt de belangrijkste functionaliteit om in deze talen te ontwikkelen. Alleen een eigen editor voor WPF (de nieuwste techniek voor onder andere het maken van schermen) ontbreekt eigenlijk. De optie om Xide te installeren volgt direct na de installatie van X#.

Toch zullen veel X#-ontwikkelaars voor Visual Studio kiezen omdat er zeer veel functionaliteit beschikbaar is en omdat door het grote aantal gebruikers er veel kennis over is en ook veel plug-ins zijn gemaakt die de programmeur kan gebruiken. Welke keuze je ook maakt, de productiviteit en kwaliteit van het X#-team zijn goed nieuws voor xBase-ontwikkelaars, evenals het feit dat het open source-model gratis gebruik mogelijk maakt.