mar, 15/11/2016 - 16:29
Indépendamment de la controverse portant sur la création d’un fichier TES étendu, la mention du langage COBOL au sein des débats en tant que langage obsolète est déconcertante. Elle atteste d’une dangereuse ignorance des nouvelles solutions COBOL qui existent en vue de moderniser un patrimoine informatique sensible tout en maitrisant les risques qui y sont associés.
Le 9 novembre dernier, lors d’un discours aux députés, le ministre de l’Intérieur Bernard Cazeneuve présentait la création d’un fichier TES étendu comme étroitement liée à un impératif de modernisation du système national de gestion des demandes de cartes d’identité en France. Parmi les motifs invoqués : la nécessité de remplacer ses applications obsolètes, rédigées en COBOL, par de nouvelles, au langage plus récent ; une information sitôt reprise par la presse web spécialisée, assortie de vigoureux qualificatifs anti-COBOL et ce, en toute méconnaissance des implications d’une telle méprise. Ces faits déconcertants exigent que l’on y apporte des précisions correctives.
Une méprise quant à la notion d’obsolescence
La qualification du COBOL de langage obsolète met à jour une conception erronée du ministre de l’Intérieur quant à l’effort, nécessaire, de modernisation du patrimoine informatique ; effort trop souvent limité au remplacement ponctuel des matériels et des programmes et effectué dans l’ignorance des nouvelles solutions COBOL existantes (par ailleurs moins coûteuses).
Il est essentiel de distinguer l’obsolescence d’une machine de celle d’un langage informatique : une unité centrale, à l’exception de ses upgrades, n’est qu’une machine dont les capacités, dix ans après son acquisition, demeurent identiques. Au regard des évolutions survenues pendant sa durée de vie, elle est bel et bien dépassée. Le COBOL est en revanche un langage de programmation qui, depuis sa création en 1959 par Grace Hopper, a connu une évolution rigoureuse afin d’assurer sa pertinence face aux avancées technologiques. Testé sur les plateformes les plus récentes, il reste capable d’y exécuter des applications d’importance vitale. Une machine peut être obsolète, le COBOL est, quant à lui, bien vivant.
Des risques démesurés
Encore massivement utilisé dans l’encodage d’applications historiques de gestion, c’est aujourd’hui le langage le plus largement déployé dans le monde. Il totalise plus de 200 milliards de lignes de code en activité et plusieurs milliards de nouvelles lignes sont développées chaque année. Comme son acronyme l’indique[1], il demeure l’un des meilleurs langages de programmation pour gérer les transactions commerciales d’envergure. Selon IBM, 82% des transactions financières dans le monde s’effectuent en COBOL, 60% des applications critiques sont également rédigées en COBOL. Les calculs nocturnes qui assurent le bon fonctionnement des établissements de bancassurance s’effectuent en COBOL. Ironie des enjeux de modernisation : l’application employée au calcul des quelques 138 milliards d’euros annuels de TVA que perçoit l’Etat français fonctionne en COBOL et fonctionne parfaitement. Tous les ministères s’appuient largement encore aujourd’hui sur de solides applications développées en COBOL. Le ministère de Bernard Cazeneuve n’y échappe pas.
Le COBOL est de par sa simplicité, totalement interopérable avec les solutions de l'industrie de pointe et convient de ce fait à des fonctionnalités critiques. Il est ainsi employé par le gouvernement américain dans la coordination de fonctions opérationnelles des forces nucléaires, déclarations d'impôts, d’éligibilité et de calcul de montants liés à la sécurité sociale, ... Plus décisif encore au regard des impératifs de sécurité mentionnés par Bernard Cazeneuve : le COBOL est sans virus ; il fonctionne sur des mainframes moins exposés au web, et a été perfectionné par des générations d’informaticiens du secteur bancaire, secteur au sein duquel la sécurité est l’impératif numéro un. Il reste en cela, de l’avis d’experts internationaux, supérieur à d’autres langages de programmation, plus sujets aux vulnérabilités. Le langage COBOL constitue un exemple de longévité assurée grâce à des ajustements successifs. Remplacer cet héritage phénoménal est virtuellement impossible et les risques que comporte une telle entreprise sont démesurés. Des études démontrent qu’il faudrait 5 millions de développeurs, programmant pendant 65 ans pour redévelopper notre patrimoine COBOL mondial actuel !
Le COBOL : une chance pour la démarche de modernisation de l’Etat français
On ne peut que regretter que le ministre ne s’appuie pas, lors des débats préalables à une prise de décision, sur les compétences de notre actuelle secrétaire d’État chargée du Numérique, laquelle aurait sans aucun doute rappelé, à juste titre, que de nombreuses applications de l’Etat français fonctionnent aujourd’hui en COBOL, sont parfaitement opérantes et continuent à remplir leur rôle, tout en évoluant au rythme des avancées technologiques.
Les programmes existants, longuement développés sont difficiles à remplacer sans mettre en péril les missions dont ils s’acquittent. Dans ce contexte, la quantité de lignes de code écrites en COBOL des programmes informatiques sur lesquels repose le système national de gestion des demandes de cartes d’identité actuel représente, plutôt qu’une « tare »[2], une véritable chance pour la France dans sa démarche d'amélioration permanente de ses systèmes d'information. En effet, le COBOL est non seulement le plus facile à lire et à maintenir des langages de programmation jamais conçus, mais il est également compatible avec des systèmes aux architectures modernes : web services, Cloud Computing, Big Data, IA, etc., bien loin de l’image de langage obsolète que lui prêtent les échos des débats parlementaires.
[1] Common Business Oriented Langage, https://fr.wikipedia.org/wiki/COBOL
A propos de l'auteur
Commentaires
Cobol, excellent langage, facile à relire, même 20 ans après...
Dommage que Microsoft, qui fit une tentative avec Microfocus en 1975, ne se soit pas interessé à ce langage, très supérieur au BASIC de Bill Gates...
Marié facilement par sous-programme à d'autres langages, il peut aujourd'hui rendre de grands services. Il lui manque aujourd'hui des interfaces utilisateur modernes, des accès à diverses bases de données (Acess et SQL Server) et des générateurs d'impression plus efficaces.
Microfocus, en le dénaturant avec .Net, en a fait un langage "hybride", complexe et peu explicite.
Un retour aux sources élégantes serait souhaitable.