Agence web » Actualités du digital » Qu'est-ce que le COBOL et pourquoi tant d'institutions s'y fient-elles?

Qu'est-ce que le COBOL et pourquoi tant d'institutions s'y fient-elles?

Le gouverneur du New Jersey a récemment mentionné COBOL, un langage de programmation vieux de 60 ans. C'est quoi exactement? Et pourquoi est-il toujours la cheville ouvrière du monde financier, malgré le fait que peu de gens savent encore comment l'utiliser?

Les origines de COBOL

Grace Hopper était un phénomène. Elle a obtenu un doctorat en mathématiques de Yale, était professeur à Vassar et a quitté la marine américaine avec le grade de contre-amiral. Ses contributions au domaine de l'informatique peuvent être jugées par le nombre de fondations et de programmes qui ont été créés en sa mémoire. Le National Energy Research Scientific Computing Center a donné son nom à son supercalculateur Cray XE6. La Marine a également nommé son destroyer lance-missiles, l'USS Hopper, en son honneur. La devise du navire, «Aude et Effice» («Dare and Do»), pourrait bien avoir été inventée en pensant à Hopper.

Poussé à créer un langage de programmation plus proche de l'anglais que les ordinateurs à code machine ne le comprennent, Hopper a développé le premier compilateur. Cela a ouvert la porte aux premières langues compilées, comme FLOW-MATIC. Cela lui a valu un siège à la Conférence / Comité sur les langages des systèmes de données (CODASYL) de 1959.

Elle a également joué un rôle dans la spécification et le développement du Common Business-Oriented Language (COBOL). La première réunion a eu lieu le 23 juin 1959 et son rapport et la spécification du langage COBOL ont suivi en avril 1960.

COBOL était radical

COBOL contenait quelques concepts révolutionnaires. Sans doute, le plus important d'entre eux était la capacité à fonctionner sur du matériel produit par différents fabricants, ce qui était sans précédent à l'époque.

Le langage était élaboré et offrait un vocabulaire proche de l'anglais avec lequel les programmeurs pouvaient travailler. Il a été conçu pour gérer d'énormes volumes de données et être d'une précision mathématique exceptionnelle.

Son vocabulaire de mots réservés (les mots qui composent le langage) fonctionne à près de 400. Un programmeur enchaîne ces mots réservés afin qu'ils aient un sens syntaxique et créent un programme.

Tout programmeur familier avec d'autres langues vous dira que 400 est un nombre incroyable de mots réservés. À titre de comparaison, le langage C en a 32 et Python en a 33.

Une autre particularité de COBOL est son exigence stricte que certaines lignes de programme commencent dans certaines colonnes. C'est une gueule de bois du temps des cartes perforées. Aujourd'hui, les programmeurs ont plus de liberté lors du formatage de COBOL et n'ont plus à tout taper en majuscules. Cela rend le travail moins contraignant et criant, mais c'est toujours une création de son temps, comme indiqué ci-dessous:

IDENTIFICATION DIVISION.
      PROGRAM-ID. Hello-World.
      DATA DIVISION.
      FILE SECTION.
      WORKING-STORAGE SECTION.
      PROCEDURE DIVISION.
      MAIN-PROCEDURE.
           DISPLAY "Hello world, from How-To Geek!"
           STOP RUN.
      END PROGRAM Hello-World.

COBOL est un HIT

Aussi maladroit que cela puisse paraître aujourd'hui, COBOL était révolutionnaire lors de son lancement. Il a trouvé la faveur du secteur financier, du gouvernement fédéral et des grandes sociétés et organisations. Cela était dû à son évolutivité, ses capacités de traitement par lots et sa précision mathématique. Il a été installé dans les ordinateurs centraux du monde entier, a pris racine et s'est épanoui. Comme une mauvaise herbe tenace, elle ne mourra tout simplement pas.

Notre dépendance vis-à-vis des systèmes qui fonctionnent toujours sur COBOL est étonnante. Un rapport de Reuters en 2017 partageait les statistiques à couper le souffle suivantes:

  • Il y a 220 milliards de lignes de code COBOL encore en usage aujourd'hui.
  • COBOL est le fondement de 43% de tous les systèmes bancaires.
  • Les systèmes alimentés par COBOL gèrent 3 000 milliards de dollars de commerce quotidien.
  • COBOL gère 95% de tous les balayages de cartes ATM.
  • COBOL rend possible 80% de toutes les transactions par carte de crédit en personne.

Comme vous pouvez le voir, il est difficile de passer une journée sans utiliser un système qui dépend de COBOL. Les comptes bancaires et les services de compensation des chèques, ainsi que les infrastructures accessibles au public, comme les distributeurs automatiques de billets et les feux de circulation, fonctionnent toujours avec ce code écrit il y a des décennies.

COBOL est un problème

Les programmeurs qui connaissent COBOL sont soit à la retraite, pensant à la retraite, soit morts. Nous perdons régulièrement les personnes qui ont les compétences nécessaires pour maintenir ces systèmes vitaux opérationnels. Les nouveaux programmeurs plus jeunes ne connaissent pas COBOL. La plupart ne veulent pas non plus travailler sur des systèmes pour lesquels vous devez conserver l'ancien code ou écrire un nouveau code.

C'est un problème tel que Bill Hinshaw, un vétéran de COBOL, a été contraint de quitter sa retraite pour fonder COBOL Cowboys. Cette société de conseil privée s'adresse à des entreprises clientes désespérées qui ne peuvent trouver nulle part des codeurs avertis COBOL. Les «jeunes» des Cowboys COBOL (dont la devise est «Not Our First Rodeo») ont dans la cinquantaine. Ils croient que 90% des systèmes commerciaux Fortune 500 fonctionnent sur COBOL.

Bien sûr, les entreprises privées, les sociétés et les banques ne sont pas les seules à avoir besoin de chiffrer des quantités gigantesques de données financières. Les services des gouvernements fédéral, provinciaux et locaux ont les mêmes exigences. Comme tous les autres, ils utilisent pour cela des mainframes et COBOL.

L'effet terrible de la pandémie de coronavirus a provoqué des chagrins, des décès et des incertitudes économiques pour les propriétaires d'entreprise, les employés et les travailleurs indépendants. Le nombre considérable d'employés en congé et licenciés dans le New Jersey a conduit le gouverneur à faire appel à des programmeurs COBOL expérimentés pour venir en aide aux systèmes dorsaux vieillissants de l'État. Celles-ci s'efforcent de faire face aux 326 000 nouvelles inscriptions.

L'Open Mainframe Project gère une initiative bénévole pour aider. Si vous pensez que vous pourriez être en mesure d’aider, ils seront ravis de vous entendre.

Le New Jersey n'est pas seul dans cette situation. Plus de 10 millions de personnes se sont inscrites au chômage, et ce chiffre est en augmentation. Le Connecticut a du mal à traiter un quart de million de nouvelles inscriptions sur les systèmes de 40 ans de l'État.

Il s'agit d'un problème répandu et profondément ancré. Un rapport de 2016 du Government Accountability Office répertorie les systèmes COBOL fonctionnant sur des ordinateurs centraux jusqu'à 53 ans. Il s'agit notamment des systèmes utilisés pour traiter les données relatives au ministère des Anciens Combattants, au ministère de la Justice et à la Social Security Administration.

Pourquoi ne pas migrer et mettre à niveau, comme hier?

La mise à niveau de ces systèmes hérités n'est pas aussi simple qu'il y paraît. Les systèmes sont des points d'appui vitaux, 24 heures sur 24, 7 jours sur 7, sur lesquels pivotent les mondes financier, gouvernemental et commercial. Le code est ancien, multicouche et, souvent, peu ou pas documenté. Cela doit aussi fonctionner tout le temps. La perspective a été comparée au fait de retirer les hélices d'un avion et d'essayer de les équiper de moteurs à réaction – en vol.

Le risque mis à part, l'argument économique pour migrer vers des systèmes modernes est également difficile. L'argent qui a été injecté pour maintenir ces mainframes et applications COBOL opérationnels est incroyable. Les institutions devraient-elles tout jeter et recommencer pendant que ce code COBOL est toujours en cours d'exécution et fonctionnel? C'est un terrain difficile pour une planche qui n'est probablement pas particulièrement encline techniquement. Une migration COBOL ne sera ni bon marché ni rapide.

«Je viens de passer une conversion pour passer de COBOL à Java», a déclaré Hinshaw. «Cela leur a pris quatre ans, et ils n’ont toujours pas terminé.»

Lorsque la Commonwealth Bank of Australia a remplacé sa plate-forme COBOL de base en 2012, il a fallu cinq ans pour un coût final de 749,9 millions de dollars (1 milliard de dollars australiens).

Et c'est là que ça se passe comme prévu. La banque britannique TSB a été contrainte de migrer d'un système basé sur COBOL en 2018 en raison d'un rachat. Ça ne s'est pas bien passé. Parce que la banque n'a pas pu négocier pendant des jours, le coût de la migration s'est finalement élevé à 330 millions de livres. Cela s'ajoutait au coût budgété des travaux d'ingénierie pour la migration proprement dite. Le BST a également perdu 49,1 millions de livres à cause de la fraude financière alors que ses systèmes étaient en train de fondre.

L'indemnisation des clients a dépassé 125 millions de livres, et la banque a dû dépenser 122 millions de livres pour embaucher de nouveaux employés pour traiter les 204 000 plaintes de clients. Le PDG a démissionné et la société est toujours en train de réparer les dégâts deux ans après l'événement.

L'énigme COBOL

Les choses ne peuvent pas rester telles qu’elles sont, mais la perspective de faire quelque chose à ce sujet n’est guère attrayante. Néanmoins, la seule façon d'améliorer les choses est d'effectuer des migrations contrôlées et prudentes vers des logiciels et du matériel modernes.

Pour y parvenir sans interruption, la perte de données et les temps d'arrêt nécessiteront une expertise et de l'argent modernes, ce qui représente 50% de l'équation. L'autre moitié est l'expertise COBOL et le temps. Malheureusement, ce sont les deux ingrédients dont nous n'avons presque plus.

Peut-être qu'une nouvelle race de cow-boys COBOL montera en ville.