Les systèmes bancaires, commerciaux et gouvernementaux du monde entier reposent sur un langage de programmation développé il y a plus d'un demi-siècle – mais moins de personnes que jamais savent comment l'utiliser aujourd'hui.
Conçu en 1959 par le Dr Grace Hopper et son équipe, COBOL a traversé le temps avec beaucoup de succès, avec plus de 220 milliards de lignes de code encore en usage aujourd'hui (et en comptant). Sans FORTRAN, inventé cinq ans plus tôt, COBOL détiendrait le titre du plus ancien langage de programmation actif au monde.
La beauté de COBOL, selon ses partisans, réside dans sa simplicité, sa stabilité et sa fiabilité, qui ont permis au code d'être adopté à grande échelle lors de sa première apparition sur la scène.
«COBOL a été créé avant qu'il y ait des ingénieurs ou des développeurs de logiciels tels que nous connaissons ces titres aujourd'hui», note Barry Baker, VP IBM Z Software. «Il utilise des mots anglais et a été conçu pour les utilisateurs professionnels. En tant que tel, il était facile à utiliser et à démarrer, mais aussi facile à lire, à modifier et à déboguer. »
Cependant, l'utilisation d'un langage de programmation vieux de plusieurs décennies – quelle que soit sa fiabilité – a aussi ses inconvénients. Les systèmes sont sans maintenance ni mise à niveau pendant des années de plus que prévu et le taux de désabonnement du personnel signifie que les développeurs d'origine sont probablement partis depuis longtemps.
Malgré son ancienneté (en particulier dans le contexte de la brève histoire de l'informatique), le langage continue de soutenir les systèmes critiques dans les secteurs public et privé, ce qui signifie que l'aggravation de la pénurie de compétences pourrait avoir des effets dévastateurs, universellement ressentis.
Sommaire
À quoi sert COBOL?
COBOL fonctionne principalement sur des ordinateurs centraux, sur lesquels les gouvernements et les grandes entreprises s'appuyaient historiquement pour des charges de travail à forte intensité de calcul telles que le traitement par lots, l'analyse de données et les fonctions de comptabilité à grande échelle.
Malgré l'émergence du cloud computing, le marché des mainframes est bel et bien vivant – ce qui signifie que COBOL est également vivant et dynamique.
Deux entreprises jouent un rôle démesuré dans l'entretien de COBOL et sont considérées par beaucoup comme les gardiennes de la langue: IBM et Micro Focus.
IBM domine le marché du mainframe avec l'IBM Z, qui est désormais interopérable avec le cloud depuis plusieurs années. Annoncée en septembre, la dernière itération (IBM z15) est conçue expressément pour prendre en charge les environnements cloud hybrides et est capable (avec l'aide de COBOL) de traiter un billion de transactions par jour.
Micro Focus, quant à lui, fournit des outils de développement et de modernisation spécifiques à COBOL aux organisations qui dépendent de la langue.
Idéalement adapté au traitement des enregistrements et à l'analyse de grands volumes de données, COBOL se trouve le plus souvent dans les secteurs de la finance, des télécommunications, de l'aviation et des soins de santé – ainsi que dans les systèmes gouvernementaux.
«Il s'agit d'un langage spécialement conçu pour être facile à utiliser pour encapsuler la logique métier de l'application et répondre aux exigences de traitement des transactions des systèmes d'infrastructure de base qui servent de nombreuses organisations opérant dans ces secteurs», a expliqué Bola Rotibi, directeur de la recherche pour les logiciels. Développement au cabinet d'analystes CCS Insight.
«Il existe très peu d'applications et de transactions financières dans le monde qui ne sont pas entièrement ou partiellement desservies par une application COBOL, même dans les opérations numériques d'aujourd'hui.»
En effet, selon chiffres de Reuters, 43% des systèmes bancaires américains sont basés sur COBOL, tandis que 80% des transactions en personne et 95% des interactions ATM reposent sur la langue.
Les ordinateurs centraux IBM Z, quant à eux, traitent environ 87% des transactions par carte de crédit, 8 billions de dollars de paiements et 4 milliards de vols de passagers chaque année, affirme IBM.
COBOL a également été répété à plusieurs reprises depuis sa création, ce qui, selon Baker, est «une mesure clé pour déterminer la vitalité d'une langue».
Les anciennes applications COBOL, par exemple, peuvent être facilement recompilées et exécutées dans le cloud ou dans des environnements établis tels que Linux et Windows.
Pourquoi COBOL n'est-il pas bon?
Il est vrai que COBOL n'aurait pas résisté à l'épreuve du temps s'il n'avait pas rempli un large éventail de fonctions – et les remplissait bien. Mais il a aussi ses limites.
«COBOL fonctionne bien pour ce pour quoi il a été conçu» est le refrain courant parmi ceux qui ont la connaissance la plus intime de la langue. En d'autres termes, le code est mal adapté à un certain nombre de cas d'utilisation modernes apparus après sa création.
Par exemple, conçu bien avant Internet, le langage n'est pas équipé pour faciliter le niveau d'interaction et de dynamisme requis par les applications mobiles et web.
Selon Baker, à mesure que de nouvelles charges de travail émergeaient, COBOL devait concéder sa position à des langages plus récents, tels que Python et Java.
"La popularité du langage de programmation monte et descend en raison de l'évolution des préférences des développeurs, de l'émergence de nouveaux styles de programmation (comme la programmation orientée objet) et de nouveaux types de charge de travail / calcul (comme le calcul haute performance, l'analyse et l'apprentissage automatique)", a-t-il déclaré.
Les langages de programmation modernes sont également plus serrés et plus efficaces que COBOL – une aubaine pour les développeurs travaillant sous la pression du temps
"[COBOL] a été et continue d'être verbeux », a déclaré Rotibi TechRadar Pro, "Ce qui signifie que beaucoup plus de lignes de code sont nécessaires pour exécuter une commande que les autres langages."
Même dans les scénarios où COBOL devrait prospérer, le long héritage de la langue s’est révélé problématique.
Au cours des derniers mois, des systèmes basés sur COBOL ont été trouvés incapable de suivre le nombre de demandes de chômage reçu par plusieurs États américains, alors que le chômage montait en flèche dans le pays à la suite de la pandémie de coronavirus.
Le manque de développeurs COBOL disponibles a contraint le gouverneur du New Jersey, Phil Murphy, à lancer un appel public à des volontaires capables de coder dans le langage vieux de plusieurs décennies. "Nous avons littéralement un système qui a plus de 40 ans", s'est-il plaint.
Le système mal optimisé et obsolète reposait sur le code COBOL écrit il y a des années et entraînait un retard important, et l'effet d'entraînement sur la vie des candidats était sans aucun doute significatif.
Adrian Keward, architecte principal des solutions de la société de logiciels open source Red Hat, estime que les organisations hésitent à se mêler de systèmes COBOL vieux de plusieurs années, en partie parce qu'ils ont toujours parfaitement fonctionné. Cependant, cela a conduit à une attitude dangereuse envers la maintenance et la rénovation du système.
"Beaucoup de [COBOL] le code est toujours utilisé, mais moins de gens le comprennent de nos jours. En conséquence, la langue a tendance à être laissée seule jusqu'à ce qu'elle devienne nécessaire », a-t-il expliqué.
"Comme la majorité du code COBOL n’a pas été touchée depuis de nombreuses années, les entreprises utilisent généralement l’approche" s’il n’est pas cassé, ne le corrigez pas "".
Pourquoi COBOL est-il passé de mode?
Parmi les développeurs qui connaissent encore COBOL, beaucoup se dirigent vers le crépuscule de leur carrière; seulement 11,5% ont moins de 35 ans, tandis que 18,8% ont 55 ans ou plus.
La popularité de la langue est sur une trajectoire descendante abrupte depuis environ 2002, passant du 5e langage de programmation le plus populaire au 33e, même s'il a certes connu une mini résurgence ces dernières années.
Alors, comment un langage utilisé si largement, pour un ensemble aussi vital de cas d'utilisation, pourrait-il jamais dériver vers l'obscurité?
Un certain nombre de facteurs sont en jeu, mais le plus important d'entre eux, le simple fait que COBOL n'était plus considéré comme sexy par les talents émergents en informatique. Dans une certaine mesure au moins, COBOL a été renversé de son perchoir par les vents changeants de préférence.
Selon John Pyke, PDG de la société de migration héritée CIMtrek, «l'informatique est une industrie de la mode, avec de nouveaux diplômés désireux de travailler sur la« prochaine grande chose ». Habituellement dans des langages tels que Java et C # – les applications produites étant très interactives et pilotées par API. »
Dépassées de la mode, les universités n'étaient pas non plus encouragées à organiser des cours COBOL. Cela a contribué à aggraver le problème, qui ne ferait que remonter la tête des années plus tard, lorsque la pénurie de compétences parmi les jeunes développeurs a commencé à se représenter dans la population active.
"COBOL a dérivé de la mode pour deux raisons", suggère Keward. «Premièrement, il y a un manque d'universités organisant des cours qui enseignent aux étudiants comment aborder et maîtriser COBOL. Deuxièmement, les progrès technologiques ont déplacé les opérations du mainframe vers le serveur client et le langage Java a gagné une traction notable. L'innovation l'emporte sur la stabilité. »
Dans le but de corriger le déséquilibre des compétences (et vraisemblablement de prolonger la vie de la langue dont ils bénéficient), IBM et Micro Focus ont lancé des initiatives de relance distinctes.
Invité par la pandémie, IBM a déployé un tout nouveau cours Conçu aussi bien pour les débutants que pour les professionnels nécessitant un recyclage COBOL. Il a également lancé une initiative visant à mettre en relation les programmeurs COBOL avec des employeurs potentiels.
Identifiant un ralentissement de l'expertise COBOL, Micro Focus a collaboré avec des entreprises et des universités pour établir Programme académique COBOL, qui offre un accès gratuit aux derniers outils pédagogiques.
La société accueille également un Groupe Facebook des programmeurs COBOL, avec environ 15 000 membres. "Les dinosaures, les programmeurs COBOL établis et nouveaux, et les autres esclaves du code sont tous les bienvenus", lit la page À propos – qui en dit plus sur la langue que peut-être n'importe qui en 2000 mots.
Qu'est-ce qui empêche les entreprises de quitter COBOL?
L'obstacle le plus important auquel sont confrontées les entreprises cherchant à réduire leur dépendance au COBOL est le volume de code en circulation. Le processus ne pose pas nécessairement un défi technique insurmontable, mais présente certainement un défi logistique.
Selon Pyke, l'ampleur de la situation pourrait être comparée au fiasco de l'an 2000, qui a vu les organisations se démener pour modifier leurs systèmes informatiques pour s'adapter à une année qui nécessitait une différenciation correcte de quatre chiffres (c'est-à-dire 2000, au lieu de 99).
"Réfléchissez 20 ans en arrière – le montant d'argent et les ressources consacrées à la réduction de l'impact de l'an 2000 devraient vous donner une idée de la tâche herculéenne de remplacer la dépendance au COBOL", a-t-il déclaré.
Le géant bancaire Capital One fait partie des grandes entreprises qui cherchent désespérément à minimiser leur dépendance vis-à-vis de la langue et subit actuellement le travail considérable nécessaire pour s'éloigner du mainframe.
«Le fonctionnement des mainframes n'est pas seulement plus cher que le cloud, les mainframes n'ont pas non plus la capacité de faire évoluer rapidement les fonctionnalités et ne permettent pas aux entreprises de tirer parti de l'open source», a déclaré Joseph Muratore, VP Technology chez Capital One.
«Nous travaillons activement pour moderniser nos dernières applications mainframe restantes afin de réduire et d'éliminer la dépendance de Capital One à l'égard de COBOL… De nombreuses entreprises sous-estiment la nature globale de ce type de transformation», a-t-il ajouté.
Dans le cas de Capital One, les sommes s'alignent de telle manière qu'il est logique de s'éloigner de COBOL et du mainframe, mais ce ne sera pas nécessairement le cas pour toutes les entreprises dépendantes de la langue.
«Dans la plupart des cas, une organisation a réalisé des investissements importants dans ses systèmes COBOL au fil du temps, notamment en développant des IP et des processus supplémentaires pour la prendre en charge», a déclaré Derek Britton, directeur de Micro Focus. TechRadar Pro.
«Ces systèmes centraux offrent de réels avantages et touchent généralement les données critiques de l'entreprise. Les arracher et recommencer à zéro peut donc dégrader le retour sur investissement de ces investissements et mettre en danger des revenus critiques (ou des économies de coûts / atténuation des risques). »
En fait, selon un récente enquête Micro Focus, une grande partie des entreprises n’ont pas l’intention d’abandonner complètement la langue – peut-être en raison de la gravité de la tâche ou des dépenses.
Plus des deux tiers (70%) des entreprises interrogées ont déclaré qu'elles privilégiaient la modernisation comme approche de mise en œuvre du changement, par opposition à l'extraction et au remplacement des applications COBOL clés.
Presque tous les répondants (92%), quant à eux, ont déclaré que COBOL reste d'une importance stratégique dans les nouveaux écosystèmes. Tout cela suggère que le deuxième langage de programmation le plus ancien au monde est là pour rester.
Pour les organisations dont la relation économique avec COBOL signifie qu'il est impossible de s'éloigner (et celles pour lesquelles la langue remplit encore parfaitement sa fonction), la seule solution au dilemme du déficit de compétences est un engagement à former le personnel et à répondre aux besoins de maintenance bien avant les systèmes. mauvais fonctionnement.
Sans ces mesures vitales, les organisations pourraient bien se retrouver avec une multitude d'applications critiques basées sur COBOL, mais sans personne pour les maintenir.