Êtes-vous un développeur COBOL ? Si oui, il pourrait y avoir encore des opportunités pour vous
Dans le domaine de la finance

Le , par Bill Fassinou

41PARTAGES

20  0 
COBOL, pour COmmon Business Oriented Language, est un langage de programmation conçu vers la fin des années 50 pour la programmation d'applications de gestion. Vu l’âge de ce langage, on serait en droit de penser qu’il est tombé en désuétude et que des technologies plus récentes ont pris sa place. Ce n’est pourtant pas le cas. COBOL est encore largement utilisé. Mieux, il reste le langage le plus utilisé dans le secteur des services financiers à travers le monde.

De plus, le langage semble bien parti pour être là encore longtemps, puisque pour les banques, changer tous leurs mainframes est une entreprise compliquée et coûteuse. Même une transition vers de nouveaux systèmes prendrait probablement plusieurs années. Et surtout, pourquoi penser à changer un système qui marche ? Chaque jour, des millions de transactions bancaires et des mainframes sont gérés par un logiciel programmé en COBOL.


Cependant, les experts en COBOL sont pour la plupart vieux ou vieillissants. Le langage n’est pas suffisamment populaire auprès des jeunes programmeurs. Les détracteurs du langage condamnent son manque de polyvalence. De plus, les jeunes développeurs ne sont pas très enclins à se servir d’un langage de programmation utilisé pour les mainframes alors que le cloud computing exerce une domination sans partage sur notre ère.

Ce qu’il faut cependant retenir, c’est que la sécurité que procure la conservation de COBOL aux grandes banques est la principale raison pour laquelle le système ne disparaîtra peut-être pas de sitôt. John Schlesinger, architecte en chef de Temenos, une entreprise qui vend des logiciels aux banques, déclare que « bien que de petites banques aient réussi à éliminer leurs anciens systèmes, aucune grande banque n’a osé le faire » parce que « le coût d'une révision majeure et le risque d'une mise à niveau bâclée laissant les clients sans accès à leurs comptes bancaires sont trop élevés ».

Toutefois, ce n’est pas comme si COBOL ne coûtait rien aux banques. Des estimations de l’entreprise de recherche Celent portent le montant total que les banques devraient dépenser en technologie cette année à 261 milliards de dollars. 67 % de cette somme faramineuse seront intégralement consacrés à l’entretien des vieux systèmes. Et il peut s’avérer bien plus coûteux d’essayer de superposer les nouvelles technologies de pointe à ces systèmes d’une autre ère.

Ne manquant que rarement à l’appel, les internautes se sont empressés d’opiner sur ce langage. Pour eux, il ne s’agit pas de langage ou encore de difficulté de superposition de technologie de deux ères différentes. Pour eux, il s’agit juste des banques qui ne veulent pas mettre la main à la poche pour payer des programmeurs compétents.

Source : The Wall Street Journal

Et vous ?

Qu’en pensez-vous ?
Quel est votre avis sur Cobol ?
Cobol a-t-il encore de l'avenir selon vous ? Pourquoi ?

Voir aussi

La Rubrique Programmation, Forum Cobol

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

Node.cobol / Node.fortran : exécuter du code COBOL et Fortran dans Node.js et inversement grâce à ces bibliothèques

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Derf59
Membre habitué https://www.developpez.com
Le 01/10/2018 à 15:36
Je ne suis pas développeur COBOL mais ma société a des programmes écrits en COBOL et ce qu'on est plutôt en train de faire c'est de quitter les gros systèmes (Mainframe) pour utiliser du COBOL sous Linux (Cobol IT : The Best alternative to mainframe & Micro focus Cobol). Microfocus (leader sur Mainframe) a d'ailleurs bien senti le vent venir et a racheté Cobol IT en 2017

Ce qui me désole dans ce genre de phrase
>> vas trouver du boulot ailleurs ensuite quand on lira sur ton cv "développeur cobol" (situation vue début septembre)
>> on cherche un dev python et on as reçu un cv et le mec sa faisait 7ans qu'il était dans une banque a coder en cobol, on a bien rigoler à la réunion du matin et son cv est partie a la poubelle.
C'est de voir que des personnes se croient "supérieures" à d'autres parce qu'elles utilisent un langage plus récent.

Dans tous les cas un langage ça sert à développer des algorithmes X ou Y. Je vois trop de prestataires dans notre société qui connaissent Java par exemple mais qui produisent du code horrible (en terme de logique même).
J'ai dans ma boite des personnes (à cause de gros systèmes) qui codent encore en Assembleur, je peux te dire qu'en terme de réflexion, ils sont plus calés que 80% des programmeurs Java qui sortent de l'école.

Si une personne est compétente en terme de raisonnement/algorithmique, l'adaptation à un nouveau langage (surtout comme Python) n'est qu'une question d'un peu de temps.
22  0 
Avatar de yildiz-online
Expert confirmé https://www.developpez.com
Le 02/10/2018 à 8:17
Citation Envoyé par ShigruM Voir le message
c'est surtout le risque d’être coincé dans ce domaine

vas trouver du boulot ailleurs ensuite quand on lira sur ton cv "développeur cobol" (situation vue début septembre)
on cherche un dev python et on as reçu un cv et le mec sa faisait 7ans qu'il était dans une banque a coder en cobol, on a bien rigoler à la réunion du matin et son cv est partie a la poubelle.
Typiquement la réaction de personnes qui n'y connaissent rien en technique et recrutement, vous lui avez fait une fleur en jetant son CV.

Quand on a une personne avec 7 ans d'expérience, on ne parle pas seulement d'expérience dans un langage, c'est surtout 7 ans d'expérience PROFESSIONNELLE, avec tout ce que ça comporte comme apprentissage: travail en équipe, gestion des priorités, gestion du stress, connaissance du flux de travail, des outils de ticketting, test, documentation...

Une personne qui fait un virage technologique comme ça, c'est soit un désespéré (peu probable vu qu'il y a de la demande, mais d'autres facteurs peuvent entrer en compte), soit quelqu'un qui est vraiment motivé à apprendre ou professionnaliser sa connaissance personnelle, et ça, sans entretien, impossible de le savoir.

En tous cas, merci de démontrer que quand on se fait rembarrer c'est pas forcément parce qu'on est mauvais, ça peut être ceux d'en face qui le sont.
19  0 
Avatar de SofEvans
Membre chevronné https://www.developpez.com
Le 01/10/2018 à 16:42
ShigruM a juste précisé qu'il y avait écrit "7 ans de Cobol" sur le CV du gars. On ne sait pas ce qu'il y avait écrit à propos de Python.
Si ca se trouve, le gars fait du Python sur son temps libre.

Je sais pas, on a trop peu d'info, mais en tout les cas, je trouve que c'est une réaction pathétique de 1) en rigoler 2) passer le gars à la trappe rien que pour ça.
14  0 
Avatar de survivals
Membre actif https://www.developpez.com
Le 02/10/2018 à 1:12
Les programmeurs COBOL ont toujours été très rechercher, il y a pénurie et c'est pas pour demain que les banques arrêteront le COBOL pour plusieurs raisons dont le coût de migration.

Pour avoir bossé pour les banques je peux vous dire que c'est très rarement les programmeurs COBOL qui font de la merde mais plutôt les programmeurs JAVA.
Un programmeur JAVA aura beaucoup plus de mal à s'adapter à un autre langage qu'un autre car c'est LE langage d'assistés.

Exclure quelqu'un parce qu'il a fait 7 ans de COBOL c'est juste débile surtout si il est prêt à vouloir sortir de sa zone de confort, les mecs sont justement motivé pour faire autre chose car dès que tu as une compétence COBOL, tu es occupé à faire que ça parce qu'il y a une pénurie qui se fait de plus en plus sentir.
Le langage ne devrait pas être un critère, la logique et le travail consciencieux est beaucoup plus important, un bon programmeur doit être justement capable de switcher sur n'importe quel langage selon les besoins. De même que le langage n'est qu'une partie du boulot, il faut aussi apprendre le domaine dans lequel tu travail.

Le problème d'aujourd'hui c'est que les personnes qui ont le pouvoir de décision dans le recrutement sont souvent des mauvais programmeurs si ils l'ont été (ou mauvais dans un autre domaine) car ils ont été placé là car ils faisaient de la merde autrement. Un bon programmeur (ou autre technicien/ingénieur) on le garde à sa place. Mais bon c'est un peu la faute au CDI et au coût de licenciement des mauvais (j'aurais jamais cru dire ça un jour :/), on préfère les mettre à des postes où ils feront moins de dégâts mais même à leur nouveau poste à priori ils font des dégâts, en l’occurrence ici, erreur de recrutement en préférant les personnes qui ont un profil qui leur ressemble, des beaux parleurs mais avec une logique bizarre et la plupart du temps sans conscience professionnel.
14  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 01/10/2018 à 17:10
Citation Envoyé par abriotde Voir le message
(.../...)
COBOL est beaucoup plus proche de l'assembleur.
foutaises. COBOL est un langage verbeux, là ou l'assembleur est concis. COBOL est un langage de haut niveau, là ou l'assembleur est un langage de bas niveau. La seule ressemblance, c'est que les deux sont procéduraux. Tut le reste? Rien à voir.
13  2 
Avatar de Shepard
Membre éprouvé https://www.developpez.com
Le 01/10/2018 à 14:31
Citation Envoyé par ShigruM Voir le message
c'est surtout le risque d’être coincé dans ce domaine

vas trouver du boulot ailleurs ensuite quand on lira sur ton cv "développeur cobol" (situation vue début septembre)
on cherche un dev python et on as reçu un cv et le mec sa faisait 7ans qu'il était dans une banque a coder en cobol, on a bien rigoler à la réunion du matin et son cv est partie a la poubelle.
La réaction de recruteurs face à ce genre de profil est bonne à savoir, toutefois je pense que vous êtes passés à côté de quelqu'un d'au moins potentiellement intéressant. Quelqu'un qui est motivé par des langages récents tels que Python (et donc probablement jeune) mais qui est prêt à apprendre un langage ancien tel que Cobol pour une opportunité n'est probablement pas un guignol ...

Maintenant si il avait 64 ans alors je comprends mieux pourquoi vous avez réagi ainsi ^^
10  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 02/10/2018 à 9:54
Citation Envoyé par 23JFK Voir le message
Depuis 2002 COBOL est censé supporter la POO.
cf la réponse de pyramidev. la POO en COBOL, c'est juste pour être compatible avec JAVA. L'utiliser dans un autre cadre, c'est être assez maso.

Citation Envoyé par i5evangelist Voir le message
(.../...) le kéké qui ira dire au patron, "pas de soucis Boss, on va migrer tout ça en Java en 2 temps 3 mouvements !", soit il est pas encore né, soit il sort de l'asile :-))
soit il va couter 100M€ à son patron(vécu) sur un projet qui va finir à la poubelle.

Citation Envoyé par jpouly Voir le message
Il ne faut pas que s'attarder sur la technique, parce que ça s'apprend (même rapidement si le gars est pas trop mauvais).

Par contre, la rigueur et l'algorithmie, c'est autre chose .
Exactement. La formation intellectuelle, il n'y a que ça de vrai.

Citation Envoyé par yildiz-online Voir le message
(.../...)En tous cas, merci de démontrer que quand on se fait rembarrer c'est pas forcément parce qu'on est mauvais, ça peut être ceux d'en face qui le sont.
dans mes bras. Certains employeurs ne nous méritent pas(et, dans certains cas, même si on est très mauvais, ils ne nous méritent pas quand même).
10  0 
Avatar de TJ1985
Membre confirmé https://www.developpez.com
Le 08/10/2018 à 12:25
Bonjour à tous,

Pour avoir utilisé COBOL pendant une vingtaine d'années, j'affirme que sa disparition est un effet de mode et n'a pas de causes techniques réelles. Entendons-nous, COBOL est un langage particulier, dédié préférentiellement à un domaine particulier : La gestion. Le langage embarque tout le nécessaire pour écrire une application de gestion rapide, performante, fiable et efficace. Dans le cas d'une petite entreprise, un compilateur COBOL et un PC antédiluvien peuvent largement suffire pour répondre aux besoins administratifs de la boîte.

COBOL embarque des structures de données évoluées, une gestion de fichiers sophistiquée, la gestion directe d'écrans, la génération de rapports et les trappes d'exception.
On peut considérer qu'il embarque nativement un quasi-modèle MVC. Ainsi la FILE SECTION serait le modèle, la SCREEN SECTION la vue et la PROCEDURE DIVISION le contrôleur. Il est capable aussi d'attaquer à bas niveau en passant par les structures de données adaptées. Certains compilateurs (je travaillais sous VMS) offrent une interface quasi-complète sur les routines système, permettant de travailler à très bas niveau.

Comme dans tout langage, il est possible soit d'écrire proprement, soit de faire de la m... COBOL est certes verbeux, mais dans le premier cas on obtient un code lisible même par un non-initié ; quelqu'un qui ne connait ni le langage ni le domaine peut se faire assez rapidement une idée du fonctionnement d'une application bien écrite en COBOL simplement à partir de ses sources.

Bien que n'étant pas vraiment généraliste, on peut faire pas mal de choses avec ce bizarre langage. J'ai en mémoire par exemple un système de validation de droits d'accès dans le domaine bancaire. En fait, un parser a été écrit en quelques instructions, qui permet de dire que tel utilisateur du système peut accéder à l'ensemble des comptes commençant par 34, aussi au 56789, surtout pas au 34567 et à l'ensemble de la réception 10 si la rubrique est 00, etc. La syntaxe de définition n'est pas limitée, on peut mettre autant de contraintes que l'on veut, le système retourne un GO / No GO. L'ensemble tient dans une cascade d'instruction INSPECT imbriquées. Il tourne sur un environnement de 2500 postes à chaque interrogation des bases de données centrales, et n'est pas perceptible de l'utilisateur.

Je pense que COBOL est victime de la mode du tout-nouveau-tout-beau, celle qui veut que chaque nouvelle génération de développeurs estime que le passé n'a rien à nous apprendre. C'est une erreur. Dès lors qu'il s'agit de données structurées, tabulaires, COBOL peut être efficace, soit seul, soit en s'appuyant sur une base de données à travers un pré-compilateur. Dans ce cas il est possible d'écrire directement du code SQL dans le source COBOL, ce qui augmente encore la lisibilité du tout. Sur les systèmes centraux il est d'usage de déléguer les tâches de gestion des écrans et des transactions à des couches dédiées, comme, sous VMS toujours, DecFORMS et ACMS - les équivalents existent chez IBM, évidemment. On était capables de faire tourner des applications performantes sur des machines dont la puissance semble ridicule aujourd'hui, avec des temps de réponse qui rendraient jaloux n'importe quel bidouilleur internet actuel (bon, certains travaillent quand même pas mal, d'accord, mais ce n'est pas la règle !)

Bref, COBOL semble faire peur, peut-être aussi parce qu'il a permis à des générations de personnes formées à la comptabilité d'exprimer leurs (absences d') idées en informatique. Les résultats n'ont pas toujours été à la hauteur, ce qui explique la crainte de certains devant des montagnes de code spaghetti, incompréhensible. Cela est un vrai problème. Mais aujourd'hui, je ne vois pas de réelle raison de passer à la poubelle un langage qui permet depuis trente ans de résoudre le même problème : Régler les rapports entre l'entreprise, ses clients et ses fournisseurs, surveiller l'état d'un stock, passer des commandes et les réceptionner, l'activité administrative quotidienne, quoi. COBOL fait tout cela très bien, en offrant l'avantage insigne de fournir des résultats de calcul financier absolument précis, contrairement aux langages courants, même pour les grands chiffres.

En passant, lorsque je lis que la candidature d'un gars est rejetée uniquement parce qu'il a fait 7 ans de COBOL, je tombe de ma chaise : Un gars qui fait du COBOL dans le domaine bancaire est quelqu'un qui non seulement doit maitriser le langage, ce qui s'obtient assez facilement, mais en plus sait comprendre un environnement plutôt complexe à partir d'éléments de code. Car à coup sûr il n'aura pas fait que développer de merveilleuses Apps from scratch, il aura passé l'essentiel de son temps à adapter les applications existantes aux variations réglementaires ou du marché. C'est donc quelqu'un qui sait extraire la substantifique moelle d'un bout de code et est capable de l'enrichir. Toujours dans ce cas, un gars qui travaille depuis 7 ans en informatique bancaire a montré qu'il s'intègre à un groupe, qu'il sait interagir avec les autres et qu'il est fiable. Bref, si j'étais le boss de la boîte qui a reçu ce CV, et partant de l'idée que je ne cherche pas quelqu'un dans le big data ou l'intelligence artificielle, je souhaiterais parler très rapidement à ceux qui l'ont balancé à la poubelle histoire de vérifier la position de leurs bretelles.

Accessoirement, qui sait si dans dix ans la mention de Python sur un CV ne suscitera pas la même hilarité chez certains que celle de COBOL aujourd'hui ? Et qui sait si dans dix ans COBOL ne sera pas en tête des compilateurs dans le domaine commercial ? Après tout, le reporting intégré est tout à fait capable de générer du HTML & similaires et selon le système d'exploitation il est aussi facile d'écrire un serveur en COBOL, si, si !

A part ça, ma langue maternelle est Pascal, j'ai travaillé dans à peu près tout ce qui est procédural, ainsi qu'avec une cohorte de langages dédiés, spécialisés. J'ai aussi sévi avec des langages objets, j'avais d'ailleurs étendu certaines librairies de TurboPascal à l'époque en créant les prémisses de ce modèle, non encore documenté. Ca ne me rend pas plus intelligent pour autant, mais ça démontre que considérer qu'on est un cador uniquement parce qu'on se débrouille avec le dernier langage à la mode est un peu court.

Voilà !

A part ça, excellente journée,

Thierry
9  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 01/10/2018 à 17:08
Citation Envoyé par Derf59 Voir le message
Je ne suis pas développeur COBOL mais ma société a des programmes écrits en COBOL et ce qu'on est plutôt en train de faire c'est de quitter les gros systèmes (Mainframe) pour utiliser du COBOL sous Linux (Cobol IT : The Best alternative to mainframe & Micro focus Cobol). Microfocus (leader sur Mainframe) a d'ailleurs bien senti le vent venir et a racheté Cobol IT en 2017
l'inconvénient du mainframe, c'est que c'est horriblement couteux. L'avantage, c'est que c'est horriblement sécurisé. COBOL lui-même a exactement 0 couches de sécurité, parcequ'il est apparu dans un contexte ou l'accès aux machines était très restreint. Sous mainframe, c'était toujours le cas. Il est très facile, quand on a les accès, de changer le montant de son compte en banque. C'est détecté en quelques minutes, et personne n'est assez fou pour le faire.

Je ne sais pas ce qu'il en est sous LINUX.

Citation Envoyé par Derf59 Voir le message
Ce qui me désole dans ce genre de phrase
>> vas trouver du boulot ailleurs ensuite quand on lira sur ton cv "développeur cobol" (situation vue début septembre)
>> on cherche un dev python et on as reçu un cv et le mec sa faisait 7ans qu'il était dans une banque a coder en cobol, on a bien rigoler à la réunion du matin et son cv est partie a la poubelle.
C'est de voir que des personnes se croient "supérieures" à d'autres parce qu'elles utilisent un langage plus récent.
d'ou le paradoxe de l'IT : on est en pénurie permanente, mais il y a plein de chômeurs. Bien sur, il y a d'autres raisons, mais ça, ça compte beaucoup. Bon, et je raconte toujours cette histoire de 2011. Un jour, on est venus nous demander de chiffrer une refonte d'une chaine de traitement COBOL. On est arrivé à 110 jours. La dame a râle, dit "il n'y a pas besoin de tout refaire"; mais après analyse, j'ai insisté : sur les 120 composants, seuls 4 étaient réutilisables. La dame a dit "grmble grmlb grmbl", et a demandé des specs techniques. Au final, on a consommé moins de 120 jours. Ce que je n'ai su qu'après, c'est qu'auparavant, elle avant demandé aux gens du JAVA, et que ceux-ci avaient largement dépassé les 200 jours dans leur estimation. Pour faire la même chose.

Après, évidemment, c'était essentiellement du traitement de masse de fichiers plats, le point fort du COBOL. Pour des trucs différents, je n'ai aucun doute que la situation n'aurait pas étée aussi favorable.

Citation Envoyé par Derf59 Voir le message
Dans tous les cas un langage ça sert à développer des algorithmes X ou Y. Je vois trop de prestataires dans notre société qui connaissent Java par exemple mais qui produisent du code horrible (en terme de logique même).
J'ai dans ma boite des personnes (à cause de gros systèmes) qui codent encore en Assembleur, je peux te dire qu'en terme de réflexion, ils sont plus calés que 80% des programmeurs Java qui sortent de l'école.
Le JAVA, c'est facile. L'assembleur, c'est difficile. Tes programmeurs JAVA qui sortent de l'école, ils ne sauront JAMAIS faire un programme assembleur, même si tu les forme pendant un an.

Citation Envoyé par Derf59 Voir le message
Si une personne est compétente en terme de raisonnement/algorithmique, l'adaptation à un nouveau langage (surtout comme Python) n'est qu'une question d'un peu de temps.
Avec ce petit détail quand même que la POO est contre-naturelle pour un coboliste. Qui sera très fort en algo, mais aura tendance à faire des réactions allergiques à toutes les formations objet qu'on peut trouver. "l'objet chien qui hérite de l'objet animal", c'est idéal pour le braquer. Il m'a fallu pas mal d'effort pour arriver à une compréhension d'ailleurs modérée du modèle objet. Et surtout éviter les tutoriels standard, qui m'ont tous repoussé totalement.
9  1 
Avatar de i5evangelist
Membre averti https://www.developpez.com
Le 01/10/2018 à 17:53
Les gars a qui on a dit il y a 30 ans : "z'êtes foutu les loulous, le Cobol c'est HasBeen !"
Je pense que ça les fait bien marrer :-))
Sur Mainframe, on peut encore créer un fichier en donnant sa taille en ... cylindres
Force est de constater que les gros, ceux qui ont de l'argent, on des routines critique la dessus, et le kéké qui ira dire au patron, "pas de soucis Boss, on va migrer tout ça en Java en 2 temps 3 mouvements !", soit il est pas encore né, soit il sort de l'asile :-))
7  0 
Contacter le responsable de la rubrique Programmation

Partenaire : Hébergement Web