Ainda vale a pena aprender COBOL? [fechadas]

23

O aprendizado do COBOL ainda faz sentido?

kiamlaluno
fonte
9
Será por volta de 9990, não tenho certeza se você vive tanto tempo.
precisa saber é o seguinte
4
@ Gamecat --- Somente se o problema do Y10K não for resolvido por empresas ou indivíduos não preguiçosos antes disso, certo ?!
Mark C
2
Lembre-se de que o COBOL por si só não o levaria muito longe. Você precisa preparar a pilha para o sistema operacional com o qual deseja trabalhar. Por exemplo, em máquinas IBM, você precisará de VSAM, MVS ou Z, CICS, ISPF, pode ser IMS e ISPF, Panvalet / Easytrieve, JCL, além de COBOL.
NoChance
2
O cobol.com parece realmente com a Web 2.0 e oferece uma máquina de café! Se isso não é moderno e pragmático e insere chavões , não sei o quê.
Raphael R.
Você pode obter uma renda estável se for bom e encontrar uma loja COBOL.

Respostas:

26

Acho que não, a menos que você já esteja no nicho de mercado em que o COBOL ainda é mantido.

Wizard79
fonte
13
70% da infraestrutura existente é executada em COBOL. De passar um cartão de débito em um caixa eletrônico, fazer uma reserva de avião on-line, até mesmo encaminhar uma chamada de telefone celular. Todos aqueles executados no COBOL (ou dependem significativamente dele). Dificilmente é um nicho ou um ambiente herdado. A maioria desses sistemas funciona quase ininterruptamente e há décadas (um histórico muito melhor do que o que temos em Java e .NET), e o número de programadores COBOL está diminuindo. Quer ganhar muito $$$? Posicione-se para uma enorme falta de COBOL que ocorrerá em cerca de uma década.
Luis.espinal 18/10/10
14
@ luis.espinal: não, isso é um mito comum, e uma porcentagem de 70% não é mais verdadeira. O uso de COBOL está diminuindo constantemente e, eventualmente, nos livraremos dele. E ... COBOL envolvido no roteamento de chamadas telefônicas? Acho que não. Talvez no faturamento de telefonemas, mas mesmo assim é improvável atualmente.
Wizard79
6
@Lorenzo - 70% um mito? Não está envolvido em telecomunicações? Você pode fazer backup dessas reivindicações? Nem estamos contando seu envolvimento no transporte marítimo (dezenas de K de contêineres / ano), nem no setor de assistência médica. Não sei como é onde você trabalha, mas aqui na América do Norte (e em muitos outros lugares), o COBOL existe em grande número e funciona bem . Por que alguém correria risco ao reescrever algo que funciona e que é essencial para a missão ? Eu adoraria fantasiar que vou reescrever tudo em Java ou C ++, mas há fantasia, engenharia de software e economia de software.
Luis.espinal 18/10/10
9
@ luis.espinal: como trabalhei no setor de telecomunicações, tenho certeza de que os dispositivos de troca telefônica não usam COBOL ... eles são baseados em hardware e firmware dedicados. Algumas empresas ainda usam o COBOL para cobrança e contabilidade, mas as novas (como operadoras de telefonia móvel) dependem de tecnologias diferentes mesmo para isso. A troca está em andamento.
Wizard79
8
@ luis.espinal: meu irmão trabalha para uma grande empresa de telecomunicações, escrevendo software para novos switches. Eu absolutamente garanto que você não usa COBOL!
Bob Jarvis - Restabelece Monica
36

Nããão, claro que não. Afinal, COBOL é uma língua morta. Ou é?

O problema com essa visão é que programadores em sites como esse geralmente trabalham com empresas de alta tecnologia, de execução rápida (e que esgotam rapidamente). Para eles, o COBOL é uma linguagem morta - não está em lugar algum. Não faz muito tempo agora, é verdade.

Mas o COBOL não foi feito para eles. Há mais na indústria de software do que isso. Os computadores não foram inventados para pessoas com alguma necessidade irracional de atualizar e substituir o antigo pelo novo o tempo todo. Eles foram feitos para fins comerciais.

Você quer ver COBOL? Vá para uma empresa que processa a folha de pagamento ou lida com transporte de mercadorias ou remessa (como em navios) ou lida com sua conta bancária. Existe um enorme sistema invisível de código por aí que é praticamente invisível para os usuários, e a maioria deles nunca pensa nisso, embora o encontre de uma maneira ou de outra todos os dias (caixas eletrônicos?)

Não, não está morto. Mas é "legado", com certeza ... ou é?

Novamente, depende de como você olha para ele. Atualmente, muitas pessoas usam Java, C ou qualquer outra coisa em vez de COBOL, reescrevendo do zero ... introduzindo novos bugs à medida que avançam, naturalmente. Isso não está dizendo que o COBOL não tem bugs e peculiaridades. Sim, tanto quanto no próximo idioma. Claro que sim. Porém, nos "tempos COBOL", as empresas que levavam os erros mais a sério do que o habitual (seguros, bancos) tendiam a produzir código de qualidade superior com grupos de serviços de qualidade especiais; Hoje, existem prazos em que tempo e orçamento sempre superam a qualidade. Além disso, esses sistemas foram originalmente desenvolvidos por períodos mais longos na época em comparação com o equivalente agora.

Se algum software trabalha há mais de 30 anos, onde está o incentivo para mudar? Empresas inteiras faliram porque ignoraram o velho ditado de "se não está quebrado, não conserte". Muitos tentaram reescrever a coisa ... então a primeira reescrita custou muito, depois a segunda custou ainda mais ... e nenhum daqueles novos e aprimorados conseguiu substituí-la. Como eu disse, esse setor é de queima rápida e também tende a esquecer rapidamente.

Nos anos 70, o COBOL estava morto ou morrendo em breve, o C / C ++ iria governar. Então, novamente, no início dos anos 80, Pascal estava assumindo o controle. Então, nos anos 90, era Java como a linguagem ...

Pense no Unisys Mapper, dBase, Clipper, Cold fusion ... as pessoas se lembram disso? Cada um deles seria o coveiro do COBOL.

Levando isso em consideração e o fato de ser ótimo para processar grandes volumes de transações, processamento em lote ou processamento orientado a registros / transações, e que é possível compilar (sem erros) uma sub-rotina escrita com 30 anos de idade como código COBOL gerenciado e chamada de um COBOL.NET gerenciado, caso deseje ir para Windows e .NET, estou tendo problemas para encontrar um substituto adequado para ele. (Também estou com problemas para encontrar uma tecnologia da Microsoft que durou mais de uma década.)

Sim, o novo código COBOL está sendo gravado hoje. Só é preciso saber para onde olhar.

Para aqueles que riem de COBOL, IMHO, é como rir das pirâmides egípcias, elas estão lá há 5000 anos e ainda estarão lá nos próximos 5000 anos, enquanto a habitação de "olá mundo" de hoje, que precisa de 24 controles para funcionar, será excluída, substituído, esquecido no próximo mês.

Então, onde estão todos esses programadores COBOL?

Ah, pois aqui está o problema. O fato é que muitos deles não têm formação em ciências da computação. Muitos deles não são programadores profissionais (como em graduados universitários de um programa de CS / SE). Na maioria das vezes, são pessoas de 30 a 50 anos, de todas as áreas de especialização, treinadas inteiramente pela empresa especificamente para esse trabalho. Portanto, eles não são "programadores COBOL" - o treinamento que eles recebem é específico da empresa que promove tanto a partir de dentro. E isso os torna praticamente invisíveis.

torre
fonte
9
Ter uma mentalidade de iPhone / desktop / Web 2.0 é uma boa maneira de esquecer a vastidão do mundo da computação.
Paul Nathan
8
Então, onde estão todos esses programadores COBOL? Táxis de condução.
johnc
1
@johnc - de onde você tirou isso? 70% da infraestrutura existente é executada no COBOL, e há uma escassez de programadores do COBOL. Poderia ter sido difícil conseguir um emprego se você conhecesse a COBOL nos dias pontocom (estamos conversando há uma década). Mas agora??? Cara, o COBOL estará em alta demanda em cerca de uma década apenas por causa da criticidade desses sistemas e da escassez de desenvolvedores de software que sabem (ou são inteligentes o suficiente para arriscar) trabalhar com o COBOL.
Luis.espinal 18/10/10
2
@ luis.espinal Estou completamente (e dolorosamente) ciente dos problemas que estamos enfrentando com a falta de programadores do COBOL, no entanto, meu comentário foi proferido, um tanto frivolamente, por experiência própria. Na Austrália, pelo menos, praticamente todos os taxistas que conheci, na última década, que não eram imigrantes recentes (e possivelmente alguns que eram), já foram programadores do COBOL. Coincidência, talvez, e digo que isso não faz julgamento pessoal sobre motoristas de táxi, imigrantes ou desenvolvedores do COBOL. É simplesmente uma observação.
johnc
2
@ johnc - Não duvido da sua palavra, mas acho essa observação extremamente difícil de acreditar.
Rook
16

Se você pode se ver como programador COBOL, vá em frente. Ainda existem bilhões de linhas escritas em COBOL que requerem manutenção.

Na verdade, não existe conhecimento desnecessário; portanto, amplie o conhecimento e as oportunidades mais amplas que você terá.

firusvg
fonte
1
Como não existe conhecimento desnecessário, nomeio Intercal para o próximo idioma que você aprender!
Tikhon Jelvis 17/07
@TikhonJelvis: Muito fácil, muito fácil. Malbolge é o que você está procurando.
Magus
15

COBOL

Aprender faz sentido?
Bem, é um nicho e há toneladas de trabalhar código legado que precisam ser mantidos e não pode simplesmente ser reescrito. Portanto, embora não seja realmente uma opção para as vastas massas de todos os programadores, é uma perspectiva de uma renda estável para os indivíduos.

No entanto, se você estiver interessado em criar novas soluções, em vez de melhorar lentamente aquelas que existem há décadas, o COBOL provavelmente não é o idioma certo.

back2dos
fonte
8

Muitas empresas européias ainda dependem muito de mainframes executados como os programas z / vse e cobol. Há uma demanda por programadores qualificados da Cobol que ninguém acha que o mercado irá preencher, o que aumenta muito o salário.

A pergunta deveria ser: "algum dia vou desenvolver algo novo usando cobol?" já que praticamente tudo é manutenção ou variações de coisas críticas de missão existentes.

Patrik Björklund
fonte
5

Eu costumava trabalhar para a IBM, onde os códigos COBOL e PL / I eram escritos todos os dias. Também de grandes empresas que contam com mainframes da IBM, como muitos bancos que exigem milhares de transações por segundo, esses idiomas ainda são muito usados.

Se você não quer trabalhar em um lugar como esse (é por isso que trabalhei lá por 6 meses), nem pense em aprender esses idiomas.

Carlos Muñoz
fonte
Trabalhar na espinha dorsal da economia, lidar com esse tipo de tráfego, que certamente seria visto como uma boa oportunidade de engenharia e negócios para muitos.
Luis.espinal 18/10/10
5

Escrevemos novo código Cobol todos os dias e estamos em constante busca de novos programadores. O suprimento é muito pequeno por aqui.

user1249
fonte
5
Isso é realmente assustador, mas interessante. Eu nunca conheci um verdadeiro programador cobol ao vivo (e eu não sou galinha de mola)
Tim
3
Por que assustador? Você provavelmente nunca conheci um programador Lisp ou ...
@ Tim Há um cara da MicroFocus que escreve artigos sobre o Code Project - tudo em COBOL ... for .NET! É realmente estranho ver COBOL atualizado com tecnologias mais modernas.
MetalMikester
2
@ Thorbjorn - Eu costumava codificar em lisp e conhecer programadores de lisp. Talvez eu seja apenas ignorante e tendencioso, mas o que eu sei sobre cobol não me leva a pensar muito em criar MAIS código nessa linguagem.
Tim
1
O Lisp é usado para projetos interessantes e é uma linguagem interessante por si só. O mesmo acontece com C ++, Ruby on Rails, Smalltalk e Haskell. O Cobol é usado para aplicativos de negócios sem graça e é interessante apenas para pessoas que precisam criar compiladores e ferramentas para ele. Fundamentalmente, as crianças legais não usam Cobol, e eu estou usando "legal" tão vagamente para me incluir. Você terá que ir a lugares diferentes, como uma escola de negócios, para encontrar o pessoal da Cobol.
David Thornley
4

Se você deseja ter um emprego como programador COBOL, então vá em frente e aprenda.

Por qualquer outro motivo, como tentar aprender algo útil que possa ajudá-lo com técnicas modernas de programação, não, não se preocupe.

Andy Lester
fonte
Na IMO, as técnicas modernas de programação têm pouco a ver com linguagens de programação e mais com a metodologia de software. Existem desenvolvedores que não viram nada além das linguagens OO em suas vidas, e ainda não conseguem descrever como é um bom design OO. Os bons princípios de programação e engenharia de software transcendem as linguagens de programação. Eu imagino que um jovem desenvolvedor com habilidades decentes tenha uma melhor experiência de aprendizado de engenharia de software, lidando com um legado "procedimental" crítico ausente do que outra camada de crosta processual escrita em Java (eu sou desenvolvedor Java btw.)
luis.espinal
3

No ano 2000, li uma estatística de que havia mais linhas de COBOL escritas do que todas as outras línguas combinadas.
Acrescente a isso a garantia da IBM de que qualquer deck TEXT (código de objeto) compilado em qualquer sistema MVS seja executável em todos os seus sistemas MVS e você tem a garantia de que haverá programação COBOL pelo tempo que o sol brilhar.

Dave
fonte
6
Se você pensa sobre o quão detalhado é COBOL, não é de admirar ;-).
precisa
3

Posso lhe contar como o "aprendi":
fui contratado para trabalhar com ele, sem ter idéia do que se tratava, e não tive dificuldades em aprendê-lo da noite para o dia.

Então, se você precisar, pode aprender. Não há necessidade de se sobrecarregar com conhecimento inútil. Não há nada interessante nele ou em seus compromissos, a menos que você tenha uma necessidade prática real.

A resposta genérica: aprenda os princípios de codificação, não suas implementações específicas (como idiomas etc.)

Геннадий-Ванин
fonte
2

Eu não gastaria tempo com isso.
De qualquer forma, o COBOL é o alicerce de muitos programas de aplicativos herdados, essenciais para várias grandes empresas iniciadas há 20 ou 30 anos.
Portanto, se você for contratado para uma empresa que faz parte de seu negócio principal na COBOL, há chances de começar a aprender.

systempuntoout
fonte
Gostar? (15 caracteres)
TheLQ
Os bancos @TheLQ ou empresas de seguros iniciadas há 20 ou 30 anos têm suas bases de software na COBOL.
systempuntoout
2

Aprenda se você gosta, afinal, saber como as coisas funcionam (ou costumavam trabalhar) não pode ser uma coisa ruim.

No entanto, eu recomendaria não enfatizar demais suas habilidades em COBOL em seu currículo.

Em alguns lugares (por exemplo, no Vale do Silício, onde moro), ter COBOL em seu currículo será uma responsabilidade. Ah, claro, você pode encontrar um lugar aqui e ali que precisa de sua experiência e, nesse caso, vá em frente e anuncie-o apenas nesses lugares . Mas, em geral, faça um favor a si mesmo e esqueça de mencionar que conhece COBOL.

Então, sim, aprenda se você estiver curioso, apenas não conte a ninguém.

Julio
fonte
1

Talvez não valha a pena da perspectiva do mercado de trabalho, mas você pode dar uma olhada nisso apenas para ter uma idéia de como as coisas foram feitas "no bom dia". ^^

gablin
fonte
A única vez (acho) em que o mercado estava ruim para a COBOL foi durante o apocalipse pontocom com o e-hype e tudo.
Luis.espinal 18/10/10
1

De uma perspectiva pessoal, eu diria que há coisas melhores para aprender primeiro. No entanto, muitas empresas grandes têm investimentos muito grandes em sua base de código COBOL que provavelmente nunca serão capazes de deixar para trás, criando um setor para programadores de COBOL manterem a base de código e escreverem um novo código. A empresa em que trabalho é uma grande empresa financeira e nossa divisão de tecnologia para desenvolvedores é de aproximadamente 30% COBOL, 40% Java e 30% C #.

Chris Knight
fonte
2
possível, sim, mas por que - código funcional é código funcional.
0

Acabei de fazer uma pesquisa por "cobol" no maior site de empregos da Austrália. Ele retornou 87 resultados e (de uma rápida olhada) eles parecem ser posições de manutenção herdadas em bancos e instituições financeiras. Principalmente mais bem remunerado do que os trabalhos baseados na linguagem "moderna" - presumivelmente devido à raridade da experiência Cobol.

Então sim, parece que vale a pena aprender Cobol se você 1) não se importar em fazer manutenção legada e 2) você quiser entrar em um nicho que seja bem pago e provavelmente não muito competitivo, já que é algo que poucas pessoas estão aprendendo mais.

(Suponho que o mercado de Cobol seria semelhante na maioria das economias do Primeiro Mundo, mas poderia estar errado?)

Bobby Tables
fonte
Até os bancos / seguros / AP estão evoluindo lentamente para tecnologias mais modernas. Então, agora, entrar nesse nicho pode ser bom, mas o que acontecerá quando eventualmente todo o código legado e seu mercado de nicho desaparecerem?
Wizard79
@ Lorenzo: Bem, isso pode ser dito sobre qualquer especialidade em nosso campo (mesmo em todos os campos em geral). Re-treinamento. por exemplo. Vapor maquinistas tinham de treinar e se tornar a diesel ou elétricas maquinistas de locomotivas, etc etc :)
Tabelas de Bobby
Mas o COBOL já é um nicho ... a idéia é que, se você adotar o COBOL agora, provavelmente precisará treinar mais cedo do que outras tecnologias.
Wizard79
1
@ Lorenzo - Não, na verdade não. O fato de não serem populares no cs univ. Não os torna automaticamente um nicho. Significa apenas que você não se move em círculos onde os encontra. Quantos trabalhadores que trabalham na produção de linhas de automóveis você conhece? Arquitetos navais? Pilotos de avião? Você acha que eles também são nicho? (e também, para ambas as categorias de exemplo, você terá problemas para encontrar anúncios de emprego). É preciso saber para onde olhar.
Rook
1
@ Lorenzo - você realmente acredita que todo o código e base de conhecimento COBOL e FORTRAN acabará sendo reescrito? Quero dizer, sério. Nunca conheci ninguém na indústria e na academia que acredite que isso seja possível, muito menos desejável . Por mais feio que pareça o COBOL (uma reação subjetiva), esses sistemas funcionam bem, muito melhor do que o lixo eletrônico que estamos construindo desde os dias pontocom. Isso é uma prova da qualidade industrial. É melhor engenharia e economia para manter esses sistemas em oposição a reescrevê-los (assumindo risco zero e recursos econômicos infinitas.)
luis.espinal
0

Pense nos tipos de domínios com problemas nos quais você deseja trabalhar. Normalmente, esses domínios têm um conjunto de idiomas que geralmente são usados ​​para esse fim. Se COBOL corresponder a isso, vá em frente.

Não há como tocar no cobol ou no (s) domínio (s) do problema que o usam fortemente com um bastão de 10 pés. Eu prefiro comer hambúrgueres.

Considere também se a linguagem oferece algum bônus / melhoria às suas habilidades / conceitos de programação. Não consigo pensar em nada que o COBOL possa fazer / implementar / recursos que não sejam melhores ou que possam ser demonstrados melhor em outro idioma.

Você e outras pessoas podem se sentir diferentes.

Tim
fonte
0

Ainda existem muitos sistemas legados escritos em COBOL. Se você deseja mantê-los ou portá-los para outras linguagens de programação, ainda vale a pena aprender COBOL.

Não importa o que seja, algum conhecimento em várias linguagens de programação será uma vantagem, pois o conhecimento que você possui permite escolher uma linguagem de programação ou abordagem para diferentes necessidades do projeto. Você pode usar seu conhecimento em linguagens de programação para criar códigos melhores, mais limpos e mais eficientes e para evitar armadilhas.

Adrian Hoe
fonte
Entre 2004 e 2005, participei de um projeto de modernização da Marinha no meu país, portando cerca de 200KSLOC de Ada83 para Ada95 e outros 25KSLOC de COBOL68 e COBOL74 para Ada95. Eu aprendi COBOL em 1987 e definitivamente vale a pena o tempo e o esforço para aprender COBOL. Eu não poderia imaginar se eu não tivesse conhecimento prévio de COBOL.
Adrian Hoe