O aprendizado do COBOL ainda faz sentido?
O aprendizado do COBOL ainda faz sentido?
Respostas:
Acho que não, a menos que você já esteja no nicho de mercado em que o COBOL ainda é mantido.
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.
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á.
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.
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.
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.
Escrevemos novo código Cobol todos os dias e estamos em constante busca de novos programadores. O suprimento é muito pequeno por aqui.
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.
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.
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.)
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.
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.
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". ^^
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 #.
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?)
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.
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.