Qu’est-ce que COBOL et pourquoi tant d’institutions en dépendent?

Le gouverneur du New Jersey récemment mentionné COBOL, un langage de programmation vieux de 60 ans. Qu’est-ce que c’est exactement? Et pourquoi reste-t-il la cheville ouvrière du monde financier, alors que peu de gens savent encore l’utiliser?

Les origines de COBOL

Grace Hopper était un phénomène. Elle a obtenu un doctorat en mathématiques à Yale, était professeur à Vassar et a quitté l’US Navy 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 a été créé dans sa mémoire. le Centre national de calcul scientifique de la recherche énergétique nommé son Cray XE6 supercalculateur après elle. La Marine a également donné son nom à son destroyer lance-missiles, l’USS Hopper. La devise du navire, «Aude et Effice» («Oser et faire») pourrait bien avoir été inventée en pensant à Hopper.

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

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

COBOL était radical

COBOL contenait des concepts révolutionnaires. Le plus important d’entre eux était sans doute la possibilité de fonctionner sur du matériel produit par différents fabricants, ce qui était sans précédent à l’époque.

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

Son vocabulaire de mots réservés (les mots qui composent la langue) est proche 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 familiarisé avec d’autres langues vous dira que 400 est un nombre incroyable de mots réservés. À titre de comparaison, le Langage C a 32, et Python a 33.

  Comment éviter les builds Windows 10 Insider

Une autre particularité de COBOL est son exigence stricte que certaines lignes de programme commencent dans certaines colonnes. C’est une gueule de bois des jours de 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 son travail moins prescriptif et moins criard, 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 toptips.fr!"
           STOP RUN.
      END PROGRAM Hello-World.

COBOL est un HIT

Une femme à l'aide d'un guichet automatique en plein air.La plupart des transactions ATM utilisent encore COBOL.

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 entreprises et organisations. Cela était dû à son évolutivité, ses capacités de gestion des lots et sa précision mathématique. Il a été installé dans des mainframes du monde entier, a pris racine et a prospéré. 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. UNE rapport de Reuters en 2017 partagé les statistiques époustouflantes suivantes:

Il y a 220 milliards de lignes de code COBOL encore utilisées aujourd’hui.
COBOL est la base de 43% de tous les systèmes bancaires.
Les systèmes optimisés par COBOL gèrent 3 billions 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 de chèques, ainsi que les infrastructures destinées au public, comme les guichets automatiques et les feux de signalisation, 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 prendre leur 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 maintenir un code ancien ou en écrire un nouveau.

  Comment écrire sur plusieurs clés USB à la fois sous Linux avec Gnome MultiWriter

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

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

L’impact terrible de la pandémie de coronavirus a conduit à des déchirements, des décès et une incertitude économique pour les propriétaires d’entreprise, les employés et les travailleurs indépendants. Le grand nombre d’employés licenciés et licenciés dans le New Jersey a conduit le gouverneur fait appel aux programmeurs COBOL expérimentés venir en aide aux systèmes dorsaux vieillissants de l’État. Ceux-ci s’efforcent de faire face à la 326000 nouvelles inscriptions.

le Ouvrir le projet Mainframe mène une initiative bénévole pour aider. Si vous pensez pouvoir aider, ils seront ravis de vous entendre.

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

C’est un problème répandu et profondément ancré. UNE Rapport 2016 du Government Accountability Office répertorié les systèmes COBOL fonctionnant sur des mainframes 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 24h / 24 et 7j / 7 sur lesquels pivotent les mondes financier, gouvernemental et commercial. Le code est ancien, multicouche et, souvent, mal ou complètement non 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.

  Comment réparer la couleur d'affichage sur la barre des tâches grisée sur Windows 10

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 ordinateurs centraux et ces applications COBOL opérationnels est incroyable. Les institutions devraient-elles tout jeter et recommencer pendant que le code COBOL est toujours en cours d’exécution et fonctionnel? C’est un pas difficile pour une planche qui n’est probablement pas particulièrement techniquement inclinée. Une migration COBOL ne sera ni bon marché, ni rapide.

« Je viens juste de passer de COBOL à Java », a déclaré Hinshaw. «Cela leur a pris quatre ans, et ils ne sont toujours pas faits. »

Quand le La Commonwealth Bank of Australia a remplacé sa plateforme 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. Banque britannique, BST, a été contraint 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 été en mesure de 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 TSB a également perdu 49,1 millions de livres à cause de la fraude financière alors que ses systèmes s’effondraient.

L’indemnisation des clients a dépassé 125 millions de livres et la banque a dû dépenser 122 millions de livres pour embaucher du nouveau personnel pour traiter les 204 000 plaintes de clients. Le directeur général a démissionné et l’entreprise est toujours en train de nettoyer 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 n’est guère attrayante. Néanmoins, la seule façon dont les choses vont s’améliorer est de mener des migrations contrôlées et prudentes vers des logiciels et du matériel modernes.

Pour y parvenir sans interruption, perte de données et temps d’arrêt, il faudra une expertise moderne et de l’argent, ce qui représente 50% de l’équation. L’autre moitié est l’expertise et le temps COBOL. Malheureusement, ce sont les deux ingrédients dont nous manquons presque.

Peut-être qu’une nouvelle race de cowboys COBOL ira en ville.