COBOL vaut-il encore la peine d'être appris? [fermé]

23

Est-ce que l'apprentissage du COBOL a toujours du sens?

kiamlaluno
la source
9
Ce sera vers 9990, je ne sais pas si vous vivez aussi longtemps.
Toon Krijthe
4
@Gamecat --- Seulement si le problème Y10K n'est pas résolu par des entreprises ou des individus non paresseux avant cela, non?!
Mark C
2
N'oubliez pas que COBOL à lui seul ne vous mènerait pas loin. Vous devez décrire la pile du système d'exploitation avec lequel vous souhaitez travailler. Par exemple, sur les machines IBM, vous auriez besoin de VSAM, MVS ou Z, CICS, ISPF, peut être IMS et ISPF, Panvalet / Easytrieve, JCL en plus de COBOL.
NoChance
2
cobol.com ressemble vraiment au Web 2.0 et offre une machine à café! Si ce n'est pas moderne et pragmatique et insérez un mot à la mode, alors je ne sais pas quoi.
Raphael R.
Vous pouvez obtenir un revenu régulier si vous êtes bon dans ce domaine et que vous trouvez un magasin COBOL.

Réponses:

26

Je ne pense pas, sauf si vous êtes déjà sur le marché de niche où COBOL est toujours maintenu.

Wizard79
la source
13
70% de l'infrastructure existante fonctionne sur COBOL. De glisser une carte de débit sur un guichet automatique, à faire une réservation d'avion en ligne, à même d'acheminer un appel de téléphone portable. Tous ceux qui fonctionnent sur COBOL (ou en dépendent de manière significative.) Ce n'est guère une niche ou un environnement hérité. La plupart de ces systèmes ont été exécutés presque sans interruption et bien pendant des décennies (un bilan bien meilleur que celui que nous avons sur Java et .NET), et le nombre de programmeurs COBOL diminue. Vous voulez faire beaucoup de $$$? Positionnez-vous face à une énorme pénurie de COBOL qui se produira dans une dizaine d'années.
luis.espinal
14
@ luis.espinal: non, c'est un mythe courant, et un pourcentage de 70% n'est plus vrai. L'utilisation de COBOL diminue régulièrement et nous finirons par nous en débarrasser. Et ... COBOL impliqué dans le routage des appels téléphoniques? Je ne pense pas. Peut-être dans la facturation des appels téléphoniques, mais même là, c'est peu probable de nos jours.
Wizard79
6
@Lorenzo - 70% un mythe? Vous n'êtes pas impliqué dans les télécommunications? Pouvez-vous sauvegarder ces revendications? On ne compte même pas son implication dans le transport maritime (dizaines de K de conteneurs / an), ni dans le secteur de la Santé. Je ne sais pas comment c'est là où vous travaillez, mais ici en Amérique du Nord (et dans bien d'autres endroits), COBOL existe en grand nombre et fonctionne bien . Pourquoi une personne risquerait-elle de réécrire quelque chose qui fonctionne et qui est essentiel à sa mission ? J'adorerais fantasmer, je vais tout réécrire en Java ou C ++, mais il y a de la fantaisie, et il y a le génie logiciel et l'économie du logiciel.
luis.espinal
9
@ luis.espinal: comme j'ai travaillé dans l'industrie des télécommunications, je sais par conséquent que les centraux téléphoniques n'utilisent pas COBOL ... ils sont basés sur du matériel et un firmware dédiés. Certaines entreprises utilisent encore COBOL pour la facturation et la comptabilité, mais les nouvelles (comme les opérateurs mobiles) s'appuient sur des technologies différentes même pour cela. Le basculement est en cours.
Wizard79
8
@ luis.espinal: mon beau-frère travaille pour une grande entreprise de télécommunications, écrivant des logiciels pour de nouveaux commutateurs. Je vous garantis absolument qu'il n'utilise PAS COBOL!
Bob Jarvis - Réintègre Monica
36

Non, bien sûr que non. COBOL est une langue morte, après tout. Ou est-ce?

Le problème avec cette vue est que les programmeurs sur des sites comme celui-ci travaillent généralement avec des entreprises de haute technologie, à fonctionnement rapide (et à épuisement tout aussi rapide). Pour eux, le COBOL est une langue morte - il est introuvable. Cela ne fait plus depuis longtemps, c'est vrai.

Mais COBOL n'était pas fait pour eux. L'industrie du logiciel ne se limite pas à cela. Les ordinateurs n'ont pas été inventés pour les personnes ayant un besoin irrationnel de mise à niveau et de remplacement d'anciens par de nouveaux tout le temps. Ils ont été faits à des fins commerciales.

Vous voulez voir COBOL? Accédez à une entreprise qui traite la paie, gère le camionnage de marchandises ou l'expédition (comme dans les navires) ou gère votre compte bancaire. Il existe un énorme système de code invisible qui est pratiquement invisible pour les utilisateurs, et la plupart d'entre eux n'y pensent jamais bien qu'ils le rencontrent d'une manière ou d'une autre tous les jours (GAB?)

Non, ce n'est pas mort. Mais c'est "hérité" à coup sûr ... ou n'est-ce pas?

Encore une fois, cela dépend de la façon dont vous le voyez. De nos jours, beaucoup de gens utiliseront Java, C ou autre chose au lieu de COBOL, réécrivant à partir de zéro ... introduisant de nouveaux bugs au fur et à mesure, naturellement. Cela ne veut pas dire que COBOL n'a pas de bugs et de bizarreries. Il le fait, autant que la langue suivante. Bien sûr que oui. Mais en «temps COBOL», les entreprises qui prenaient les bogues plus au sérieux que d'habitude (assurances, banques) avaient tendance à produire un code de meilleure qualité avec des groupes de services de qualité spéciale; aujourd'hui, il y a des délais où le temps et le budget l'emportent toujours sur la qualité. De plus, ces systèmes ont été développés à l'origine pour des périodes plus longues à l'époque par rapport à leur équivalent actuel.

Si certains logiciels fonctionnent depuis plus de 30 ans, où est l'incitation à changer? Des entreprises entières ont cessé leurs activités parce qu'elles ont ignoré le vieil adage «si ce n'est pas cassé, ne le répare pas». Beaucoup ont essayé de réécrire la chose ... puis la première réécriture a coûté cher, puis la seconde a coûté encore plus ... et aucune de ces nouveautés et améliorations n'a réussi à la remplacer. Comme je l'ai dit, cette industrie brûle rapidement, et elle a également tendance à oublier rapidement.

Dans les années 70, COBOL était mort ou mourrait bientôt, le C / C ++ allait régner. Puis au début des années 80, Pascal prenait le relais. Puis dans les années 90 c'était Java comme LE Langage ...

Pensez à Unisys Mapper, dBase, Clipper, Cold fusion ... les gens s'en souviennent-ils même? Chacun d'eux allait être le fossoyeur de COBOL.

En tenant compte de cela, et du fait qu'il est idéal pour traiter des volumes élevés de transactions, un traitement par lots ou un traitement orienté enregistrement / transaction, et que l'on peut compiler (sans erreurs) un sous-programme écrit depuis 30 ans en tant que code COBOL géré et appeler à partir d'un COBOL.NET géré si l'on souhaite passer à Windows et .NET, j'ai du mal à trouver un remplaçant approprié. (J'ai également du mal à trouver une technologie Microsoft qui a duré plus d'une décennie.)

Oui, un nouveau code COBOL est en cours d'écriture aujourd'hui. Il suffit de savoir où chercher.

Pour ceux qui rient de COBOL, à mon humble avis, c'est comme rire des pyramides égyptiennes, ils sont là depuis 5000 ans et ils seront toujours là dans les 5000 prochaines années, tandis que le logement "bonjour" d'aujourd'hui nécessitant 24 contrôles pour fonctionner sera supprimé, remplacé, oublié le mois prochain.

Alors, où sont tous ces programmeurs COBOL?

Ah, car là réside le hic. Le fait est que beaucoup d'entre eux n'ont aucune formation en informatique. Beaucoup d'entre eux ne sont pas des programmeurs professionnels (comme dans les diplômés universitaires d'un programme CS / SE). Pour la plupart, ce sont des personnes dans la fin de la trentaine ou la cinquantaine, de tous les domaines d'expertise, entièrement formées par l'entreprise spécifiquement pour ce travail. Ce ne sont donc pas des "programmeurs COBOL" - la formation qu'ils ont reçue est spécifique à l'entreprise qui fait la promotion de l'intérieur. Et cela les rend à peu près invisibles.

Tour
la source
9
Avoir un état d'esprit iPhone / bureau / Web 2.0 est un bon moyen d'oublier l'immensité du monde informatique.
Paul Nathan
8
Alors, où sont tous ces programmeurs COBOL? Conduire des taxis.
johnc
1
@johnc - d'où avez-vous tiré cela? 70% de l'infrastructure existante fonctionne sur COBOL et il y a une pénurie de programmeurs COBOL. Il aurait peut-être été difficile d'obtenir un emploi si vous ne connaissiez COBOL qu'à l'époque des dot-com (nous parlons maintenant d'une décennie). Mais maintenant??? L'homme, COBOL va être en forte demande dans une dizaine d'années seulement en raison de la criticité de ces systèmes et de la pénurie de développeurs de logiciels qui savent (ou sont assez intelligents pour saisir l'occasion) de travailler avec COBOL.
luis.espinal
2
@ luis.espinal Je suis complètement (et douloureusement) conscient des problèmes auxquels nous sommes confrontés avec le manque de programmeurs COBOL, cependant mon commentaire a été prononcé, un peu frivole j'admets, par expérience. En Australie, au moins, presque tous les chauffeurs de taxi que j'ai rencontrés, au cours de la dernière décennie, qui n'étaient pas des immigrants récents (et peut-être certains qui l'ont été), étaient d'anciens programmeurs de COBOL. Coïncidence, peut-être, et je dis cela sans porter de jugement personnel sur les chauffeurs de taxi, les immigrants ou les développeurs COBOL. C'est simplement une observation.
johnc
2
@johnc - Je ne doute pas de votre parole, mais je trouve cette observation extrêmement difficile à croire.
Tour
16

Si vous pouvez vous voir comme programmeur COBOL, alors allez-y. Il reste des milliards de lignes écrites en COBOL qui nécessitent une maintenance.

En fait, il n'y a pas de connaissances inutiles, alors élargissez les connaissances et les opportunités plus larges que vous aurez (aurez).

firusvg
la source
1
Étant donné qu'il n'y a pas de connaissances inutiles, je nomme Intercal pour la prochaine langue que vous apprenez!
Tikhon Jelvis
@TikhonJelvis: Trop facile, beaucoup trop facile. Malbolge est ce que vous recherchez.
Magus
15

COBOL

L'apprendre a-t-il un sens?
Eh bien, il est un créneau et il y a des tonnes de travail code existant qui doivent être maintenues et ne peut pas simplement être réécrite. Donc, même si ce n'est pas vraiment une option pour la grande majorité de tous les programmeurs, c'est une perspective pour un revenu stable pour les particuliers.

Cependant, si vous êtes intéressé à créer de nouvelles solutions, plutôt que d'améliorer lentement celles qui existent depuis des décennies, COBOL n'est probablement pas le bon langage.

back2dos
la source
8

De nombreuses entreprises européennes dépendent encore fortement de mainframes fonctionnant comme les programmes z / vse et cobol. Il y a une demande de programmeurs de cobol qualifiés que personne ne pense que le marché va combler, ce qui fait augmenter le salaire, beaucoup.

La question devrait être, "vais-je jamais développer quelque chose de nouveau en utilisant cobol?" car à peu près tout est de la maintenance ou des variations de choses critiques existantes.

Patrik Björklund
la source
5

Je travaillais pour IBM où le code COBOL et PL / I était écrit tous les jours. Également des grandes entreprises qui s'appuient sur les mainframes IBM comme de nombreuses banques qui nécessitent des milliers de transactions par seconde, ces langues sont encore largement utilisées.

Si vous ne voulez pas travailler dans un endroit comme ça (c'est pourquoi j'y ai juste travaillé pendant 6 mois) alors ne pensez même pas à apprendre ces langues.

Carlos Muñoz
la source
Travailler sur l'épine dorsale de l'économie, gérer ce type de trafic, ce serait certainement considéré comme une bonne ingénierie et des opportunités commerciales par beaucoup.
luis.espinal
5

Nous écrivons tous les jours du nouveau code Cobol et nous sommes constamment à la recherche de nouveaux programmeurs. L'offre est trop petite ici.

utilisateur1249
la source
5
C'est vraiment effrayant mais intéressant. Je n'ai jamais rencontré un vrai programmeur de cobol en direct (et je ne suis pas un poulet de printemps)
Tim
3
Pourquoi effrayant? Vous n'avez probablement jamais rencontré de programmeur Lisp non plus ...
@Tim Il y a un gars de MicroFocus qui écrit des articles sur Code Project - tout en COBOL ... pour .NET! C'est vraiment bizarre de voir COBOL mis à jour avec des technologies plus modernes.
MetalMikester
2
@Thorbjorn - J'avais l'habitude de coder dans lisp et de connaître les programmeurs lisp. Peut-être que je suis juste ignorant et partial mais ce que je sais de cobol ne m'incite pas à penser fortement à faire PLUS de code dans cette langue.
Tim
1
Lisp est utilisé pour des projets intéressants et est une langue intéressante à part entière. Il en va de même pour C ++, Ruby on Rails, Smalltalk et Haskell. Cobol est utilisé pour des applications professionnelles ennuyeuses et n'est intéressant que pour les personnes qui doivent créer des compilateurs et des outils pour cela. Fondamentalement, les enfants sympas n'utilisent pas Cobol, et j'utilise "cool" de façon assez lâche pour m'inclure. Vous devrez vous rendre dans différents endroits, comme une école de commerce, pour trouver des gens Cobol.
David Thornley
4

Si vous voulez avoir un travail en tant que programmeur COBOL, alors allez-y et apprenez-le.

Pour toute autre raison, comme essayer d'apprendre quelque chose d'utile qui pourrait vous aider avec des techniques de programmation modernes, non, ne vous embêtez pas.

Andy Lester
la source
OMI, les techniques de programmation modernes ont peu à voir avec les langages de programmation et plus à voir avec la méthodologie logicielle. Il y a des développeurs qui n'ont rien vu d'autre que les langages OO dans la vie de leurs héritiers, et pourtant ne peuvent pas décrire ce qu'est un bon design OO. De bons principes de programmation et de génie logiciel transcendent les langages de programmation. J'imagine qu'un jeune développeur avec des compétences décentes aura une meilleure expérience d'apprentissage en génie logiciel traitant d'un héritage critique "procédural" manquant qu'une autre couche de croûte procédurale écrite en Java (je suis un développeur Java btw.)
luis.espinal
3

En l'an 2000, j'ai lu une statistique selon laquelle il y avait plus de lignes de COBOL écrites que toutes les autres langues combinées.
Ajoutez à cela la garantie IBM que tout deck TEXT (code objet), compilé sur n'importe quel système MVS est exécutable sur tous leurs systèmes MVS et vous avez la garantie qu'il y aura une programmation COBOL aussi longtemps que le soleil brille.

Dave
la source
6
Si vous pensez au fait que COBOL est verbeux, ce n'est pas étonnant ;-).
Oliver Weiler
3

Je peux vous dire comment je l'ai "appris":
j'étais employé pour travailler avec, sans avoir la moindre idée de quoi il s'agissait, et je n'ai eu aucune difficulté à l'apprendre du jour au lendemain.

Donc, si vous en avez besoin, vous pouvez l'apprendre. Pas besoin de vous surcharger de connaissances inutiles. Il n'y a rien d'intéressant ni de ses engagements, sauf si vous en avez un réel besoin pratique.

La réponse générique: apprendre les principes de codage, pas leurs implémentations spécifiques (comme les langages, etc.)

Геннадий-Ванин
la source
2

Je ne passerais pas de temps dessus.
Quoi qu'il en soit, COBOL est la pierre angulaire de nombreux programmes d'application hérités qui sont essentiels à la mission de plusieurs grandes entreprises lancées il y a 20 ou 30 ans.
Donc, si vous êtes embauché pour une entreprise qui a une partie de son cœur de métier à COBOL, il y a des chances que vous deviez commencer à l'apprendre.

systempuntoout
la source
Comme? (15 caractères)
TheLQ
@TheLQ Les banques ou les compagnies d'assurance qui ont commencé il y a 20 ou 30 ans ont leurs bases logicielles dans COBOL.
systempuntoout
2

Apprenez-le si vous aimez, après tout, savoir comment les choses fonctionnent (ou fonctionnaient auparavant) ne peut pas être une mauvaise chose.

Cependant, je recommanderais de ne pas trop insister sur vos compétences COBOL dans votre CV.

Dans certains endroits (par exemple, dans la Silicon Valley où j'habite), avoir COBOL dans votre CV va être un handicap. Oh bien sûr, vous pourriez trouver un endroit ici et là qui a besoin de votre expertise, et dans ce cas allez-y et faites-en la publicité uniquement dans ces endroits . Mais en général, faites-vous plaisir et oubliez de mentionner que vous connaissez COBOL.

Alors oui, apprenez-le si vous êtes curieux, ne le dites à personne.

Julio
la source
1

Peut-être que cela ne vaut pas du point de vue du marché du travail, mais vous voudrez peut-être y jeter un coup d'œil juste pour avoir une idée de la façon dont les choses ont été faites "au bon vieux temps". ^^

gablin
la source
Le seul moment (je pense) où le marché était mauvais pour COBOL était pendant l'apocalypse dot-com avec e-hype et tout.
luis.espinal
1

D'un point de vue personnel, je dirais qu'il y a de meilleures choses à apprendre en premier. Cependant, de nombreuses grandes entreprises ont de très gros investissements dans leur base de code COBOL qu'elles ne seront probablement jamais vraiment en mesure de laisser derrière elles, créant une industrie pour les programmeurs COBOL pour maintenir la base de code ainsi que pour écrire un nouveau code. La société pour laquelle je travaille est une grande société financière et notre division technologique pour les développeurs est d'environ 30% COBOL, 40% Java et 30% C #.

Chris Knight
la source
2
capable, oui, mais pourquoi - le code de travail est un code de travail.
0

Je viens de faire une recherche de "cobol" sur le plus grand site d'emploi d'Australie. Il a renvoyé 87 résultats, et (à partir d'un survol rapide), ils semblent principalement être des postes de maintenance hérités dans les banques et les institutions financières. Généralement nettement mieux rémunéré que les emplois basés sur des langues plus "modernes" - probablement en raison de la rareté de l'expérience Cobol.

Donc oui, il semble que Cobol mérite d'être appris si vous 1) ne vous occupez pas de faire de la maintenance héritée et 2) vous voulez entrer dans un créneau bien rémunéré et probablement pas très compétitif car c'est quelque chose que peu de gens apprennent plus.

(Je suppose que le marché du Cobol serait similaire dans la plupart des économies du premier monde, mais pourrait se tromper?)

Tables Bobby
la source
Même la banque / assurance / PA évolue lentement vers des technologies plus modernes. Alors maintenant, entrer dans ce créneau peut être bien, mais que se passera-t-il lorsque finalement tout le code hérité et son marché de niche disparaîtront?
Wizard79
@ Lorenzo: Eh bien, cela peut être dit à propos de n'importe quelle spécialité dans notre domaine (même tous les domaines en général). Recyclage. par exemple. Les conducteurs de locomotives à vapeur ont dû se recycler et devenir conducteurs de locomotives diesel ou électriques, etc., etc. :)
Bobby Tables
Mais COBOL est déjà un créneau ... l'idée est que, si vous adoptez COBOL maintenant, vous devrez probablement vous recycler plus tôt que les autres technologies.
Wizard79
1
@ Lorenzo - Non, pas vraiment. Le fait qu'ils ne soient pas courants dans cs univ. Ne les fait pas automatiquement des niches. Cela signifie simplement que vous ne vous déplacez pas dans les cercles où vous les rencontrez. Combien de travailleurs travaillant dans la production de lignes automobiles connaissez-vous? Architectes navals? Pilotes d'avion? Pensez-vous qu'ils sont également des niches? (et aussi, pour ces deux catégories d'exemples, vous aurez du mal à trouver des offres d'emploi). Il faut savoir où chercher.
Rook
1
@Lorenzo - croyez-vous réellement que tout le code COBOL et FORTRAN et la base de connaissances seront éventuellement réécrits? Je veux dire, sérieusement. Je n'ai jamais rencontré personne dans l'industrie et le monde universitaire qui pense qu'une telle chose est possible, encore moins souhaitable . Aussi laid que COBOL ressemble (une réaction subjective), ces systèmes fonctionnent bien, bien mieux que les e-crap que nous avons construits depuis les jours dot-com. C'est un témoignage de qualité industrielle. Il est préférable d'ingénierie et d'économie de maintenir ces systèmes plutôt que de les réécrire (en supposant un risque zéro et des ressources économiques infinies.)
luis.espinal
0

Pensez aux types de domaines problématiques dans lesquels vous souhaitez travailler. Généralement, ces domaines ont un ensemble de langues généralement utilisées à cette fin. Si COBOL correspond à cela, allez-y.

Il n'y a aucun moyen que je touche au cobol ou au (x) domaine (s) problématique (s) qui l'utilisent fortement avec un poteau de 10 pieds. Je préfère retourner les hamburgers.

Vérifiez également si le langage offre un bonus / amélioration à votre capacité / concepts de programmation. Je ne peux penser à rien que COBOL puisse faire / implémenter / fonctionnalités qui ne soit pas mieux fait ou qui puisse être mieux démontré dans une autre langue.

Vous et les autres pouvez vous sentir différemment.

Tim
la source
0

Il existe encore de nombreux systèmes hérités écrits en COBOL. Que vous souhaitiez les maintenir ou les porter sur d'autres langages de programmation, cela vaut toujours la peine d'apprendre COBOL.

Quoi qu'il en soit, certaines connaissances dans plusieurs langages de programmation seront un plus car les connaissances que vous avez vous permettent de choisir un langage ou une approche de programmation pour différents besoins de projet. Vous pouvez utiliser vos connaissances dans les langages de programmation pour construire des codes meilleurs, plus propres et plus efficaces et pour éviter les pièges.

Adrian Hoe
la source
De 2004 à 2005, j'ai participé à un projet de modernisation de la Marine dans mon pays, portant quelque 200KSLOC d'Ada83 à Ada95 et quelque 25KSLOC de COBOL68 et COBOL74 à Ada95. J'ai appris le COBOL en 1987 et cela vaut vraiment le temps et l'effort d'apprendre COBOL. Je ne pouvais pas imaginer si je n'avais pas de connaissance préalable de COBOL.
Adrian Hoe