Logo SilkHhom

Quel avenir pour le langage Cobol ?

Posté le 24 Avr 2018 dans Technologie par

On entends depuis des décennies que le langage Cobol est devenu un langage historique et obsolète, complètement dépassé. Son acronyme “Common Business Oriented Language” est d’ailleurs souvent détourné avec humour pour “Completely Obsolet Business Oriented Language”. Et pourtant plusieurs experts prédisaient déjà sa mort, et à plusieurs reprises, il y a de nombreuses années. Il est pourtant encore majoritairement utilisé dans le milieu bancaire, mais également dans la plupart des systèmes de gestion administratifs. Il y aurait même plus de lignes de code écrites en cobol que de lignes de code écrites dans n’importe quel autre langage ! Dans ce contexte, on peut alors se demander quel avenir peut avoir le Cobol, dans la mesure où sa popularité décroît fortement au fil du temps, alors que son utilisation et surtout sa demande reste encore massivement importante.


Le Cobol est bien vivant et à l’échelle mondiale

Face au peu de sujets présents sur le net concernant le langage Cobol, on pourrait croire qu’il est mort. Et pourtant, les chiffres parlent d’eux-mêmes : on estime à près de 310 milliards, le nombre de lignes de codes développées dans le monde et près de 220 milliards de lignes soit 71% du total, qui sont écrites en Cobol. Le volume des lignes écrites en Cobol augmenterait encore de 5 milliards chaque année. C’est donc tout simplement le langage le plus largement déployé dans le monde.

Un langage clair et précis où réside sa force

Il faut savoir que le Cobol n’a jamais vraiment été considéré comme un langage à la pointe de l’innovation. Sa seule véritable force réside dans sa capacité à décrire les choses très clairement et de manière précise. À l’époque de sa création en 1959 par Grace Hopper, son design était façonné de manière à ce que la base de son écriture se rapproche le plus possible de la langue anglaise naturelle. Il se lit et relit donc très facilement. Même sur les plateformes les plus récentes, il peut facilement y exécuter de grosses applications vitales, ou gérer des transactions commerciales d’envergure. Il y a quelques années de ça, IBM affirmait que 82% des transactions financières dans le monde s’effectuent en COBOL et 60% des applications critiques seraient également rédigées en Cobol. Les établissements bancaires, les assurances, le gouvernement français & son appliciation de calcul d’impôts annuels, fonctionnent tous en Cobol.

grace-hopper-cobolGrace Hopper, conceptrice du premier compilateur A-0 System et du langage Cobol, pensait que les ordinateurs seraient un jour largement utilisés et que Cobol contribuerait à les rendre plus conviviaux.

Cobol et sa compatibilité

La simplicité qui réside dans le langage Cobol lui confère aussi un autre atout : celui de l’interopérabilité (ou interfonctionnement) avec les solutions de l’industrie de pointe, c’est à dire que Cobol a la capacité de fonctionner avec d’autres systèmes informatiques sans aucune restriction d’accès ou de mise en oeuvre. Autrement dit le langage Cobol est compatible avec d’autres systèmes aux architecrure modernes tels que les webservices, Big Data, Cloud Computing, IA… ce qui lui confère une toute autre image que celle du langage obsolète. Pour exemple, le gouvernement américian utilise justement cette interopérabilité pour coordiner les fonctions opérationnelles des forces nucléaires, des déclarations d’impôts, d’éligibilité et de calculs de montants de sécurité sociale…

cobol-universal-databaseUn langage sécuritaire “irremplaçable”

S’ajoute à tout ça un facteur non négligeable : le Cobol est sans virus puisqu’il fonctionne sur des mainframes peu exposés au web. Il a d’ailleurs été perfectionné par plusieurs générations d’informaticiens du secteur bancaire, secteur dont la sécurité a toujours été la priorité absolue. Le langage Cobol est donc un exemple de longévité maintenue par des ajustements successifs au cours des années. Remplacer ce langage serait virtuellement impossible, et extrêment coûteux tant son implémentation historique est massive au niveau mondial. On estime à près de 5 millions de développeurs nécessaires, programmant en continue pendant 65 ans, pour modifier la donne et redevelopper tout le patrimoine Cobol. Rien que ça…

Cobol-progamming-languageUne concurrence historiquement forte avec l’apparition de nouveaux langages

Le langage Cobol a connu une résistance hors-norme au fil des années. À plusieurs reprises, il a tenu bon face à une concurrence très forte de nouveaux langages qui devaient restreindre progressivement la domination du Cobol. En effet, l’arrivée de plusieurs langages nouveaux est apparu comme une révolution technologique, à chaque fois laissant penser que la fin était proche pour le langage Cobol.

Cobol vs GAP
cobol-vs-rpg

Pour premier exemple, l’arrivée du langage GAP (Générateur Automatique de Programmes) ou RPG en anglais (Report Program Generator), qui est un langage de gestion beaucoup plus simple que Cobol. L’histoire du GAP commence avec les cartes perforées vers 1960 et sa synthaxe en colonnes en est liée. IBM en a fait la promotion sur tous ces matériels bas de gamme destinés aux PME. AInsi, beaucoup prédisait déjà que le Cobol deviendrait inutile face à ces avancées. Et pourtant aujourd’hui, il n’y presque aucun programme écrit en GAP

Cobol vs PL/1
cobol-vs-pl1

Peu de temps avant les années 70, IBM innove encore avec l’arrivée du PL/1 (Programming Language number 1, littéralement « Langage de programmation numéro 1 »). Il devait lui aussi faire oublier le langage Cobol par sa structure améliorée, et sa capacité à traiter aussi bien des problèmes de gestion que du calcul scientifique, parmi d’autres possiblités…mais il n’en fût rien. Plusieurs entreprises conseillées par IBM ont eu le courage de se lancer dans d’immenses opérations de réécritures de l’ensemble de leurs programmes. Sombre échec pour ces derniers puisque le PL/1 est aujourd’hui tombé aux oubliettes.

Cobol vs Pascal
cobol-vs-pascal

Une troisième révolution majeure apparaît avec l’arrivée du langage Pascal dans les années 70-80. Ce langage de programmation impératif avec une syntaxe claire et rigoureuse, facilitait la structuration des programmes. Un code intermédiaire était généré par un compilateur, qui était ensuite interprété par une machine virutelle. Ainsi, a vu le jour la fameuse portabilité des programmes. Le Pascal a connu un succès temporaire avant d’être remplacé par le Turbo-Pascal puis rapidemment dépassé par l’arrivée du langage C.

Cobol vs Basic
cobol-vs-basic

Le Basic de Microsoft aurait également pu remplacer le Cobol de par son extrême facilité d’utilisation et sa rapidité d’apprentissage. Une longue série de Basic ont été développé comme le Quik Basic ou le Visual Basic, utilisés par des millions de programmeurs dans le monde. Ce n’est que lorsque Microsoft pris la décision d’intégrer Basic dans son architecture .NET et de l’orienter objet pour obtenir Visual Basic.NET en 2001, que les problèmes commençèrent. En effet, l’arrivée de cette innovation a engendré une incompatibilité avec beaucoup d’anciens programmes, et il a fallu tout réécrire. Seulement le problème était simple : les programmeurs Basic ne disposaient pas des compétences adéquates pour utiliser cette toute nouvelle version de Basic. Ces derniers se sont donc tournés vers des langages plus simples à l’image du PHP. Le Cobol lui a donc survécu.

Cobol vs Java

cobol-vs-java

Aujourd’hui le plus grand concurrent du Cobol, c’est Java. Vous pouvez d’ailleurs consulter notre précédent article sur le langage Java et son histoire. Son succès réside dans sa portabilité et dans son intérprétation de code via la Java Virtual Machine. Ainsi avec le Java, n’importe quel code développé sur une machine donnée peut être repris sur n’importe quel autre système (« Write once, run everywhere »). Sa diffusion fut relativement rapide sur les postes de travails grâce notamment aux applets et aux servlets (côté serveur). Cependant Java connaît des limites qui ont assez vite soulevé de nombreuses questions. L’exécution du code Java est relativement plus lente que celui du code compilé et la gestion de la mémoire n’est pas extraodinaire. Autre limite : les coûts de développement des applications Java sont très élevés car cela néccesite des compétences fortes en développement donc de faire appel à des développeurs très experimentés. De plus, la création prends beaucoup de temps. S’ajoute à tout ça, une maintenance relativement longue donc coûteuse. Une entreprise IT nommé Cast Software avait d’ailleurs estimé qu’il est 4 fois plus coûteux de maintenir du code Java que du Cobol. Voilà pourquoi il n’était pas pertinent de remplacer des milliards de ligne de code en Cobol par du Java. Aujourd’hui, les choses ont pas mal changer mais le problème reste relativement le même. Il est nécessaire d’étudier scrupuleusement ce que représente les coûts de développement, de maintenance, et d’exploitation d’un projet en Cobol de celui en Java et de les comparer minutieusement. Cela reste bien sur du cas par cas mais on comprends assez rapidemment pourquoi le milieu bancaire ne tire peu d’intérêt à migrer sur du Java.

Le développeur Cobol est-il en voie de disparition ?

cobol-universityL’image “démodé” que renvoit le langage Cobol soulève le problème de sa non-attractivité envers les jeunes développeurs. En plus de ça, les développeurs Cobol actuellement en poste sont majoritairement seniors et se pose donc le problème de leur départ en retraite. L’étude de MicroFocus expliquait d’ailleurs en 2013, qu’il existait très peu de formations au Cobol. Sur 235 formations supérieurs en informatique recensées en France à l’époque, seulement 4 possédaient une formation Cobol, principalement des IUT. La plupart des étudiants sont formés sur des langages plus en vogue, et la tendance est d’apprendre Java au détriment du Cobol. Mais alors comment peut-on faire face à cette indifférence au langage le plus répandu dans le monde et répondre également aux demandes croissantes des entreprises ? Probablement en proposant déjà des meilleurs avantages profesionnels que ceux qui sont accordés actuellement aux développeurs Cobol, mais aussi et surtout en essayant de mieux promouvoir les formations au sein des universités et des écoles d’ingénieurs. Une chose est sûr, si vous développez en Cobol, vous avez une garantie de travail très élevée.


Source : Le Monde Informatique / ZDnet / Blog de Claude Salzman, consultant en système d’information

Crédit photo (heading) : John Wilhelm




Laissez un commentaire



Mais aussi...