Developpez.com - DI/DSI Solutions d'entreprise

Le Club des Développeurs et IT Pro

Ces vieux langages de programmation sont toujours indispensables aux grandes entreprises, mais personne ne veut les apprendre :

Le Cobol fait partie des plus demandés et des mieux payés en France

Le 2021-07-02 06:28:45, par Patrick Ruiz, Chroniqueur Actualités
Les grandes entreprises s'appuient encore sur de vieux langages de programmation pour faire fonctionner leurs ordinateurs centraux. Retraite oblige, les développeurs en charge de la mise sur pied de systèmes informatiques à partir de ces derniers se font de plus en plus rares. Les nouvelles recrues plus axées sur tout ce qui tourne autour du cloud sont réticentes à reprendre les anciennes compétences. Résultat : de vieux langages de programmation comme le Cobol se retrouvent parmi les plus demandés (et les mieux payés) par les grandes entreprises.

Les grandes entreprises sont confrontées à une pénurie urgente de compétences, car les développeurs plus âgés emportent leur expertise avec eux dans leur retraite. C’est ce qui ressort d’un récent sondage (portant sur des entreprises en Europe et aux États-Unis) selon lequel près de 9 grandes entreprises sur 10 (89 %) s'inquiètent de la pénurie de personnel informatique ayant les compétences nécessaires pour maintenir et gérer leurs ordinateurs centraux. Ces systèmes s’appuient sur de vieux langages de programmation comme le Cobol ou l’assembleur. Dans les chiffres, 75 % des entreprises participantes au sondage pointent le langage Cobol comme le plus important dans leur parc d’ordinateurs centraux. L’assembleur suit de près avec 66 %.



Ce sondage fait suite à la parution de l’édition 2020 de la traditionnelle étude Emploi développeur sur développez.com qui liste les langages les plus demandés et les mieux payés. Le Cobol pointe à la dixième place des langages les plus populaires dans la liste des offres d’emploi sur la plateforme. De plus, il fait partie de ceux classés « correctement payés » tant à Paris qu’en province.



À plus de 60 ans, le langage de programmation Cobol est encore utilisé dans de nombreuses organisations. La conséquence est que celles-ci souffrent d'un manque de programmeurs. Elles doivent également fournir de grands efforts de reprogrammation, même pour les plus petits changements, comme c'est le cas dans certains États américains avec leurs systèmes informatiques de chômage.

Avec la crise sanitaire de la COVID-19, les États-Unis ont mis en place un plan de relance pour soutenir les personnes ayant perdu leur emploi durant la pandémie. Ce plan nécessitait pour chaque État d'implémenter des changements dans leurs systèmes informatiques de chômage. Plus un État prenait du temps, plus les personnes qui ont été mises au chômage à cause du coronavirus devront attendre avant de bénéficier de l'aide du gouvernement.

Certains États ont eu des difficultés particulières à implémenter les changements requis simplement à cause du langage dans lequel leurs systèmes sont écrits : Cobol. En dehors l'Iowa qui avait suffisamment de développeurs Cobol, les autres États ont été confrontés à des difficultés importantes. Lorsqu'ils ont eu besoin de programmeurs pour mettre à jour leur « vieux code Cobol que personne n'a touché en 20 ans », cela est devenu un problème. « Ils ont réalisé que tous leurs programmeurs Cobol avaient pris leur retraite ou étaient décédés », a déclaré Dennis Brylow, professeur d'informatique à l'Université Marquette. Dans le même temps, de nombreuses universités n'enseignent plus le langage Cobol de manière approfondie, voire pas du tout, ce qui se traduit par très peu de nouveaux programmeurs Cobol.

Et même quand il y a les hommes qu'il faut, les problèmes avec Cobol ne sont pas encore terminés. Certains États ont essayé de moderniser leurs systèmes et se sont heurtés à des obstacles. Il s'agissait précisément de coûts de développement et de retards particulièrement élevés. Comme l'explique Brylow, le passage complet d'un système Cobol à un autre langage de programmation est loin d'être une solution parfaite. « Quand vous voyez quelque chose qui n'a besoin que de quelques ajustements et que c'est un gros système qu'ils ont passé des années à construire, c'est une dépense énorme et c'est en fait assez dangereux d'essayer de le réimplémenter totalement dans un nouveau langage de programmation », a-t-il déclaré.

S'il est vieux et dit dépassé, Cobol est étonnamment encore présent, notamment dans le secteur des banques et services financiers où il serait d'ailleurs le plus utilisé. Quelle en est la raison ?

Source : Advanced (fichier joint)

Et vous ?

Ces statistiques collent-elles avec la réalité dont vous êtes au fait ?
Pourquoi Cobol est-il encore populaire aujourd'hui dans le secteur des finances ?
Qu'est-ce qui empêche les entreprises de ce secteur de passer à des technologies plus modernes ?

Voir aussi :

Êtes-vous un développeur COBOL ? Si oui, il pourrait y avoir encore des opportunités pour vous dans le domaine de la finance
Micro Focus annonce la sortie de Visual COBOL pour Visual Studio 2017 qui offre aux développeurs COBOL la possibilité de coder avec l'EDI
Jean E. Sammet, une informaticienne qui a participé au développement de COBOL, est morte à l'âge de 89 ans
  Discussion forum
51 commentaires
  • Envoyé par jacjac
    Ce qui devrait être indispensable pour ces entreprises, c'est d'avoir l'idée de se séparer des dinosaures qui ne veulent pas se sortir les doigts et migrer vers une techno plus récente...
    Le Cobol est utilisé pour le code spécialisé, genre calculer des taux dans quelque opération financière complexe.

    Le risque à migrer dans une techno plus récente est de remplacer un code qui marche par un qui fait des erreurs de calcul.

    La difficulté à migrer un code Cobol est aussi lié aux mauvaises pratiques d'antan : nom de variables cryptiques, code spaghetti a base de Goto, pas de documentation ni de commentaires, etc... On se contente donc de patcher les programmes existants pour l'adapter aux nouveaux usages. Ceux qui ont une compréhension globale du code sont depuis longtemps à la retraite, voire morts et enterrés.
  • Pour faire un parallèle avec le Cobol, les pétroliers offrent de très bons salaires aux jeunes diplômés, et la convention collective des raffineries pétrolières est une des plus avantageuses de France.

    Est-ce pour autant une bonne idée d'entamer sa carrière dans le raffinage du pétrole quand on est jeune ingénieur ? Au vu de la transition énergétique en cours, je ne pense pas.
  • commandantFred
    Membre averti
    J'ai participé jadis à un projet de migration de gros software AS400 vers PC - VS - Oracle, voici mon vécu :
    La ssii retenue pour ce projet a embauché tous ses intercontrats peu expérimentés en leur donnant quelques mois pour se former
    Ce faisant, les schemas BDD ont été créés par des gens dont ce n'était pas la spécialité. Ceux ci ont cru bon de stocker les flat text dans de grands varchar. Autrement dit, la data historique a été grossièrement copiée dans le format Oracle qui ressemble le plus à du texte brut.
    Dans tout l'étage de 150 personnes, j'étais le seul à bien connaitre VS. Au début, tout le monde m'a posé des questions, puis, les collègues se sont méfiés, ont contesté des choses basiques et simples...

    On m'a alors confié des taches réputées difficiles (gestion des droits, ...) sans rapport avec les données converties de l'AS400 qui commençaient à poser des problèmes insurmontables :
    clauses WHERE <champ> LIKE %<searchvalue>%
    indexes inutilisables
    utilisations de clés composées de plusieurs champs métier
    etc...

    Les chefs projet ne comprenaient rien à ce qui se passait

    l'atmosphère devenait lourde, j'ai trouvé une autre mission et j'ai quitté le plus vite possible
    Je suis retourné voir les gens un mois plus tard. Mon code d'administration fonctionnait bien. Hélas, la base était en perdition, tout le monde semblait désabusé

    Peu après, le projet a perdu ses financement après des centaines de millions investis en pure perte, les AS400 sont toujours en usage et la migration a été enterrée.

    La migration est un problème de qualité, qualité du projet, qualité du personnel, qualité du management. Franchement, je ne crois pas qu'il y ait une recette miracle, surtout pas en recrutant des sur-diplômés à qui on signe un chèque en blanc...

    Il faut un comité de pilotage qui travaille très en amont, bien avant de poser les premières lignes d'analyse. puis, recruter des freelances un à un pour leur compétence et leur compréhension du problème.
  • JPLAROCHE
    Membre expérimenté
    les Langages comme Cobol / RPGILE ...

    sont des langages pour la gestion d'entreprise sans aucune commune mesure, il n'y a qu'a comparer le nbr de lignes fait par exemple en RPG et un programme c/c++ 50 fois moins...
    je vous defis de faire une facturation en 400 lignes (et je suis large) en c/c++ c'est possible en RPGILE , toute l'informatique n'est pas sur PC.

    Comparer le Cobol / Rpgile avec les langages C/C++ est une abération. Mais cela peut être complémentaire... j'ai fait des outils system en C sur Ipower (AS400) mais aucune comparaison avec de la gestion. J'ai testé la faisabilité de programmer en C (et encore avec des outils me simplifiant la gestioon écran) bref la maintenance et le nombre de ligne là ou il n'en faut 2 ou 3 lignes......

    j'ai même abordé, en fait j'ai monté de faire sur pc le principe de gestion de base de donnée pour simplifié ROO type DDS AS400 (relation objet objet la zone est un objet l'enrg est un objet ........) cela n'empèche pas qu'il faut un paquet de ligne ...... c'est vrai ça a diminué mais pas au point de ratraper RPGILE /Cobol et encore je ne parle pas du COBOL-ILE

    sur un AS400 un millons de ligne pour gèrer une grosse entreprise temps de recompilation 2 heures du devis production à la facturation en passant par tout ce que l'on peut imaginer comme analyse..... et communication web y compris communication avec les machines de production etc.... pour dire que j'ai souvent rongé mon OS sur le fait de dire peut on faire autrement.

    poutant je suis passé à la retraite( dommage j'aurai aimé appliquer en entreprise) la programmation NIM-Langue
  • TotoParis
    Membre expérimenté
    Envoyé par abriotde
    Il n'y a aucun intérêt à apprendre le COBOL:
    1) C'est un langage qui paye pas bien (moyenne basse) et il est très inconfortable.
    2) C'est un langage qui ne permet pas le télétravail et qui permet seulement de travailler à Paris ou dans des très grande ville ou le prix de la vie est élevé.
    3) Dans 10 ou 20 ans quand les applis seront migrés il sera impossible pour quelqu'un maîtrisant le COBOL de se former vers un langage informatique autre, il y a un trop grand fossé.
    4) Ce n'est pas un langage qui permet de bidouiller dans son coin un projet personnel (pour le fun, ou pour un complément).

    Le seul espoir pour les banques/assurances, c'est de former de vieux développeurs assez habitué au bas niveau mais un peu has-been avec les nouvelle technos.
    1) Oui, c'est pas cher payé, c'est ni fun ni sexy en plus. Enfin surtout, il manque des outils d'un prix abordable (Microfocus propose un IDE basé sur Eclipse, je ne connais pas le prix; IBM propose aussi son IDE RDZ, mais là le prix est parait-il assez costaud).

    2) Je suis en télétravail depuis la guerre contre le virus chinois, en COBOL (Z/OS, UNIX). Sortez de votre bulle : l'époque des terminaux 3270 est révolue, on utilise des émulateurs comme Relfexion, Quick3270, etc...

    3) C'est tout à fait exact. Quant à voir tout migrer...

    4) Oui, mais qui voudrait se faire un truc fun avec OPEN INPUT, READ, RITE, CLOSE, PERFORM, CALL, IF THEN ELSE, COMPUTE, etc ???
  • Kulvar
    Membre éclairé
    Pourquoi Cobol est-il encore populaire aujourd'hui dans le secteur des finances ?
    Qu'est-ce qui empêche les entreprises de ce secteur de passer à des technologies plus modernes ?

    Parce que les entreprises et administration ne veulent pas payer pour refaire les systèmes en place sur des technologies plus récentes comme C++ ou Rust.

    COBOL => 1959
    C => 1972
    C++ => 1985

    Et le titre est faux, les vieux langages ne sont pas indispensable.

    Ce qui est indispensable, c'est que les entreprises et administration se préparent à faire la transition avant que plus personne avec l'expérience de l'ancien système ne soit là pour soutenir la création du nouveau.
  • Uther
    Expert éminent sénior
    Envoyé par jacjac
    Ce qui devrait être indispensable pour ces entreprises, c'est d'avoir l'idée de se séparer des dinosaures qui ne veulent pas se sortir les doigts et migrer vers une techno plus récente...
    C'est pas une question de personnes arcboutées sur leur vieille technologies. Beaucoup de gens souhaiteraient en sortir, mais dans la pratique on ne remplace facilement une machinerie lourde et complexe mais qui fonctionne bien surtout quand on a pas vraiment le droit a l'erreur vu que les applications COBOL portent souvent sur le traitement d'opérations financières.

    Envoyé par Kulvar
    Pourquoi Cobol est-il encore populaire aujourd'hui dans le secteur des finances ?
    Qu'est-ce qui empêche les entreprises de ce secteur de passer à des technologies plus modernes ?

    Parce que les entreprises et administration ne veulent pas payer pour refaire les systèmes en place sur des technologies plus récentes comme C++ ou Rust.
    Rust et même C ++ ne sont pas vraiment des choix vraiment logiques pour remplacer COBOL. Ce sont des langages système avec des problématiques inutile pour de la finance. Avec des effort et de bonnes bibliothèques, on doit pouvoir leur faire faire de la comptabilité de manière correcte, mais c'est clairement pas leur domaine de prédilection.

    Envoyé par scandinave
    Je vois aussi un autre soucis. Le COBOL et autre joyeuseté de ce genre permettant un accès très bas niveau, donc une optimisation importante des performances. Sur des systèmes, comme ceux des banques, cela est très important. De ce fait, remplacer cela par des langages comme Java, Python, Javascript ( pour lequel le pool de développeur est plus important) est hors de question. Reste donc le C/C++ qui est quand même assez casse gueule ( Fuite mémoire, pointeur etc ... ) , surtout si on à pas les specs du système antérieur ou alors le RUST qui à mon avis est ce qui devrait logiquement remplacer le COBOL. Mais un développeur RUST chevronné, ça doit couter aussi chère qu'un développeur COBOL
    C'est totalement le contraire. De ce que j'ai vu du COBOL, il n'est absolument pas orienté vers le bas niveau. Et dans le domaine de la comptabilité, à part pour du trading haute fréquence, on a rarement besoin de tirer le maximum des performances de la machine en terme de puissance de calcul, même si a les règles de gestion peuvent être complexe.

    Le python ou le Java sont bien plus recommandés que le C++ ou Rust si on veut remplacer du COBOL . Quand on manipule des données financières, on ne veut pas être emmerdé par des considérations bas niveau comme la gestion de la mémoire.
  • ji_louis
    Membre régulier
    Pour avoir fait de la transposition du COBOL vers java durant des années, je peux dire que la plupart des commentaires précédents sont justes.

    COBOL est un langage ancien qui a les avantages et inconvénients de son époque: C'est un langage impératif très simple et très efficace (la compilation transforme le code en langage machine, il n'y a pas plus rapide). Mais il faut gérer "à la main" les espaces de mémoire destinés aux variable (tout programme est en 3 parties: déclaration des ressources [lecteurs de fichiers, bases de données, écrans, imprimantes, réseau, etc.], puis déclaration des variables et des structures de données [variables de boucles, lignes de fichiers plats, tupples de tables de Bdd, etc.], puis le code qui effectue les tâches demandées) et une valeur peut être interprétée à la fois comme du texte et comme un nombre par deux variables simultanées, il faut donc faire attention à ce qu'on fait. La taille des variables est définie individuellement, on peut définir un nombre avec une précision arbitraire, par exemple avec 20 chiffres avant et 100 après la virgule.

    La longueur de la compilation (réel problème pour la maintenance quotidienne) est davantage due au matériel utilisé qu'au langage lui-même. Il existe des version de COBOL pour PC (entre autre par Microsoft).

    La transition du COBOL vers des technologies plus récentes implique de TOUT remettre en cause:
    - architecture matérielle (passer du mainframe aux serveurs distribués, au web, aux PC, etc.)
    - architecture logicielle (passer des fichiers plats aux bases de données relationnelles ou non-relationnelles, de données source unique à des ressources distribuées)
    - langages utilisés
    Cela impacte l'organisation de l'entreprise, ses buts (c'est l'occasion d'abandonner des tâches ou de s'en fixer de nouvelles); la tâche est tellement importante qu'il faut un volontarisme fort et continu de la direction, tout simplement parce que cela implique une redéfinition complète du travail de l'entreprise ou de l'administration, et c'est ça la partie la plus difficile du projet.
    Une fois les possibilités étudiées, les buts définis et les budgets débloqués, le projet et sur les rails. Si il y a ne serait-ce qu'un peu de flou dans la phrase qui précède alors le projet part au crash.

    Finalement, la transition du COBOL vers autre chose est un projet transformant l'entreprise, qui ressort non pas de la responsabilité du DSI mais de la direction générale. C'est l'occasion de transformer Amazon d'une épicerie de quartier en géant mondial du commerce en ligne (pour illustrer le niveau de responsabilité des décision à prendre).
  • Matthieu Vergne
    Expert éminent
    Quand on investit dans du matériel, on prend en compte son renouvellement : on établit un budget qui prévoit le remplacement des machines qui tombent en rade par exemple. C'est pareil avec les technos, il faut prévoir leur remplacement. Et cela se fait autant au niveau budgétaire que technique : on démarre avec un système legacy qui fonctionne, on commence par le refactorer (si besoin) pour pouvoir l'utiliser en parallèle avec un autre système, si pas faisable on le planque derrière un "proxy" (le design pattern, pas le dispositif réseau) qui se chargera d'utiliser l'ancien ou le nouveau système, puis on commence à développer le nouveau système, à transférer progressivement les responsabilités de l'ancien vers le nouveau, jusqu'au jour où le nouveau peut faire l'intégralité du job, jour où l'ancien système peut être éteint (et le proxy retiré si plus besoin).

    Ce sont des périodes transitoires à prévoir dans le cycle de développement des application à longues durées de vie. Et quand on le fait correctement, on le fait en créant un système facilement remplaçable.

    En pratique, la plupart s'en foutent et se focalisent sur le court terme. Qu'ils ne viennent pas pleurer après, ils on fait leur choix.

    Les gens qui postulent à ce genre de job ont je pense 2 perspectives :
    - ils le font dans le but de comprendre le legacy pour le réimplémenter et le remplacer : ces gens là sont des champions et méritent leurs salaires.
    - ils le font dans le but de maintenir le legacy : ces gens là sont des parasites qui font valoir leur rareté pour se faire richement payer mais ne règlent pas le problème de fond.
  • TotoParis
    Membre expérimenté
    Envoyé par Jeff_67
    Pour faire un parallèle avec le Cobol, les pétroliers offrent de très bons salaires aux jeunes diplômés, et la convention collective des raffineries pétrolières est une des plus avantageuses de France.

    Est-ce pour autant une bonne idée d'entamer sa carrière dans le raffinage du pétrole quand on est jeune ingénieur ? Au vu de la transition énergétique en cours, je ne pense pas.
    Sans doute, mais pour le COBOL, il reste des centaines de millions de lignes de code qui tournent partout dans le monde.