Est-ce que l'apprentissage du COBOL a toujours du sens?
Je ne le pense pas, sauf si vous êtes déjà sur le marché de niche où COBOL est toujours maintenu.
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 de l'ancien par du nouveau 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 de "si ce n'est pas cassé, ne le répare pas." Beaucoup ont essayé de réécrire la chose ... alors la première réécriture a coûté beaucoup, puis la seconde a coûté encore plus ... et aucune de ces nouvelles 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 de la fin de la trentaine à 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 pratiquement invisibles.
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 y a non comme des connaissances inutiles, alors élargissez les connaissances et les opportunités plus larges que vous (aurez).
L'apprendre a-t-il un sens?
Eh bien, c'est une niche et il y a des tonnes de code qui marche qui doivent être maintenus et ne peuvent pas être simplement réécrits. 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.
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 essentielles à la mission existantes.
Nous écrivons chaque jour du nouveau code Cobol et nous recherchons constamment de nouveaux programmeurs. L'offre est trop petite ici.
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 très utilisées.
Si vous ne voulez pas travailler dans un endroit comme ça (c'est pourquoi je viens de travailler là-bas pendant 6 mois), alors ne pensez même pas à apprendre ces langues.
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.
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 Sun brille.
Je peux vous dire comment je l'ai "appris":
J'étais employé pour travailler avec elle, n'ayant aucune 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 à moins que vous n'en ayez 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.)
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é pour ces endroits uniquement. 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.
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 sociétés 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.
Peut-être que cela ne vaut pas du point de vue du marché du travail, mais vous voudrez peut-être y jeter un œil juste pour avoir une idée de la façon dont les choses ont été faites "au bon vieux temps". ^^
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 #.
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 étudié 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?)
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 le cobol ou le (s) 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 des bonus/améliorations à votre capacité/concepts de programmation. Je ne peux penser à rien de ce que COBOL peut 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.
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 de programmation ou une approche 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.