Development / Achtergrond
Cobol viert veertigjarig bestaan
Akelig stil op feestje
Op 23 augustus gaat de vlag uit, want veertig jaar geleden kreeg Cobol op die datum de ANSI-standaard X3.23 en werd het een officieel goedgekeurde programmeertaal. De 40-jarige programmeertaal geniet nog steeds de voorkeur bij grote transactionele systemen. Immer springlevend maar met met één schaduwkant: de Cobol-programmeur is een uitstervend ras. Het wordt een stil feestje.
Het is de tijd van ponskaarten, van machinetaal, van de eerste commerciële computer (Univac) in wording. Het is de tijd dat wiskundige Grace Hopper het programmeerwerk (destijds een beproeving) een elegantie meegeeft om in begrijpelijk Engels een applicatie te bouwen. Gewoonlijk zijn programma's in die tijd een onbegrijpelijke reeks wiskundige symbolen. Het is de tijd dat velen nog denken dat vijf computers wel de hele wereldbehoefte afdekken. Een tijd dat programmeertalen zijn gebonden aan hardware.
In 1959 ontstaat, gebaseerd op het harde werk van ‘Amazing Grace' (de bewonderende bijnaam die zij later verwierf), Cobol: Common Business Oriented Language. Deze programmatuur is wél platformonafhankelijk en in ‘gewone mensentaal' geschreven. Aan de code zelf is af te lezen wat het programma uitvoert; hetgeen met talloze regels cijfers en andere wiskundige symbolen niet het geval is.
Het spreekt voor zich dat deze eigenschap een zegen is voor het onderhoud van programmatuur, je ziet immers in de code waar het over gaat. En typisch voor Cobol: een regel mag niet meer dan tachtig tekens bevatten. Dit heeft te maken met de breedte van de ponskaarten.
Patronen
Veertig jaar oud en nog steeds springlevend in de meeste rekencentra. Dat is welhaast een ongepastheid in deze industrie die zich kenmerkt door hype-cycles. ‘Onze eigen' Edsger W. Dijkstra bleek niet erg ingenomen met de programmeertaal. "Het gebruik van Cobol verminkt de geest; het onderwijzen ervan zou daarom dan ook moeten worden beschouwd als een criminele daad", is één van zijn meest geciteerde uitspraken.
Waaraan is het succes (want dat kun je toch wel stellen met wereldwijd nog steeds tweehonderd miljard regels code in productiesystemen) dan toch te danken?
Daar zijn verschillende redenen voor. Met de natuurlijke taal kan het niet meer te maken hebben, want jongere talen bedienen zich ook al lang niet meer van ‘machinecode'. Steven Klusener, wetenschapper bij de Vrije Universiteit Amsterdam, vindt het lastig te begrijpen waarom Cobol zo'n stabiele factor is al die jaren. "Een mogelijke verklaring is dat men in de Cobol-wereld gebruik maakt van wat nu bekend staat als design/coding patterns."
Cobol-opdrachten moeten consistent corresponderen met het bijbehorende machinecode patroon. "Daardoor zijn Cobol-applicaties naar verhouding redelijk gemakkelijk - zelfs deels geautomatiseerd - te onderhouden door anderen. Momenteel ben ik op de universiteit bezig om voor een grote financiële instelling dergelijke patronen in kaart te brengen. Punt is namelijk dat de Indiase offshore-partner deze patterns (aanvankelijk) niet kende."
Bewezen technologie
Cobol draait al jaren stabiel en betrouwbaar, op nieuwe en oude mainframes, zoals deze S/360 van IBM.
Er zijn natuurlijk meerdere redenen voor de populariteit van Cobol. Zo is het, met zo'n lange geschiedenis, de meest gedocumenteerde programmeertaal ter wereld. En er zijn legio ‘best practices' waaruit mensen kunnen putten. Met deze taal spreken we van ‘bewezen technologie'.
Ordina heeft nog steeds veel strategische klanten die Cobol gebruiken. Zo heeft bijvoorbeeld de Rabobank zijn Cobol-beheer uitbesteed aan deze dienstverlener. Alexander Bosschaart is principal consultant bij Ordina en praat vanuit de dagelijkse praktijk over de grote belangstelling die de taal nog steeds geniet.
Zesduizend miljard euro
"Als het om grote, transactionele systemen gaat, dan is Cobol efficiënt en het best te onderhouden. Bovendien is - vooral bij de financiële instellingen - alles ooit begonnen met Cobol. Dat zijn enorm grote systemen geworden en daardoor zijn ze moeilijk te vervangen. Dit is eigenlijk ook niet nodig, want de processen blijven in de basis hetzelfde. De regels voor bijvoorbeeld het uitrekenen van rentes veranderen niet", legt Bosschaart uit. Toch zijn veel bedrijven bezig met het vervangen van hun oude technologie, vaak aangeduid als ‘legacy'.
Een Cobol-systeem met tienduizend functiepunten is geen uitzondering. Een functiepunt is een maatstaf voor de omvang van een programma, gebaseerd op de hoeveelheid ict-functionaliteit. "Dat vervang je niet zo maar", aldus Bosschaart. "Een simpele rekensom leert dat vervanging van alle Cobol-programmatuur door een andere programmeertaal grofweg uitkomt op zesduizend miljard euro. Dat betekent dat we nog lange tijd Cobol-programmatuur blijven houden."
Mengsel van programmeertalen
In deze tijd van het uitbesteden van (onderdelen van) de ict-dienstverlening, doet Ordina veel assessments op Cobol-systemen. Dat moet een indruk geven van de kwaliteit en onderhoudbaarheid van een applicatie. In het kader van de onderhoudbaarheid worden regelmatig delen van applicaties vervangen of opnieuw gebouwd.
Uit die code assessments blijkt dat de kwaliteit van de Cobol-code in zijn algemeenheid als ‘goed' valt te kenschetsen. "Maar er zijn natuurlijk altijd systemen die in de loop der jaren veel zijn gepatcht en slecht zijn gedocumenteerd." Ook in dat geval is het vaak goedkoper om te revitaliseren dan de programmatuur te vervangen.
Overigens ziet hij - wereldwijd - niet veel nieuwbouw en zeker al niet van grote systemen. Wel is er veel aandacht voor de koppeling van grote Cobol-systemen met de ‘voorkant' die veelal in Java of .NET zijn geschreven.
Bosschaart vindt dat een mengsel van programmeertalen tot goede resultaten kan leiden. Cobol voor de hoogfrequente, transactionele systemen en bijvoorbeeld Java of .NET voor de ‘webwinkels'. "Je bouwt een wolkenkrabber toch ook niet met baksteen? Daar gebruik je staal en beton voor; en eventueel baksteen als gevelversiering."
Schaarste aan Cobol-ontwikkelaars
Er is dus nog steeds behoefte aan Cobol-programmeurs, vaak denigrerend Cobol-krassers genoemd. "Er zit wel enige waarheid in die schimpnaam, want een nadeel is dat bij Cobol altijd de nadruk is gelegd op het programmeerwerk, het schrijven, en er veel te weinig aandacht was voor het bedrijfsbelang dat een programma dient, voor de mensen die ermee moeten werken. Die bredere visie zie je bij modernere talen wel terug", meent Bosschaart.
Hij en Klusener maken zich wel zorgen over de vergrijzing van de groep Cobol-ontwikkelaars. Cobol wordt niet meer onderwezen op universiteiten en hogescholen, waardoor er geen sprake meer is van een evenwichtige (leeftijds)verdeling binnen het totale aanbod aan Cobol programmeurs. "De schaarste zal het op termijn weer aantrekkelijk maken om Cobol te gaan leren", verwacht Bosschaart.
De Karel de Grote Hogeschool in Antwerpen onderkent dit en heeft voor het komende academische jaar weer een academische opleiding legacy systemen en Cobol opgenomen. Ook Ordina wil binnenkort weer beginnen met een Cobol-opleiding.
Zoals het er nu naar uitziet, zullen er echter weinig feestgangers zijn als Cobol in augustus zijn officiële verjaardag viert.
Cobol is eind 1959 in slechts zes maanden ontwikkeld door de Conference on Data Systems Languages (Codasyl). In januari 1960 krijgt de taal de goedkeuring van de Amerikaanse overheid, vandaar dat deze versie Cobol60 heet. In 1961 volgt een nieuwe versie, met aanvullingen daarop in 1962 en 1963 die uiteindelijk leiden tot Cobol-61 extended.
Vervolgens is de taal overgedragen aan het American National Standards Institute dat in 1968 consensus bereikt en Cobol als een officieel aanvaarde standaard neerzet. De internationalisering leidt ertoe dat ISO (International Standards Organisation) zich over de taal buigt en een nieuwe versie uitbrengt: Cobol-85.
De meest recente versie verscheen, na diverse malen te zijn uitgesteld, in 2002: logischerwijs Cobol-2002 geheten. Hierin zijn moderne functies als objectgeoriënteerd programmeren en automatische validatie opgenomen. De Nederlander Wim Ebbinkhuijsen heeft zich tientallen jaren eerst nationaal en later op internationaal niveau opgesteld als ‘Cobol-hoeder' en wordt als één van de vaders van de moderne versie gezien.
Uiteraard zijn er tal van dialecten ontstaan, ontwikkeld door bijvoorbeeld IBM, HP, CA, Tandem en Fujitsu. Tachtig procent van de Cobol-programma's is geschreven in de versie S-390 Cobol van IBM, verwijzend naar het besturingssysteem OS/390 dat IBM voor zijn System 390-mainframes (S/390) heeft gemaakt.
Anno 2008 wordt er gewerkt aan een uitbreiding van de 2002-standaard, die krijgt ondersteuning voor XML ingebouwd. De ontwikkeling van Cobol is dus nog in volle gang.
Cobol gaat veel doelmatiger om met computergeheugen dan objectgeoriënteerde talen, zoals Java en .NET. Een reden te meer, aldus principal consultant Alexander Bosschaart bij Ordina, om bij de ‘moedertaal' te blijven. Objectoriëntatie werkt met overerving, polyformisme en distributie van functionaliteit over verschillende objecten. De regie is niet centraal, hetgeen tot uiting komt in willekeurige en veelvuldige benadering van de database en dat leidt weer tot een hoog cpu-verbruik (duur) en veel i/o (trage responstijden). Klassieke Cobol-programmeurs schrijven sql-queries in nauwe samenhang met de databasebeheerder om tot een optimaal toegangspad te komen. Dat is met ‘object orientation" (OO) vrijwel onmogelijk.
Java legt dynamisch beslag op geheugen dat automatisch weer vrijkomt als het niet meer nodig is. Dit mechanisme - onder de naam garbage collection - gebruikt cpu en kost dus geld. Cobol gebruikt geheugen statisch. Bij het begin vraagt het programma geheugen aan en geeft het weer vrij als het klaar is. Hier is geen garbage collecter voor nodig.
Ook het instantiëren in een OO-taal kost extra cpu-gebruik. Voor elk logisch deel van een record wordt namelijk een object gecreëerd dat eigen geheugen nodig heeft. In Cobol is het mogelijk een record uit de database te lezen en direct te be- en verwerken.
"Objectgeoriënteerde talen zijn rationeel gezien de komende jaren geen alternatief voor Cobol bij de realisatie van de businesslogica voor grote bedrijfskritische administratieve systemen", meent Bosschaart.
- Cobol is nog lang niet afgeschreven
- Hogeschool zet Cobol op lesprogramma
- ‘Ik wist totaal niet wat Cobol-programmeur inhield’
- Wim Ebbinkhuijsen laat Cobol-wereld achter zich
- Offline: Amazing Grace: queen of Cobol
- Cobol 2000 uitgerust met object-oriëntatie en nieuwe validatiefaciliteiten
- 'Cobol leeft'
- Groot tekort aan Cobol-programmeurs
- Banenpoolers worden Cobol-kloppers
- Cobol is it-fundament
- Programmeertaal Cobol moet in 2000 object-oriëntatie bevatten
- Cobol-opleiding speelt in op tijdnood
- Voortbestaan Cobol ook na 2000 niet in gevaar
wat een bullshit.
indien je prut programmeert in java/c of in cobol
dan krijg je prut.
nooit gehoort van prepare once execute many times.??
kan ook in OO en dus ook in java....
Overigens moet je statements zelf closen en freeen in
java/cobol/c .
Nadeel van java is dat de garbage collector dat niet voor je doet; in c maak je een destructor die dat voor je doet....
Mocht mijn geest toch nog verminken dan heb ik in ieder geval een ezelsbruggetje voor de leeftijd van Cobol, even oud als ik.
Schaarste? Dat wordt al jaren geroepen. Waarom liggen de tarieven voor Java en .net specialisten hoger? Kwestie van vraag en aanbod, trek uw conclusie.
De belangrijkste redenen zijn de betrouwbaarheid in bedrijfskritische transactionele processen en de investeringen die zijn gedaan. Welk bedrijf heeft die processen niet? Waarom meewaaien met de hypes in een tijdperk waar IT als een commodity wordt gezien en niet als een statussymbool. Het draait immers om bedrijfsprocessen en een betrouwbare ondersteuning. Aan de gestructureerde manier waarop cobol bijvoorbeeld errorroutines afdwingt zou menig modern systeem een voorbeeld aan kunnen nemen. Een tekort aan cobolprogrammeurs is overigens een fabeltje. Iedereen die gestructureerd kan denken, kan in cobol programmeren. Het is misschien niet ?cool?, maar dat is een pak yoghurt in vergelijking tot een drinkontbijt ook niet. Beide hebben echter hetzelfde doel.
Het wordt tijd dat de ITer de rol aanneemt van business process engineer en in de ?supermarkt? van IT oplossingen het best mogelijke alternatief kiest en het naar de processen boetseert. Cobol aangevuld met nieuwe techniek heeft daar zeker een blijvende plaats naast oracle, sap en andere nieuwe generatie systemen. Ik wacht op de vijftigste verjaardag van cobol en geniet daarnaast van nieuwe technieken. Best of both worlds.
Andre Trachsel
SAP IS-U interfaces consultant
- 13:09 Somatech applicatie voor materiaalverwerking
- 12:32 Metacom 8.1 open ERP-systeem voor de bouw
- 09:13 Webdiensten vormen betere middleware
- 16:53 ATG introduceert ATG Commerce Suite 9
- 16:51 SAP en BO komen met SAP Data Migration
- 16:48 uniPaaS versie 1.5 met .NET Rich Internet Client
- 14:47 Omzetcontrole bij e-commerce
- 08:09 De kijk van Van Eijk: Technisch leiderschap
- 12:27 Alcatel-Lucent Corporate Communications
- 12:07 SonicWALL beveiliging voor EBS en SBS
Vendor lock-in behoort tot het verleden met open standaarden
Open standaarden en open software maken het mogelijk om IT weer te zien als opportunity en niet als een beperkende factor. Inhaken op trends en ontwikkelingen gaat sneller met open standaarden en open source software, zo wordt betoogd in deze whitepaper.... Download nu
Meerwaarde Agile in kaart gebracht
Wat is Agile Development. Hoe werkt het? Wat is de meerwaarde ten opzichte traditionele ontwikkelmethoden en welke veranderingen zijn noodzakelijk om goed gebruik te maken van Agile. Deze en meer antwoorden leest u in deze whitepaper.... Download nu
Meer Development whitepapersSAP-maatwerk, duur beheer
Als er veel wordt gesleuteld aan een SAP-applicatie, zorgt dat voor hogere beheerkosten na het project. Maar het is lastig aan de organisatie duidelijk te maken dat maatwerk niet altijd de beste oplossing is.
Meer maatwerk bij SAP maakt beheer duurderSomatech applicatie voor materiaalverwerking
02-12 13:09 Voor verspanende bedrijven die bijvoorbeeld kunststoffen bewerken of andere langspanige materialen brengt Somatech PECK and PLUNGE op de markt. Deze applicatie maakt het mogelijk...
Meer development productenBooking.com zweert bij open source
10-03 14:24 De capaciteit van de infrastructuur van reserveringswebsite Booking.com is de afgelopen jaren vertienvoudigd. Dat levert niet alleen hoofdbrekens op over onder andere...
Meer development praktijkWebdiensten vormen betere middleware
02-12 09:13 Hoewel webdiensten vaak worden gezien als middel om gedistribueerde applicaties simpel aan elkaar te knopen, zijn ze veel meer dan dat. Hun volledig elektronisch gedocumenteerde...
Meer development achtergrondOmzetcontrole bij e-commerce
01-12 14:47 Laatst sloot mijn buurman, een niet-ict’er, een doorlopende reisverzekering af via internet. De website van de verzekeringsmaatschappij waar hij de verzekering in eerste instantie...
Meer development opinieBekijk de leveranciers op het gebied van Development.

