Op bezoek vanuit de VS, Jerry Garfunkel, het broertje van Art (van het duo Simon & Garfunkel), om honderd cursisten van VAC Informatica Opleidingen hun Cobol-certificaat uit te reiken. Wat is de stand van zaken rond deze taal en de nieuwe norm? Zal Java op den duur Cobol gaan vervangen en de ‘universele’ programmeertaal worden? Een interview met een apostel en schrijver van diverse boeken over deze ‘supertaal’.
Cobol heeft bij vele, vooral jonge programmeurs, een slechte pers. De naam Cobol-krassers is daarvan een uiting. Raakt deze ‘oertaal’ nu eindelijk uit de gratie? Jerry Garfunkel, die ooit Cobol-programmeur was, later veel Cobol heeft gedoceerd en er nu vaak over (en andere IT-zaken) spreekt: "In 1960 is, na slechts twaalf maanden werk, de eerste Cobol-norm gepubliceerd. Een van de deelnemers zag daar niet veel in, bestelde een grafsteen met daarop een offerlam en de naam Cobol (Common Business-Oriented Language) en liet die bij de voorzitter bezorgen. Die steen staat nu in het Computer Museum in Boston, als gedenksteen die duidelijk maakt dat hij het aan het verkeerde eind had. Maar diezelfde houding vond je nog veel terug, ondanks het feit dat de zakelijke programma’s van de jaren zestig en zeventig vrijwel allemaal in Cobol geschreven zijn. In die tijd was het een te goede oplossing en dat is het eigenlijk nog steeds. Helaas is er geen pr-bedrijf dat zich inspant om het slechte imago te verbeteren."
Geheim achter succes
Wat is het geheim van het succes van Cobol?
Garfunkel: "Grace Hopper heeft veel bijgedragen tot Cobol. Niet zozeer aan de taal zelf alswel aan het idee van een geïnterpreteerde taal die door een compiler geschikt gemaakt kan worden voor de grote variëteit aan computersystemen uit die tijd. Het is nog steeds zo dat er Cobol-compilers beschikbaar zijn voor vrijwel elk platform. De taal zelf? Ach, je kunt met de meeste programmeertalen vrijwel alles doen wat je met Cobol kunt, en omgekeerd, maar Cobol is compact en zeer efficiënt voor zakelijke toepassingen. Deze taal is ook zeer stabiel: oude bronprogramma’s kun je nog steeds met de nieuwste gereedschappen compileren. Die stabiliteit, gecombineerd met de leesbaarheid van de bronprogramma’s, vereenvoudigt het onderhoud, een van de meest kritieke aspecten van zakelijke programmatuur. Er is een enorme ervaring met Cobol en de gereedschappen daarvoor. Het is niet voor niets dat de meeste case-gereedschappen Cobol-programma’s afleveren. Cobol is de lingua franca van de zakelijke toepassingswereld! Cobol was een van de eerste derde-generatietalen, en samen met Fortran (voor de wetenschappelijke wereld) de enige die nu, meer dan dertig jaar later, nog volop gebruikt wordt."
Door sommigen wordt Cobol aangewezen als de schuldige voor het Jaar 2000-probleem. Dat zit natuurlijk niet in de taal, maar in de manier waarop programmeurs de taal gebruikt hebben. Garfunkel: "Correct, Y2K staat volledig los van de taal. Dat men dit als een groot probleem ziet, demonstreert overigens wel dat al die zakelijke programma’s uit de jaren zestig en zeventig nog steeds gebruikt worden. Omdat er erg veel zakelijke programma’s in Cobol geschreven zijn, vindt je daarin ook de meeste fouten. We mogen echter zeer dankbaar zijn dat al deze programma’s in Cobol geschreven zijn, niet in Assembler of C, want daardoor zijn ze nu uitstekend leesbaar en onderhoudbaar, eenvoudig aan te passen. Eenvoud van onderhoud wordt steeds belangrijker voor zakelijke toepassingen."
4GL en O-O
Als Cobol in de jaren 60 al een derde-generatietaal was, wordt het dan niet tijd voor een versie uit de vierde generatie?
Garfunkel: "Vierde-generatietalen zijn niet-procedureel en werken grafisch of met een natuurlijke taal; daarom worden ze vrijwel altijd omgezet in een derde-generatietaal, zoals gezegd: meestal Cobol van de derde generatie. C++ en de nieuwe Java-taal zijn ook van de derde generatie. Java is als programmeertaal vooral geschikt voor de Internet-omgeving. Maar nogmaals je kunt in bijna elke programmeertaal vrijwel alles programmeren. Het voordeel van Cobol is dat je een efficiënter, leesbaarder en beter onderhoudbaar programma kunt maken. Dit geldt niet alleen voor het hele systeem, maar ook voor modules of objecten die door Html of Java-applets kunnen worden aangeroepen."
Zes jaar geleden dacht Barry Tauber dat men in 1996 object-oriëntatie in de norm zou kunnen toevoegen (Computable 13 februari 1992, p. 29-30). We schrijven nu 1998… Garfunkel: "Dat is een teer punt. Object-oriëntatie komt nu volgens plan in Cobol 2000, de eerstvolgende release! Wij doen niet mee met de rage van de dag en willen graag profiteren van de ervaring van anderen. Object-oriëntatie is echter hard nodig voor het ontwikkelen van toepassingen, denk alleen maar aan het Jaar 2000-probleem. Als we de datum- en tijdfunctie in een eenvoudig vervangbaar object hadden kunnen plaatsen, was de oplossing daarvan nu een fluitje van een cent geweest."
Waarom duurt die normalisatie dan toch zo lang?
Garfunkel: "Dat is het democratische normalisatieproces. Als je iets op papier gezet hebt, moet het zes maanden ter beoordeling liggen, en dat geldt ook weer voor alle aanpassingen daarna, gemaakt naar aanleiding van de commentaren. Dat is niet meer van deze tijd, vandaar dat men tegenwoordig liever industrienormen ontwikkelt en die vervolgens kant en klaar voorlegt aan de nationale en internationale normalisatiecommissies. Dat is echter met Cobol nog niet het geval." De ideeën en concepten van de toekomstige norm zijn al enige tijd beschikbaar in de meeste gangbare Cobol-compilers, bijvoorbeeld ‘Micro Focus Object Cobol for Windows NT’. De leveranciers hiervan geven de garantie dat deze compilers, eventueel na aanpassing, compatibel zullen zijn met de toekomstige norm.
Toekomst met norm-2000
Is de kans groot dat de Cobol-norm inderdaad in 2000 aangenomen wordt?
Garfunkel: "Dat zal absoluut noodzakelijk zijn. Als de norm die datum mist, zal dat rampzalig zijn: we kunnen niet zonder Cobol! Niet alleen dat het de meest bruikbare taal voor toepassingen is, maar Cobol is ook de beste voor alle platforms, van de kleinste PC tot en met de grootste mainframe. Zelfs voor gedistribueerde omgevingen! Cobol kent vanaf het begin de zogenaamde environment division waarin je de gebruikte omgeving kunt vastleggen. Cobol was destijds zijn tijd ver vooruit en kan nog steeds mee, ook al wachten we met smart op de Cobol 2000-norm."
Het is duidelijk dat alleen de meest kritieke Jaar 2000-problemen voor de eeuwwisseling zullen zijn gevonden en opgelost. Daarna zal nog wel een jaar of vijf tot zes nodig zijn voor de minder kritieke programma’s, denken sommigen. Garfunkel: "Daar ben ik het mee eens en daarom wil ik graag nog een voorspelling kwijt. Iedereen praat nog steeds sarcastisch over de vele legacy-toepassingen die in Cobol geschreven zijn. Ik voorspel dat ze blijven en dat er alleen een nieuwe grafische interface voor wordt gemaakt, om ze vervolgens op Internet of in een intranet te kunnen gebruiken. Het Jaar 2000-probleem zal zoveel menskracht eisen dat er onvoldoende tijd is om ze te herschrijven. Bovendien is de kans veel te groot dat daardoor heel veel nieuwe fouten en bugs worden geïntroduceerd! Dus blijft Cobol nodig en stijgt de vraag naar Cobol-programmeurs; zij hoeven zich geen zorgen te maken over hun salariëring."
Maar zal Java toch op den duur niet Cobol gaan overvleugelen nu er zo’n trend is naar Internet en intranet?
Garfunkel: "Ik geloof het niet. Java is, vooral in combinatie met Html en Xml, een uitstekende taal voor respectievelijk de gebruikers-interface en de koppeling met de host via Internet. C is prima voor systeemprogrammatuur, SQL voor databases en Cobol blijft de beste taal voor toepassingen. Nogmaals, bijna elke taal is vrijwel voor alles te gebruiken, maar elke taal heeft een eigen specialiteit waarin zij beter is dan andere. Waarom? Voor een deel komt dat door de taal zelf, maar voor het grootste deel door de ervaring die ermee is opgebouwd, de beschikbare gereedschappen en de aanwezige programmabibliotheken."
Nieuwe objecten definëren
Het nieuwe modewoord voor toepassingsontwikkeling is component-based development (CBD), een toepassing programmeren met behulp van componenten of objecten. Hoe goed Cobol in dit concept past? "Dat is een uitbreiding van wat wij twintig of meer jaar geleden ‘functionele decompositie’ noemden. In Cobol bestaat, net als in de meeste talen, natuurlijk de mogelijkheid om met ‘geneste’ programma’s te werken, waarin subprogramma’s bepaalde functies uitvoeren. Object-oriëntatie biedt echter de eenvoudige mogelijkheid om nieuwe objecten te definiëren aan de hand van oude en werkt veel flexibeler. Cobol 2000 zal de huidige versie zeker beter geschikt maken voor CBD, maar Cobol-objecten kunnen nu natuurlijk ook al in case-gereedschappen gebruikt worden. Of de vele interfaces tussen componenten geen probleem zullen gaan vormen? Als iedereen zich maar houdt aan de Corba-norm (common object request broker architecture) van de OMG (Object Management Group), is dat vooral een zaak van de compiler en het besturingssysteem, de runtime-omgeving."
Naast steeds snellere processoren, verwacht men dat deze processoren gecombineerd zullen worden tot ultrasnelle parallelle systemen.
Zijn daarvoor speciale voorzieningen nodig in de programmeertaal?
Garfunkel: "Niet alleen met vier of acht tegelijk, maar met honderden of duizenden processoren in parallel. Wil je dat efficiënt doen, dan zijn daarvoor wel degelijk uitbreidingen in de taal nodig. Een programma moet afgestemd zijn op de systeemomgeving waarin het gebruikt wordt; dat vereist voorzieningen in de taal. De mogelijkheid bestaat ook om elke processor in een parallel systeem zijn eigen specialiteit te geven; als je veel Cobol-programma’s draait, dan zou je veel Cobol-processoren moeten gebruiken. Het is op dit moment nog niet duidelijk welke richting het uit zal gaan. Wel duidelijk is voor mij dat Cobol in gebruik zal blijven — ik geloof in de taal, dat zal nu wel duidelijk zijn."
Cobol ook in volgende eeuw
Op het Cobol-congres eind 1992 kon niemand een grap vertellen over Cobol. Het is echt niet zo’n bloedserieuze, bijna heilige zaak. Recent circuleerde er op Internet het verhaal van die topprogrammeur die heel veel Jaar 2000-problemen had opgelost. Hij vond het toch een beetje hachelijke zaak om straks verantwoordelijk gesteld te worden voor de eventueel resterende problemen. Vandaar dat hij zich liet invriezen met de instructie dat hij eerst in 2005 weer tot leven gebracht moest worden. En natuurlijk, het programma van de vriesruimte had een Jaar 2000-probleem. Hij werd pas in 2099 ontdooid! Tot zijn grote verbazing stonden er allemaal journalisten en managers om zijn kist: de journalisten om hem te vragen naar zijn ervaringen en de managers om hem in dienst te nemen – vanwege het Jaar 2100-probleem … omdat hij de enige mens was die nog Cobol kende! "Hoe dan ook," besluit Jerry Garfunkel, "Cobol blijft gebruikt worden en zal daarom in de belangstelling blijven staan.
Hein van Steenis, freelance medewerker Computable
Cobol Vision 1998
Het tweejaarlijkse Cobol Vision congres wordt dit jaar voor de vijfde maal in november gehouden voor specialisten. Er liggen plannen klaar voor een tweede dag: Cobol – Beyond 2000, voor managers.