Mito do Java #2: Java é Pesado

Java é pesado demais, melhor usar outra linguagem de programação“. Você já ouviu isso, não ouviu? Acredito que sim, pois esse é um dos maiores MITOS do Java, e que toda hora é repetido pelos programadores.

Eu atribuo esse mito a questões históricas, pois o Java realmente era bastante pesado há alguns anos atrás. Só que as coisas já mudaram há algum tempo, e estão cada vez melhores!

Como esse é um assunto bastante importante, gravei um vídeo explicando sobre esse que é um dos grandes mitos da linguagem Java. Confira!

 

 

Essa questão de ser “pesado” tem uma relação direta com a quantidade de memória RAM utilizada durante a execução do programa. Como você deve saber, um programa Java não consegue ser executado sozinho. Ele precisa que a JVM (máquina virtual do Java) o execute. Portanto quando você inicia um programa Java, a JVM também é carregada na memória, o que traz esse acréscimo no uso da memória RAM.

Há alguns anos atrás, a JVM não usava técnicas tão avançadas como hoje e, de fato, ocupava muita memória RAM! Mas com o passar do tempo, a JVM foi mudando e ficando cada vez mais otimizada. E outra questão que passou a ajudar muito na redução do uso da memória foi o suporte, a partir do Java 9, à modularização.

A modularização consiste em compartimentalizar as APIs que fazem parte da linguagem Java, agrupando-as em módulos. Quando você cria uma aplicação Java, você pode determinar quais são os módulos que a sua aplicação precisa. Durante a execução, a JVM vai carregar apenas as APIs que fazem parte desse subconjunto que é realmente necessário, diminuindo a quantidade de memória usada na execução (antes da modularização, TUDO era carregado na memória, mesmo que você não usasse).

Talvez você esteja neste momento pensando o seguinte: “Carlos, se o que deixa aplicações Java mais pesadas é a JVM, ela é algo ruim, certo?“.

Não, ERRADO! A JVM é excelente, pois ela oferece uma série de serviços às aplicações Java (como segurança, coleta de lixo, checagem de tipos de dados, etc.), que conferem grande robustez aos sistemas! Se hoje o Java é uma das principais escolhas de grandes bancos e grandes lojas de e-commerce, isso é devido, em grande parte, à existência da JVM.

Aliás, os serviços da JVM tiram dos ombros de desenvolvedor a responsabilidade de programar uma série de coisas. O desenvolvedor pode confiar nos serviços já existentes e focar no que é mais importante: desenvolver a lógica de negócio do sistema propriamente dito.

Mas é como dizem por aí: não existe almoço grátis. O fato da JVM fazer uma série de coisas traz junto a desvantagem de aumentar o consumo de memória. Mas esse consumo atualmente não é algo significativo como era há anos atrás.

Se você achava que o Java era um elefante pesadão, espero ter conseguido fazer você mudar de opinião. Que tal agora espalhar isso pros seus amigos? Compartilhe esse post com eles e ajude a disseminar verdades sobre o Java, ao invés de mitos!

Alguma vez você já escutou esse mito? Diz aí pra mim!

 

Sobre o autor

Carlos Tosin

Carlos Tosin

Carlos Eduardo Gusso Tosin é formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento de Jogos para Computador pela Universidade Positivo, Mestre em Informática na área de Sistemas Distribuídos, também pela PUC-PR. Trabalha profissionalmente com Java desde 2002 e possui 6 anos de experiência no desenvolvimento de sistemas para a IBM dos Estados Unidos, utilizados a nível mundial. Atua desde 2005 com treinamentos de profissionais em grandes empresas e escreveu diversos artigos para a revista Java Magazine. Possui as certificações da Sun (agora Oracle) SCJP, SCJD,SCWCD, SCBCD, SCEA, IBM SOA e ITIL Foundation.

Comentários (4)

  • Fabio Yasuo

    Muito Bom.

    Carlos poderia falar sobre suas certificações no proximo fire in the code. Ainda vale apena se certificar em java? qual seria certificação começar? Falo isso por que conseguir tirar a minha primeira certificação OCAJP 8 graças aos cursos sobre java que comprei da softblue.

    Obrigado!.

    • Carlos Tosin
      Carlos Tosin

      Parabéns, Fabio! Que legal você ter conseguido! Certificação é um tema importante e está na pauta pra sequência 🙂

      Depois eu abordo melhor isso, mas a sequência começa por OCA e OCP.

  • Rafael

    Oi, Carlos!

    Teria como dizer mais alguns exemplos além da modularização que trouxeram melhor desempenho para a JVM?

    • Carlos Tosin
      Carlos Tosin

      Rafael, a modularização é uma mudança visível para os programadores, por isso é importante conhecer. Mas outras mudanças são mais internas, e não afetam a forma de programar. A Oracle vem melhorando especialmente o algoritmo de garbage collector nas últimas versões do Java que, se não for bem feito, vira um baita problema. Outras mudanças não sei te dizer, teria que consultar uma documentação técnica mais especializada, pois são coisas internas que não transparecem pra nós programadores.

Deixe uma resposta para Rafael Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *