Java — Uma tecnologia resistente aos ciclos econômicos

Vinícius Pereira de Oliveira
12 min readMar 31, 2023

Seria a plataforma Java uma tecnologia resistente aos diferentes ciclos econômicos que ocorreram desde o seu lançamento no ano de 1995 ?

Primeiramente, para o correto entendimento do raciocínio deste artigo temos que definir o que seriam ciclos econômicos e o que significa ser resistente a eles.

Observação: este artigo pode ser especialmente importante para quem planeja focar estudos em uma linguagem de programação e está considerando a linguagem Java. O objetivo é mostrar o quão relevante é a plataforma no atual e futuro mercado de tecnologia.

Ciclos Econômicos:

De forma muito simples, visto que este não é o foco deste artigo, ciclos econômicos são o conjunto de diferentes fases da atividade econômica que pode ser de um país específico ou mesmo relativo a atividade econômica global. São momentos de expansão, abrandamento, estagnação, recessão e recuperação. É possível encontrar alguma variação quanto a definição/nomeclatura destas fases, mas a ideia essêncial é esta, os ciclos são fases distintas da economia dentro de um período de tempo.

A depender de ações específicas de cada governo, bancos centrais ou de outras variáveis as fases destes ciclos podem ainda não seguir exatamente esta ordem, um país pode por exemplo passar por um momento de estagnação e logo passar a um momento de recuperação sem passar necessariamente por uma recessão, entretanto, os ciclos tendem a ocorrer de uma ou outra maneira. De uma maneira geral a economia se expande quando indivíduos, famílias e empresas consomem mais e isto leva a mais demanda por produtos e serviços e desta forma temos uma economia “aquecida”, depois de um tempo ocorre o abrandamento e possível estagnação (o que também pode ser considerado em muitos casos como “crises financeiras”) e eventualmente uma recessão e por fim a recuperação, quando o ciclo está pronto a ser iniciado novamente.

Resistência aos ciclos econômicos:

Produtos, serviços, empresas, famílias e indivíduos atravessam as fases dos ciclos econômicos de maneiras diferentes. Alguns estão mais fragilizados e expostos enquanto outros resistem mais. Um exemplo clássico e que pode servir de analogia ao raciocínio deste artigo, é a indústria automotiva.

Na fase de expansão econômica e de alto consumo, as marcas de automóveis tendem a fazer boas vendas de todos ou quase todos os modelos lançados e alguns trazem bons lucros por curtos períodos de tempo. Já na fase de abrandamento da economia alguns modelos de veículos mantem as vendas mais fortes, enquanto outros modelos tem queda nas vendas. Por fim, em crises econômicas geralmente modelos de veículos já consolidados no mercado e aprovados por uma parcela de consumidores, com upgrades e evolução nas versões mais recentes, estes acabam por manter vendas enquanto tantos outros não. Podemos dizer que os modelos de veículos que vendem (ainda que menos) mesmo em crises financeiras são resistentes aos ciclos econômicos.

Sobre a tecnologia

Como exatamente os parágrafos acima se relacionam ao Java enquanto plataforma ?

Linguagens de programação são ferramentas tecnológicas criadas com o objetivo de desenvolver software. Existe uma gama abrangente de linguagens de programação e geralmente as mesmas são criadas para satisfazer necessidades específicas, no caso do Java, a motivação principal por trás do projeto de criação nos anos 90 foi a necessidade de executar um mesmo código-fonte em diferentes plataformas e/ou Sistemas Operacionais (SO) como Windows, Linux, Unix, MacOS, etc. Basta que o SO tenha a JVM (Java Virtual Machine) e a “mágica” acontece.

“Escreva o código uma vez, execute em qualquer lugar.”

Esse foi o slogan de lançamento da plataforma Java.

Mas isto foi nos anos 90 quando ainda não tínhamos tecnologias avançadas de virtualização de computadores ou o conceito de containers como por exemplo o Docker.

Se hoje (março/2023) já avançamos bastante em ferramentas que permitem executar código isolado em containers, por qual motivo o Java continuou e ainda continua sendo uma plataforma muito utilizada para manter projetos e também para criar novos projetos de software ?

O Java enquanto linguagem de programação e plataforma se saiu muito bem quanto ao seu objetivo principal nos anos 90 e portanto ganhou uma fatia muito grande no mercado de aplicações de todo tipo, que precisavam executar em diferentes plataformas.

Pode-se considerar que esta vantagem (executar sobre a JVM) permitiu a plataforma Java estar inserida em projetos de pequeno, médio e grande porte de grandes empresas no mundo inteiro muito rapidamente. No entanto, o Java foi além pois se consolidou como uma linguagem orientada a objetos bem arquitetada e a despeito de a JVM consumir demasiados recursos de hardware dos servidores, o resultado final quando a arquitetura das aplicações era bem desenhada e o código bem escrito, eram aplicações corporativas de alta performance e confiáveis.

Os obstáculos no caminho

A década de 90 foi interessantes para a plataforma Java, mas a partir dos anos 2000 ela cresceu ainda mais, porém é interessante pontuar que nos anos de 2000/2001 estourou a bolha financeira das empresas de internet, o que ficou conhecido como a “bolha da internet” ou a “bolha .com”. A plataforma Java, assim como outras como PHP buscavam acompanhar o crescimento da então recente Internet. A novidade e potencial da internet fizeram com que investidores injetassem altos volumes financeiros em todo tipo de projetos “inovadores” para a nova era da web. Como em toda bolha financeira o fato é que muitas das empresas não tinham negócios realmente sólidos e quando o mercado de investidores da Nasdaq (bolsa de tecnologia dos EUA) compreendeu que grande parte das supostas empresas de tecnologia não eram viáveis, projetos foram cancelados e empresas foram encerradas. A plataforma Java e outras implementaram em sua estrutura suporte para desenvolvimento web. Por volta do ano 1997 foi implementada a Java Servlet Specification version 1.0 que permitia a criação de aplicações web dinâmicas com suporte ao protocolo http. Certamente muitas das empresas cujos projetos foram encerrados devido a crise das empresas da internet em 2000 e 2001, usavam entre outras tecnologias, a linguagem Java para desenvolver seus produtos.

O fato de uma enorme crise financeira ter abalado projetos não parou a evolução das plataformas tecnológicas pensando no futuro e crescimento da web, dentre elas obviamente a plataforma Java. Empresas que se mantiveram sólidas no mercado (sendo ou não do ramo de tecnologia) continuavam necessitando cada vez mais de aplicações que executassem em servidores conectados em diferentes regiões geográficas, Java já tinha grande mercado e acabou sendo em muitos casos a escolha natural para novos projetos e desafios. Desde 1998 a comunidade de desenvolvedores Java já contava com o JCP (Java Community Process) que é um processo de colaboração liderado pela comunidade para desenvolver padrões técnicos para a plataforma Java. Os membros do JCP incluem empresas, organizações e indivíduos que desejam contribuir para o desenvolvimento da plataforma Java. Qualquer pessoa pode se tornar um membro do JCP, e existem diferentes níveis de associação disponíveis. Importante ressaltar que empresas distintas sempre tiveram grande contribuição nesse processo e dentre algumas podemos citar IBM, Nokia, Oracle, Microsoft, SAP, Fujitsu entre tantas outras. As gigantes que sempre contribuíram com o mundo do desenvolvimento de software tem alta estima pela plataforma Java.

Ano de 2008, nova crise financeira global seguida de mudanças na indústria de tecnologia

A evolução tecnológica não parou após a crise financeira de 2000/2001, ao contrário a evolução avançou. Em 2006 emergia a Amazon Web Services (AWS) que trazia consigo um novo conceito de Computação em Nuvem, um marco na forma como empresas e usuários utilizavam a internet. Do lado do desenvolvimento de aplicações web, crescia rapidamente a adoção de diversas tecnologias além do Java, como PHP e Javascript (que facilitava muito o desenvolvimento de páginas web dinâmicas).

Em 2008 estourou uma nova crise financeira (crise do subprime nos EUA) que envolvia inicialmente grandes bancos de investimento, desta vez uma crise mais grave pois os mercados já estavam mais interconectados e os efeitos foram sentidos globalmente. Uma das formas encontradas por autoridades governamentais e bancos centrais no mundo inteiro foi primeiramente salvar os bancos da falência injetando dinheiro nos mesmos e nas décadas que se seguiram foi a Flexibilização Quantitativa que na prática era o ato de inundar a economia com dinheiro ao passo que se reduzia a taxa de juros de referência para evitar uma recessão generalizada da economia. Sim, foi uma tentativa de tentar controlar o ciclo econômico ou ao menos evitar a parte mais dolorosa que neste caso seria realmente dolorosa a nível global.

Através da Flexibilização Quantitativa iniciada por vários bancos centrais para dar resposta a crise financeira de 2008, em especial o Banco Central dos EUA (Federal Reserve) e o Banco Central da Europa, o crédito ficou cada vez mais acessível e isto encorajou cada vez mais projetos e empreendimentos de risco. Investidores tinham acesso a crédito com juros baixos e voltaram a investir pesado na nova era das startups. A regra já não era exatamente criar um negócio comprovadamente lucrativo mas sim um negócio que viesse a escalar, crescer rapidamente dominando o máximo de mercado possível. Empreendedores talentosos e outros nem tanto entravam na corrida para “provar” que sua empresa era a próxima a ser estimada em 1 bilhão de dólares e assim angariar pesadas rodadas de investimentos. Uber, Netflix, WeWork, Spotify são alguns dos frutos dessa era, mas o mercado foi inundado de muitas novas empresas supostamente inovadoras com culturas diferentes das antigas empresas de tecnologia.

No lado tecnológico, a plataforma Java continuava firme, mas viu seu espaço diminuir rapidamente. No novo mundo da corrida por inovação, a área do desenvolvimento e engenharia de software viu surgir novos tipos de arquiteturas, evolução de alguns já existentes e ferramentas espetaculares que permitiam escalar projetos de forma rápida e eficiente. Se tem algo que não se pode negar é que o crédito barato e a cultura alucinada das startups de crescimento rápido sem garantias de lucratividade, trouxe desafios técnicos dos mais diversos para as equipes de engenharia de software no mundo inteiro. O Java já não reinava soberano no novo mundo, ao contrário, agora tinha concorrentes novos (NodeJS, Golang) e alguns já antigos (.Net framework, Python) ao passo que outros como PHP embora ainda ativos perderam espaço. Projetos inovadores exigiam identidade e mostrar a identidade visual de um produto passa por websites e aplicações web com visual arrojado, moderno, fluído. Não seria muito produtivo apostar as fichas em JSP’s ou JSF. O Java foi retirado de cena e o Javascript dominou o cenário frontend com ascensão meteórica. Novos frameworks Javascript surgiam a cada semana, um prometendo mais produtividade do que o outro. Java ainda era uma escolha frequente no backend, frameworks como o Spring Boot ajudaram a manter a stack Java viva mesmo em muitas startups, mas não seria errado dizer que Java continuava ainda mais firme dentro das mesmas tradicionais grandes empresas, só que agora trazendo as evoluções da plataforma. As ferramentas usadas para contruir a próxima empresa de 1 bilhão de dólares variavam muito e geralmente o hype da nova tecnologia da moda se transformava na base de código de novos e “promissores” negócios.

Todos os novos aspirantes a se tornar um Desenvolvedor de Software tinham “toneladas” de conteúdo sobre o mais recente framework Javascript de mercado, bootcamps que ensinavam a se tornar um sênior developer em 1 ano e dominar tecnologias de frontend e backend, o que conhecemos por Full-Stack Developers porque o mercado estava imensamente carente destes profissionais. Sim de fato estava e em algum nível ainda está, mas o hype direcionava novos desenvolvedores iniciantes a dar foco demasiado a tecnologias e linguagens de programação mais recentes enquanto outras, ainda que tivessem também muitas oportunidades, não receberam tanta atenção dos aprendizes.

Ano de 2022 e 2023 — Inflação e crise de crédito

Alguns economistas e pessoas que acompanhavam o mercado financeiro desde antes de 2008 continuamente alertavam que a injeção de dinheiro na economia vinda dos bancos centrais e taxa de juros mantida baixa por tanto tempo, provavelmente iria culminar em inflação difícil de ser controlada. Para deixar as coisas mais dramáticas, o mundo viveu uma pandemia global em 2020 e o início de uma guerra envolvendo uma potência nuclear (Rússia) e a Ucrância em 2022. Booom!

Para conter a inflação que tomou conta do globo a partir de 2021 os mesmos Bancos Centrais que permitiram o crédito barato e injeção de dinheiro na economia começaram a “fechar a torneira” e subir juros gradativa e continuamente.

A massa de startups que só pensava em crescer rápido buscando novas rodadas de investimentos e nunca descobria como o negócio daria lucro sólido, começou a ver seus investidores abandorarem o risco de investir em “projetos super inovadores”. Sem o dinheiro dos investidores mesmo empresas já consolidadas como Google, Amazon, Microsoft e outras começaram a reduzir despesas, cancelar projetos e… demitir funcionários.
O que dizer de startups que não tinham fluxo de caixa tão poderoso quanto as Big Techs ? Demissões e mais demissões em todos os lados.

Legado de uma era

Novamente eu gostaria de pontuar que o período de crédito barato e a moda de startups que buscavam escabalidade e performance em suas aplicações trouxe um mundo de novos desafios técnicos e isso foi incrivelmente benéfico para a indústria de software. Linguagens de programação mais atigas como Java, Python e Javascript (nas camadas de frontend) tiveram novos horizontes para explorar através das comunidades de desenvolvedores e desafios que surgiam, linguagens mais recentes como Nodejs e Golang mostraram todo o seu potencial para resolução de problemas.

A plataforma Java viu o Spring Boot dominar o desenvolvimento com esta stack e recentemente tem visto o Quarkus crescer a ganhar bastante mercado, tudo em resposta a desafios técnicos ligados a desafios de negócios. A indústria de software de maneira geral ganhou muito, mas e agora ? O que esperar de 2023 para frente ?

O legado pode ser a semente de um futuro

Acredito que o hype de novas linguagens e frameworks da camada de visualização das aplicações (frontend), sejam elas web ou mobile, criou a expectativa de que o futuro do desenvolvimento de software passava por aprender rapidamente e dominar tais tecnologias visto que de fato haviam muitas vagas principalmente em Startups. Agora, com a correção do mercado em um cenário em que todas as empresas passam por alguma dificuldade financeira, percebe-se que empresas sólidas com modelos de negócios já consolidados por bastante tempo precisam continuar evoluindo e investindo em tecnologia e adivinha, muitas delas nunca abandonaram a plataforma Java. A comunidade conhece o legado do que foi feito no projeto que começou liderado por James Gosling nos anos 90. Algumas empresas adotaram sim as novas linguagens de programação do momento em alguns projetos e muitas delas investiram pesado em tecnologias do hype, mas as aplicações corporativas e que são essenciais para manter a operações de grandes negócios no mundo inteiro ainda tendem a ser mantidas e atualizadas com Java, C# e tecnologias que para muitos da nova geração eram consideradas “linguagens em extinção”.

Obviamente que muitos novos projetos não vão utilizar Java e novas tecnologias surgiram, se mostraram eficientes e também terão a chance de se consolidar.

Startups que realmente tinham um negócio sólido e com real potencial de lucratividade devem permanecer, e muitas delas também apostaram na plataforma Java. A economia em si, em algum momento deverá entrar na fase recuperação os novos projetos que devem surgir quando a economia aquecer novamente certamente vão considerar a maturidade e evolução das plataformas tecnológicas disponíveis.

A plataforma Java, levando em consideração o core da linguagem de programação tem recebido grande atenção tanto da Oracle quanto da Eclipse Foundation, a plataforma tem recebido atualizações constantes com novas features que evidenciam a preocupação em manter a linguagem Java moderna, confiável, produtiva e flexível sem perder sua arquitetura robusta e já atestada por mais de 20 anos de uso no mercado.

A RedHat tem feito um trabalho espetacular com o Quarkus Framework tornando o Java uma alternativa amigável, flexível e economica para ambientes de Nuvem. A VMWare mantém a ótima qualidade do Spring Boot Framework.

Enquanto a engenharia de software ainda é majoritariamente um campo onde pessoas (e não IA’s) definem as melhores ferramentas para manter ou iniciar novos projetos, a plataforma Java certamente vai se manter forte na indústria de software de modo que se você já tem um certo domínio da plataforma Java, é mais do que importante aprender novas tecnologias e evoluir profissionalmente, entretanto se você está pensando em iniciar os estudos ou mesmo aprofundar conhecimentos em uma linguagem de programação considerando o mercado de trabalho, penso que este artigo possa ser útil em demonstrar que um legado bem construído sob fundamentos sólidos geralmente é resiliente e duradouro e neste caso Java pode ser uma escolha interessante, ainda que depois a evolução de carreira possa trazer desafios de aprender novas e diferentes tecnologias.

Referências:

Espero que o artigo possa ter sido útil e obrigado pela leitura.

Se quiser conhecer mais sobre os meus cursos voltados ao desenvolvimento com Java, basta acessar o link abaixo:

Cursos de Java com Spring Boot e Quarkus Framework

--

--