Extrait de l'émission CPU release Ex0116 : See you, Space Cobol.
Bonjour à toi, Enfant du Futur Immédiat, toi qui est en train de faire les très gros yeux sur les explications de ta banque pourquoi le chèque que tu as posé ne sera crédité que dans 4 jours ouvrés.
Aujourd'hui on va parler d'une épopée venue de l'Ouest et qui raconte la légende dorée d'un autre temps : une saga au temps de l'héroïque Ruée vers l'Or du gros mainframe d'entreprise. Je te parle d'un langage informatique ancien devenu culte et redouté.
Il ne fut pas le premier langage informatique évolué, ni le premier utilisant un langage plus humain que machine, et pourtant, il est considéré comme un dinosaure.
Cette émission doit-elle être pour autant sous le haut-patronage de nos amis de l'association de retrocomputing Silicium ? Après tout, Cobol est censé être mort et remplacé depuis avant l'An 2000. Oui, mais… Cobol a un acronyme peu flatteur : Completely Obsolete But Omnipresent Language
… ce qui veut bien dire qu'il est encore utilisé, et difficile à remplacer. Bon, sa réelle signification est COmmon Business Oriented Language
.
Avec son nom tout droit issu du folklore moyen-âgeux de Donjons & Dragons™, le kobold est un monstre de base. Pas super fort, mais super ennuyeux et pas d'une discussion passionnante.
Bizarrement, le Cobol est l'un des rares langages à ne pas être présenté sur l'excellent site learnxinyminutes.com où l'on peut apprendre les bases d'un langage informatique en un temps minimum.
Cobol est le premier langage sur lesquels les différents constructeurs d'ordinateurs de l'époque se soient mis d'accord. Même IBM ! C'était en 1959, et donc on avait un langage pour créer des applications de gestion portable entre les différents écosystèmes de constructeurs informatiques, une première ! Même si sa portabilité était relative.
Faut dire que les administrations américaines en avaient un peu marre de devoir tout ré-écrire parce que le ministère d'en face n'était pas équipe de la même marque d'ordinateurs centraux.
Enfant du Futur Immédiat, Cobol est devenu une référence jusque dans la culture populaire. Dans le cultissime film « 2001, l'Odyssée de l'Espace », on voit que HAL9000 a été programmé en Cobol aux lignes de code défilant en vue subjective quand il surgit du futur sous les traits d'Arnold Schwarzenegger. À moins que cela soit MS-Dos, je sais plus…
L'une des particularités du Cobol est la structure de son code source, utilisant des colonnes. En fait, le code source doit tenir dans 72 caractères par ligne, un héritage dû non pas aux premiers écrans mais aux cartes perforées. C'est toujours un standard pour des développeurs dans d'autres langages. Pourquoi ? Aucune raison valable. (Non, même pas la lisibilité, on a des éditeurs multiligne depuis des lustres).
Autre particularité, les premières lignes qui contiennent des métadonnées d'identification. La seule obligatoire étant IDENTIFICATION DIVISION
.
Cobol a une structure de langage très particulière et qui ne se retrouve pas dans des langages plus récents. Elle n'aide pas à porter un gros programme de son Cobol vers les langages de petits jeunes comme le C, le Java ou Go. Oui, des outils existent, heureusement, mais la force de l'habitude de la Direction ne va pas forcément dans ce sens… (direction
, sens
, vous l'avez ?)
Et du coup, on a un problème pour maintenir ces programmes qui sont écrit dans ce langage : celui de recruter des équipes informatiques capables de comprendre ce sabir, et de le maintenir.
Et la rareté, ça se paie. La pénibilité aussi, mais je n'irais pas jusque là, ça serait très méchant : j'ai vu du code dans des langages bien plus récents bien moins évident à comprendre.
Enfant du Futur Immédiat, les vieux cow-boys qui chevauchent des frameworks en Cobol ne sont pas morts, y'en a même de ton âge !
Texte : DaScritch
Illustration : Cobol icon, CC priyanka