No momento em que escrevo estas linhas, a linguagem de programação Java lança a sua 21.ª versão – como sempre, com algumas funcionalidades como virtual threads, padrões de registo, API para mecanismos de encapsulamento de chaves, correspondência de padrões, entre outras, algumas das quais em formato de pré-visualização. No entanto, o objetivo aqui não é destacar as funcionalidades do Java, mas sim discutir a aplicabilidade da linguagem nos dias de hoje e tentar compreender se ainda vale a pena um programador investir o seu tempo e esforço nesta linguagem.
Como experiente programador Java (também conhecido como “dinossauro”) que começou a aprender a linguagem em 1999 e a utiliza profissionalmente há mais de 23 anos, penso que posso trazer alguns argumentos para a mesa. Claro que não espero dar uma resposta simples à pergunta que coloquei no início, e tenho a certeza de que estarei longe de obter consenso sobre isso, mas sinto-me à vontade para falar sobre a minha própria experiência com a linguagem e dar uma opinião sobre o que considero serem as forças e as fraquezas do Java.
O Java nasceu oficialmente em 1995 e viu a sua versão 1.0 ser lançada em janeiro de 1996. A Sun Microsystems, empresa por trás do Java, era maioritariamente conhecida pelos seus computadores, naquela época, mas também por ser defensora do software aberto. Esse princípio foi importante para o desenvolvimento da linguagem e pode ser exemplificado pela aquisição da base de dados MySQL em 2008, apenas um ano antes de a empresa ser vendida à Oracle.
Quando comecei a utilizar Java profissionalmente, a linguagem estava na sua versão 1.2, e o ambiente em que os programadores trabalhavam era muito diferente do “mundo” de linguagens e ferramentas que temos hoje, especialmente no que diz respeito ao desenvolvimento web.
No início, o Java era considerado uma boa escolha para construir aplicações web. Conceitos como “front-end” e “back-end” praticamente não existiam, e as opções que tínhamos para construir interfaces web eram limitadas a HTML, CSS e JavaScript.
A era dos frameworks estava apenas a começar. Quando comecei a desenvolver em Java, utilizávamos coisas como Java Server Pages (JSP) e Servlets para escrever código para aplicações web. A dada altura, começaram a surgir frameworks e as coisas ficaram um pouco mais fáceis (embora algumas pessoas possam discordar disso).
Com o tempo, novos frameworks e ferramentas surgiram e desapareceram, novas versões do Java introduziram novas maneiras de lidar com os problemas, e as coisas mudaram tanto que às vezes é difícil acreditar que a própria linguagem ainda está aqui.
Hoje, o Java é considerado uma referência para o desenvolvimento de back-end. Utilizei o Java num contexto em que quase não existiam frameworks para front-end. Ao longo da minha carreira, experimentei Java Server Pages, Struts, Java Server Faces, PrimeFaces, entre outros frameworks, juntamente com HTML, CSS e JavaScript, mas sempre me pareceu que o Java não era a solução ideal para front-end. Quando os frameworks de JavaScript surgiram, o uso do Java em back-end tornou-se padrão.
Antes de abordar alguns (alegados) problemas e benefícios do Java, gostaria de falar sobre outro conceito que considero intrínseco à linguagem e, para isso, usarei minha experiência como professor. Java foi a primeira linguagem de programação mainstream a utilizar conceitos de orientação a objetos a nível comercial, com razoável sucesso. Portanto, para aprender Java e usá-la adequadamente, sempre foi necessário compreender o paradigma da POO.
Deparei-me com esse problema não apenas como developer, mas também como professor. Durante 16 anos, preparei estudantes para serem programadores, tentando ensinar-lhes Java, POO e Análise e Design Orientado a Objetos. Para ser um bom programador, o processo começa com um bom raciocínio lógico e matemático. A maioria dos estudantes (60-80%) que chegava às minhas aulas de Java não possuía essas bases, o que tornava o meu trabalho muito mais difícil.
Claro que isso acontece ao aprender qualquer linguagem de programação. No entanto, no caso do Java, os estudantes também precisavam de estudar a orientação a objetos, o que levava a muita frustração. No final, a maioria deles culpava o Java por ser “muito difícil” de aprender, quando a questão é um pouco mais complicada. Uma nota final sobre isso: alguns estudantes, quando finalmente entendiam os conceitos de POO, como herança e polimorfismo, ficavam tão ansiosos para usá-los que acabavam por aplicá-los de maneira incorreta. Mas essa é outra discussão.
Falemos agora sobre alguns aspetos do Java que abrem espaço para discussão: funcionalidades boas e más que levam as pessoas a amar ou odiar a linguagem.
De acordo com o índice TIOBE, que mede a popularidade das linguagens de programação e é atualizado mensalmente, o Java ainda está entre as cinco linguagens mais populares do mundo. Isso é um bom indicador de que a linguagem ainda está viva.
O Java é compatível com muitas soluções utilizadas por developers para produzir um sistema de computador funcional. A maioria das ferramentas desenvolvidas no mercado é compatível com Java, o que demonstra a força e popularidade dessa linguagem.
Basta olhar para o Stackshare, um portal onde developers e empresas partilham as ferramentas que utilizam nas suas atividades normais. Podemos ver que empresas como Uber, Instagram, Airbnb, Netflix, Google, Amazon, entre outras, recorrem ao Java.
Isso significa que existem sempre vagas de emprego para developers Java e essas oportunidades não parecem diminuir. Uma pesquisa rápida por ofertas de emprego Java em sites como o LinkedIn, por exemplo, pode comprovar isso.
Por fim, posso dizer, com base na minha própria experiência, que o Java é usado em grandes empresas para construir sistemas que agregam valor a milhões de pessoas. Ao longo da minha carreira, tive a oportunidade de participar de muitos projetos importantes que tinham o Java como base – por exemplo, o sistema de pagamento instantâneo mais popular do Brasil, chamado Pix, foi desenvolvido com recurso a uma variedade de tecnologias, mas no seu núcleo existe código Java em execução.
É claro que o Java não tem hoje a relevância que teve no passado. Não sabemos por quanto tempo a linguagem irá sobreviver, mas os factos não parecem sugerir um desaparecimento a curto ou médio prazo. Produtos em Java continuam a ser desenvolvidos e preservados, gerando uma procura que podemos ver todos os dias.
Portanto, o Java não está morto, ou pelo menos não perto do seu fim. O Java tem os seus problemas, mas ainda é amplamente utilizado, em parte porque possui uma grande base de sistemas instalados, uma vasta comunidade e ecossistema, mas também porque funciona e as pessoas consideram-no confiável. Também é verdade que a linguagem continua a reinventar-se ao longo dos anos.
Com o desenvolvimento de novas tecnologias, especialmente na área da Inteligência Artificial (IA), há quem diga que as linguagens de programação já não serão utilizadas dentro de alguns anos. Verdade ou não, isso é um desafio não apenas para o Java, mas para todas as linguagens de programação. O facto é que todas elas terão de se adaptar ao mundo em constante mudança em que vivemos.
* Citação famosa do filme Blade Runner (1982), dita por Gaff (personagem de Edward James Olmos).
No momento em que escrevo estas linhas, a linguagem de programação Java lança a sua 21.ª versão – como sempre, com algumas funcionalidades como virtual threads, padrões de registo, API para mecanismos de encapsulamento de chaves, correspondência de padrões, entre outras, algumas das quais em formato de pré-visualização. No entanto, o objetivo aqui não é destacar as funcionalidades do Java, mas sim discutir a aplicabilidade da linguagem nos dias de hoje e tentar compreender se ainda vale a pena um programador investir o seu tempo e esforço nesta linguagem.
Como experiente programador Java (também conhecido como “dinossauro”) que começou a aprender a linguagem em 1999 e a utiliza profissionalmente há mais de 23 anos, penso que posso trazer alguns argumentos para a mesa. Claro que não espero dar uma resposta simples à pergunta que coloquei no início, e tenho a certeza de que estarei longe de obter consenso sobre isso, mas sinto-me à vontade para falar sobre a minha própria experiência com a linguagem e dar uma opinião sobre o que considero serem as forças e as fraquezas do Java.
O Java nasceu oficialmente em 1995 e viu a sua versão 1.0 ser lançada em janeiro de 1996. A Sun Microsystems, empresa por trás do Java, era maioritariamente conhecida pelos seus computadores, naquela época, mas também por ser defensora do software aberto. Esse princípio foi importante para o desenvolvimento da linguagem e pode ser exemplificado pela aquisição da base de dados MySQL em 2008, apenas um ano antes de a empresa ser vendida à Oracle.
Quando comecei a utilizar Java profissionalmente, a linguagem estava na sua versão 1.2, e o ambiente em que os programadores trabalhavam era muito diferente do “mundo” de linguagens e ferramentas que temos hoje, especialmente no que diz respeito ao desenvolvimento web.
No início, o Java era considerado uma boa escolha para construir aplicações web. Conceitos como “front-end” e “back-end” praticamente não existiam, e as opções que tínhamos para construir interfaces web eram limitadas a HTML, CSS e JavaScript.
A era dos frameworks estava apenas a começar. Quando comecei a desenvolver em Java, utilizávamos coisas como Java Server Pages (JSP) e Servlets para escrever código para aplicações web. A dada altura, começaram a surgir frameworks e as coisas ficaram um pouco mais fáceis (embora algumas pessoas possam discordar disso).
Com o tempo, novos frameworks e ferramentas surgiram e desapareceram, novas versões do Java introduziram novas maneiras de lidar com os problemas, e as coisas mudaram tanto que às vezes é difícil acreditar que a própria linguagem ainda está aqui.
Hoje, o Java é considerado uma referência para o desenvolvimento de back-end. Utilizei o Java num contexto em que quase não existiam frameworks para front-end. Ao longo da minha carreira, experimentei Java Server Pages, Struts, Java Server Faces, PrimeFaces, entre outros frameworks, juntamente com HTML, CSS e JavaScript, mas sempre me pareceu que o Java não era a solução ideal para front-end. Quando os frameworks de JavaScript surgiram, o uso do Java em back-end tornou-se padrão.
Antes de abordar alguns (alegados) problemas e benefícios do Java, gostaria de falar sobre outro conceito que considero intrínseco à linguagem e, para isso, usarei minha experiência como professor. Java foi a primeira linguagem de programação mainstream a utilizar conceitos de orientação a objetos a nível comercial, com razoável sucesso. Portanto, para aprender Java e usá-la adequadamente, sempre foi necessário compreender o paradigma da POO.
Deparei-me com esse problema não apenas como developer, mas também como professor. Durante 16 anos, preparei estudantes para serem programadores, tentando ensinar-lhes Java, POO e Análise e Design Orientado a Objetos. Para ser um bom programador, o processo começa com um bom raciocínio lógico e matemático. A maioria dos estudantes (60-80%) que chegava às minhas aulas de Java não possuía essas bases, o que tornava o meu trabalho muito mais difícil.
Claro que isso acontece ao aprender qualquer linguagem de programação. No entanto, no caso do Java, os estudantes também precisavam de estudar a orientação a objetos, o que levava a muita frustração. No final, a maioria deles culpava o Java por ser “muito difícil” de aprender, quando a questão é um pouco mais complicada. Uma nota final sobre isso: alguns estudantes, quando finalmente entendiam os conceitos de POO, como herança e polimorfismo, ficavam tão ansiosos para usá-los que acabavam por aplicá-los de maneira incorreta. Mas essa é outra discussão.
Falemos agora sobre alguns aspetos do Java que abrem espaço para discussão: funcionalidades boas e más que levam as pessoas a amar ou odiar a linguagem.
De acordo com o índice TIOBE, que mede a popularidade das linguagens de programação e é atualizado mensalmente, o Java ainda está entre as cinco linguagens mais populares do mundo. Isso é um bom indicador de que a linguagem ainda está viva.
O Java é compatível com muitas soluções utilizadas por developers para produzir um sistema de computador funcional. A maioria das ferramentas desenvolvidas no mercado é compatível com Java, o que demonstra a força e popularidade dessa linguagem.
Basta olhar para o Stackshare, um portal onde developers e empresas partilham as ferramentas que utilizam nas suas atividades normais. Podemos ver que empresas como Uber, Instagram, Airbnb, Netflix, Google, Amazon, entre outras, recorrem ao Java.
Isso significa que existem sempre vagas de emprego para developers Java e essas oportunidades não parecem diminuir. Uma pesquisa rápida por ofertas de emprego Java em sites como o LinkedIn, por exemplo, pode comprovar isso.
Por fim, posso dizer, com base na minha própria experiência, que o Java é usado em grandes empresas para construir sistemas que agregam valor a milhões de pessoas. Ao longo da minha carreira, tive a oportunidade de participar de muitos projetos importantes que tinham o Java como base – por exemplo, o sistema de pagamento instantâneo mais popular do Brasil, chamado Pix, foi desenvolvido com recurso a uma variedade de tecnologias, mas no seu núcleo existe código Java em execução.
É claro que o Java não tem hoje a relevância que teve no passado. Não sabemos por quanto tempo a linguagem irá sobreviver, mas os factos não parecem sugerir um desaparecimento a curto ou médio prazo. Produtos em Java continuam a ser desenvolvidos e preservados, gerando uma procura que podemos ver todos os dias.
Portanto, o Java não está morto, ou pelo menos não perto do seu fim. O Java tem os seus problemas, mas ainda é amplamente utilizado, em parte porque possui uma grande base de sistemas instalados, uma vasta comunidade e ecossistema, mas também porque funciona e as pessoas consideram-no confiável. Também é verdade que a linguagem continua a reinventar-se ao longo dos anos.
Com o desenvolvimento de novas tecnologias, especialmente na área da Inteligência Artificial (IA), há quem diga que as linguagens de programação já não serão utilizadas dentro de alguns anos. Verdade ou não, isso é um desafio não apenas para o Java, mas para todas as linguagens de programação. O facto é que todas elas terão de se adaptar ao mundo em constante mudança em que vivemos.
* Citação famosa do filme Blade Runner (1982), dita por Gaff (personagem de Edward James Olmos).