
Si tous les serveurs exécutant COBOL dans le monde cessaient de fonctionner en même temps, la civilisation moderne s’effondrerait avant l’aube. Il s’agit d’une déclaration très forte, peut-être exagérée aux yeux de beaucoup, mais la réalité est que c’est exactement ce qui se passerait.
Imaginez-le un instant. Vous vous présentez à un distributeur automatique avec votre carte de débit et souhaitez retirer de l'argent, mais cela ne fonctionne pas. Vous souhaitez effectuer un paiement par carte via un point de vente bancaire, et cela ne fonctionne pas non plus. Vous allez à la banque pour vérifier votre compte, et il n’y a pas de système et tout est le chaos. Imaginez maintenant, la situation que vous vivez avec votre argent, qui arrive à tout le monde en même temps, même aux plateformes de paiement numérique comme PayPal ou Stripe, doivent cesser de fonctionner parce que leur connexion bancaire est interrompue à l'échelle mondiale.
Et non, ce n’est pas une hyperbole de science-fiction, c’est la réalité d’un langage de programmation né en 1959 qui, soixante-sept ans plus tard, continue de traiter le cœur financier de la planète. Car alors que les tendances technologiques naissent et meurent par cycles de quelques années, le COBOL (Common Business-Oriented Language) reste inchangé, tel un colosse en béton armé au milieu d’une forêt de gratte-ciel de verre, et personne n’a pu faire une brèche dans ses réalisations.
Mais comment en arriver là ? Eh bien, c'est l'histoire que nous voulons vous raconter ici.
La grande boîte grise
À la fin des années 1950, l’informatique était un archipel d’îles déconnectées. Chaque fabricant d'ordinateurs, IBM en tête, a conçu ses propres machines avec ses « propres langages de programmation ». Cela signifiait que si une entreprise changeait de matériel, elle devait réécrire tous ses logiciels à partir de zéro. Bien sûr, cette « programmation » ressemblait davantage à tisser des centaines de câbles pour modifier la logique de l’ordinateur et le programmer pour une certaine tâche. Un processus lent et complexe que seuls quelques privilégiés pouvaient réaliser. L'arrivée de la programmation par cartes perforées n'a pas beaucoup changé cette réalité, elle l'a simplement rendue un peu plus pratique.

Face à cette situation, le Pentagone, lassé de financer cette inefficacité, convoque en mai 1959 un comité d'experts au Baccalaureate Institute de l'Université de Pennsylvanie : le comité CODASYL (Conférence sur les langages des systèmes de données). Parmi les esprits brillants qui ont façonné cet effort se trouvait le capitaine de la marine américaine (et plus tard le contre-amiral) Grace Murray Hopper.
Même si elle n’a pas conçu COBOL seule, sa philosophie en était la pierre angulaire : la programmation ne doit pas être réservée aux purs mathématiciens qui écrivaient avec des symboles énigmatiques. Il devait se rapprocher de l’anglais standard. C'est elle qui a donné naissance aux langages de programmation écrits que l'on voit aujourd'hui dans le monde numérique, avec la création du compilateur A0 en 1952 puis avec B0 ou FLOW-MATIC développé en 1955. En comparaison, FORTRAN, développé par IBM, est le premier langage de haut niveau utilisé en production, datant de 1957.
Comment le Trésor enquête-t-il sur vous ? L'Espagne protège l'IA qui sélectionne les contribuables
De FLOW-MATIC à COBOL
FLOW-MATIC était clairement un langage de haut niveau. Vous avez écrit des instructions spécifiques en anglais, le compilateur les a prises et les a mises en langage machine afin que l'ordinateur puisse faire son travail. Voici un exemple de programme en FLOW-MATIC


Ces 18 lignes de code font une comparaison des stocks de produits (listes A et B) et les répartissent entre ceux qui ont un prix et ceux qui n'en ont pas. Une fonction de base pour la maintenance d'un entrepôt de produits, quelque chose de complexe à programmer sur ordinateur avec les moyens habituels, est résumée en 18 lignes que tout le monde peut lire.
Cependant, FLOW-MATIC avait des limites, Hopper en était conscient et c'est ce qu'il a proposé de changer dans CODASYL, et il y est parvenu. COBOL est né avec un objectif radicalement pragmatique : être un langage commercial, lisible et portable. Sa syntaxe n'utilisait pas d'abstractions mathématiques complexes, mais plutôt des verbes et des structures narratives (AJOUTER, SOUSTRAIT, MULTIPLIER, DÉPLACER, EFFECTUER). Son objectif était de permettre aux dirigeants d'entreprise de pouvoir au moins lire le flux de la logique interne de leurs systèmes. Le résultat fut un langage verbeux, direct et étonnamment efficace pour gérer des fichiers de données volumineux et des opérations arithmétiques d’une précision exacte.
L'évolution de COBOL et de ses champs de bataille
Mais qu’est-il arrivé à ce langage de programmation ? Pourquoi est-il si pertinent que personne ne semble l’utiliser maintenant ? Eh bien, il y a ici un peu de mythe et d’élitisme. D’un côté, la langue s’est consolidée comme moteur commercial de la planète, les entreprises et surtout les banques l’adoptant, mais de l’autre, l’académie formelle lui a déclaré la guerre. L'attaque la plus célèbre et la plus vicieuse est venue d'Edsger W. Dijkstra, pionnier de l'informatique et lauréat de Turing, qui a commenté :
L'utilisation de COBOL déforme l'esprit ; son enseignement devrait donc être considéré comme une infraction pénale.
Pour Dijkstra et les puristes de la programmation structurée, la syntaxe verbeuse de COBOL, son incapacité initiale à prendre en charge la récursion et, surtout, sa dépendance absolue à l'égard de la commande incontrôlée GO TO (qui sautait d'une ligne à l'autre, brisant la logique du code), ont abouti à un « code spaghetti » ingérable. Ils considéraient le langage comme étant intrinsèquement défectueux et incapable d’héberger une pensée mathématique claire.
Et ici, quelque chose doit être souligné : COBOL est un langage Turing incomplet, c'est-à-dire qu'il ne peut pas effectuer de calculs infinis. Chaque programme COBOL a un début et une fin, un état défini algorithmiquement, ce qui le rend très sécurisé. Il est intéressant de noter que Bitcoin et son script Bitcoin suivent également cette logique, en appliquant un langage Turing Incomplete.


Élitisme académique
Pour les universitaires, cela représentait un retard. Penser à des langages limités était absurde, ils voulaient des langages avancés, cela mènerait à l'IA et à la robotique avancée, ils voulaient le monde des Jetsons, et COBOL était une épine dans leur pied.
Mais malgré les piques académiques, l’industrie ne pouvait pas se permettre d’abandonner ce qui fonctionnait déjà. Ainsi, au lieu de mourir, COBOL a répondu en mûrissant. Au fil des décennies, il a assimilé chacune des grandes réformes du génie logiciel pour combler ses failles et s’adapter aux temps modernes. Oui, le COBOL des années 60 n’est pas le même que celui que nous voyons aujourd’hui, même s’ils conservent la compatibilité.
Logiciel libre : l'échafaudage invisible de la civilisation Internet
Une évolution linéaire
On a donc cette évolution linéaire :
- COBOL-68, l'ère de la Grande Unification. Voici la première norme officielle de l'ANSI. Il a consolidé les différentes variantes créées par les fabricants de matériel, réalisant pour la première fois dans l'industrie une véritable portabilité entre les machines de différentes marques.
- COBOL-74, l'arrivée des outils framework. Introduction des premiers concepts de conception modulaire et de gestion améliorée des fichiers. Le langage commençait à réagir aux courants théoriques de l’époque, même si GO TO continuait à dominer la scène.
- COBOL-85, la fin du Spaghetti Code. La véritable réponse structurelle aux critiques de Dijkstra. Il a introduit des terminateurs explicitement définis (tels que END-IF, END-READ, END-PERFORM), permettant d'imbriquer proprement les structures logiques et éliminant presque complètement le besoin d'utiliser des sauts de code inconditionnels.
- COBOL 2002, le saut aux objets. Un changement radical de paradigme. Il a rompu avec sa nature purement procédurale traditionnelle en ajoutant la prise en charge native de la programmation orientée objet (POO). A partir de ce standard, l'ancien moteur était capable d'encapsuler des données et des méthodes, facilitant ainsi son intégration avec les bibliothèques modernes.
- COBOL 2014 et 2023, vers le cloud et l'interopérabilité. Les révisions modernes ont ajouté la prise en charge native du traitement des formats d'échange de données globaux tels que XML et JSON. Les compilateurs actuels d'IBM, GCC ou Micro Focus permettent au code d'interagir avec les API REST, d'être déployé dans des conteneurs Docker et de s'exécuter dans des environnements de cloud public (AWS, Azure) optimisés pour les architectures x86 traditionnelles.
Le logiciel libre avant tout
Le plus curieux de tout est que l’écosystème COBOL (compilateurs) est majoritairement composé de logiciels libres. À l'exception des implémentations IBM et Micro Focus, le reste des implémentations est entièrement gratuit. Plus curieux encore, les extensions propriétaires d'IBM et de Micro Focus sont si bien documentées et accessibles que des options gratuites telles que GnuCOBOL et GCC COBOL (maintenant projets unis) peuvent les utiliser sans problème.
La révolution silencieuse : comment ARM remodèle l'avenir de l'informatique
En fait, GCC est la suite de compilateurs de logiciels libres la plus grande et la plus importante du secteur, a du soutien pour COBOL 2002, 2014 et 2023, offrant le plus grand support logiciel libre pour ce langage. Cela envoie un message puissant : COBOL n’est pas mort, il est toujours au cœur du monde financier et n’en sortira pas.
Les veines du système financier mondial
Et cela nous amène à la question suivante. Pourquoi les banques préféreraient-elles payer des salaires astronomiques à des développeurs seniors ou faire revenir des programmeurs à la retraite plutôt que de fermer leurs mainframes ? La réponse réside dans l'échelle de conception de COBOL : il a été conçu pour l'arithmétique décimale exacte. Contrairement aux langages modernes qui utilisent la virgule flottante binaire (ce qui peut introduire de subtiles erreurs d'arrondi dans des transactions financières d'un million de dollars), COBOL traite les nombres exactement comme les humains comptent l'argent.
Les chiffres suivants décrivent l'impact de COBOL sur le secteur financier actuel :
- 95 % est le pourcentage de transactions par carte de crédit dans le monde qui passent, à un moment donné de leur processus d'autorisation, par un code écrit en COBOL.
- 80% des transactions commerciales en face à face dans le monde dépendent directement de cette langue.
- Au moins 3 000 milliards de dollars représente le volume approximatif de transactions quotidiennes gérées en toute sécurité par les systèmes COBOL à l’échelle mondiale.
- On estime qu'il y a plus de deux cents milliards de lignes de code COBOL actives en production dans les infrastructures critiques mondiales, dépassant la quantité de code écrit dans de nombreux langages tendance combinés pour les systèmes critiques.
C'est le monstre du COBOL, rival depuis plus de 60 ans, que des langages comme C/C++, JAVA, pas même Rust, sauront vaincre.
Et COBOL est le témoignage vivant de la résilience dans le génie logiciel. Ce n'est pas un langage obsolète ; Il s'agit d'une infrastructure de base, l'équivalent numérique des canalisations d'eau ou des tunnels de métro d'une mégapole. Alors que le monde célèbre l'arrivée de l'intelligence artificielle conversationnelle et des architectures cloud éphémères, dans les sous-sols numériques de la planète se trouve un verbe PERFORM écrit il y a un demi-siècle et qui vient d'être exécuté avec succès un million de fois dans la dernière seconde. Et il continuera à le faire demain, sans se plaindre, sans faillir.
Voir l’article original en espagnol
