COBOL — ISO/IEC 1989, Une situation paradoxale.

oscar penserini
ELP-2018
Published in
4 min readMar 28, 2018

COBOL est l’acronyme de Common Business Oriented Language. C’est un langage de programmation qui est — comme son nom l’indique — destiné à la gestion. Aujourd’hui, COBOL est surtout utilisé dans le domaine de la finance.

COBOL a été créé en 1959 par des professionnels travaillant dans l’informatique lors de la “Conference on Data Systems Languages”. Langage développé en moins de 6 mois, il reste pourtant toujours utilisé aujourd’hui malgré une baisse progressive de popularité (figure 1).

Evolution de l’index TIOBE pour COBOL de 2000 à 2018 (figure 1)

Si COBOL est de moins en moins utilisé, il a toutefois eu son âge d’or dans les années 1980 et 1990. De nombreux systèmes informatiques bancaires utilisent d’ailleurs toujours COBOL et selon Bill Curtis, le directeur du CISQ (Consortium for IT Software Quality), cela va durer. Il affirmait en effet en 2013 “Il y a un langage qui présente un taux de sécurité supérieur à n’importe quel autre langage et c’est Cobol”. Les vieux systèmes Cobol sont plus sûrs et plus performants quand on les compare aux langages modernes tels que Java selon lui. En effet, Cobol est un langage très sécurisé car il utilise des mainframes moins exposés au web. C’est de plus un langage qui — grâce à sa longévité — a pu être perfectionné par des générations d’informaticiens du secteur bancaires mettant par conséquent la sécurité comme priorité. Et bien que Curtis admette : “Les programmes Cobol sont extrêmement complexes, la taille moyenne d’un module est de 600 lignes de code, alors que celle d’un composant Java est en moyenne de 30 lignes” il n’est pas envisageable pour lui de réécrire l’ensemble dans un autre langage. Selon certaines études, il faudrait environ 5 millions de développeurs, programmant pendant 65 ans pour redévelopper la globalité des programmes Cobol…

Puisque le langage est toujours utilisé, voyons comment programmer en COBOL

Tout d’abord parlons de la forme d’un programme COBOL (figure 2).

Structure d’un programme COBOL (figure 2). (Nous ne nous intéressons pas au code de ce programme.)

Le programme comporte toujours 4 divisions.

  • IDENTIFICATION DIVISION, qui contient les informations générales sur le programme, notamment son nom.
  • ENVIRONMENT DIVISION, dans laquelle est donnée l’environnement dans lequel le programme s’exécute.
  • DATA DIVISION, dans laquelle sont contenues les descriptions de variables ou de fichiers.
  • PROCEDURE DIVISION, dans laquelle les instructions sont effectuées.

Chaque division comporte des sections, elles-mêmes formées de paragraphes composés de phrases. Chaque phrase se termine par un point.

Maintenant, analysons un programme simple.

Programme simple en COBOL (figure 3)

Nous voyons dans l’ IDENTIFICATION DIVISION le nom du programme, l’ENVIRONMENT DIVISION nous indique l’environnement.

On voit aussi la phrase DISPLAY “Hello world!” LINE 15 POSITION 10. qui est l’instruction permettant d’écrire notre texte dans la console. L’information sur la position et la ligne permet d’indiquer où le texte doit être afficher sur l’écran.

Un langage verbeux qui continue d’être améliorer.

Pour beaucoup de programmeurs, COBOL est un langage rebutant car trop verbeux. En effet, une large proportion du langage COBOL sera des instructions GO TO, MOVE, PERFORM etc… D’un côté celà permet au langage d’être facilement appris, mais celà lui donne également une image de langage démodé. De plus les détracteurs de COBOL reprochent également au langage de n’avoir que des variables globales et donc partagé avec tout le programme. On reproche aussi au langage d’être mal optimisé car de nombreuses informations sont répétées. De ce fait, de moins en moins de programmeurs cherchent à apprendre le COBOL. Pourtant, de nombreuses évolutions ont été apportées au langage pour le rendre plus accessible notamment en l’an 2000. Des améliorations en terme de structuration des programmes ont par exemple été faites pour les rendre plus lisibles. Grâce à ces améliorations, il est désormais possible en COBOL de finir une boucle IF par END-IF et non pas simplement par un point.

Malheureusement, les programmes COBOL deviennent progressivement des antiquités…

Certains programmes datent des années 80 et ont subi d’innombrables couches de maintenance les rendant quasiment illisibles et difficiles à corriger. L’apprentissage du COBOL disparaît peu à peu bien qu’il reste un langage performant pour la gestion. Comme on peut le voir avec la figure 4, même à l’époque où est paru le cartoon — c’est-à-dire en 1997 — trouver un programmeur Cobol était déjà délicat… Et celà ne va pas en s’arrangeant puisqu’on estime que dans une dizaine d’années, l’ensemble des cobolistes actuel auront pris leur retraite et leur relève n’est pas assurée. La situation de COBOL est donc paradoxale puisque c’est un langage performant qui n’est plus appris bien que son nombre de lignes de code au fil des années ne diminuent pas ! Les années passent et une question demeure : Faut-il améliorer COBOL ou changer de langage de programmation ?

Cartoon de Scott Adams “Dilbert”(figure 4)

Sources :

https://fr.wikipedia.org/wiki/COBOL

https://www.tiobe.com/tiobe-index/cobol/

https://zestedesavoir.com/tutoriels/685/la-programmation-cobol/

https://www.lemondeinformatique.fr/actualites/ - “Les banques restent fidèles à Cobol, plus performant que Java” rédigé par IDG News service

http://wiki.c2.com/?WhyWeHateCobol

--

--