Executando verificação de segurança...
1

Minha recente experiência com Java

Antes de tudo, quero ressaltar que a experiência não foi profissional, apenas acadêmica. E mesmo assim foi apenas uma ajuda que fiz à minha namorada que está cursando engenharia de software.

O intuito dessa publicação é apenas, somente e exclusivamente dar um print das minhas impressões com Java, apesar de já ter feito alguma coisa ou outra antigamente.

O projeto foi a tradicional aplicação bancária, onde o usuário informa seu nome, sobrenome e cpf e pode realizar operações de depósito, saques e consultas ao saldo.

Java é LENTO!

Sim. Isso foi pra prender sua atenção.

Sem dúvida alguma o ecossistema do Java está longe de ser lento, já ouvi dizerem que algumas aplicações em java se aproximam ao desempenho de C, mas infelizmente não disponho de fontes. Para não dexar vcs na mão fica esta fonte: Arial. Mas o foco do post não é esse.

Eu me senti lento desenvolvendo esta pequena aplicação. Novamente: EU, um desenvolvedor PHP, Python e Javascript. Um desenvolvedor acostumado com linguagens interpretadas e onde a compilação é feita em tempo de execução. EU!

No php, a cada interação é um simples refresh na página que estou vendo o que acabei de codar. No python basta reabrir o interpretador chamar o módulo e executar função, ou só recarregar a página, em projetos web.

No java eu tenho que recompilar tudo, mesmo nessa pequena aplicação eu achei lento. Tentei imaginar o tempo que se leva em projetos maiores, com Spring Boot por exemplo (nunca mexi com spring boot).

Eu gosto muito da linguagem e seu ecossistema, mas para projetos onde quero resolver algo rápido, não pensaria em Java de cara. Atualmente estou estudando Kotlin, por querer desenvolver aplicações mobile nativas ao Android. Achei a linguagem extremamente concisa e gostei muito. Mesmo tendo esse mesmo "problema" durante o desenvolvimento.

O que me agrada no java é a sua tipagem, em meus projetos php e python sempre utilizo os type hints, pois sem sombra de dúvidas isso acelera o desenvolvimento e a experiência de desenvolvimento. Então pode-se dizer que isto torna a Linguagem mais rápida.

Como é no mundo real?

Gostaria de ouvir pessoas que de fato tenham propriedade no assunto, sou apenas um mero transeunte no ecossistema, o qual tem seus "vícios" a outras linguagens.

Diga-me você, é lento desenvolver uma aplicação Java? Há outras abordagens? Há outros caminhos? Como é no mundo real?

Carregando publicação patrocinada...
2
1
1

Java exige bastante do servidor, é preciso ter muito mais memória do que em outras linguagens.

Multiplataforma

Java é multiplataforma, quase sem nenhuma modificação, você pode simplesmente trocar entre Linux, Windows ou Mac OS, ou qualquer outro dispositivo que possua JVM.

JIT

O aumento de desempenho em outras linguagens em geral depende da intervenção do programador, em Java existe o JIT, ele mesmo analisa a parte de código mais usada e compila nativamente para a plataforma em que está rodando, nada impede também de outras linguagens criar um JIT para si, mas isso já é nativo do Java.

Java sem usar a sintaxe Java

O ecosistema Java é bem amplo, inclusive se a sintaxe do Java não te agradar você pode usar Groovy (antiga), Kotlin (nova e moderna) ou Clojure.

JVM Especializadas

Também existe várias JVM, com os mais diversos propósitos, se desejar mais desempenho e ficar independente de linguagem pode usar a GraalVM.
Se você possui CPUs multi-core, GPUs e FPGAs, pode usar a TornadoVM ela irá utilizar melhor esses recursos de hardware que você possui.

Conclusão
Existe muito mais, mas acredito que já dá para entender porque o mercado Java é enorme e as empresas não abrem mão de Java.

1

Acho muito interessante todo esse ecossistema do Java. Atualmente estou estudando Kotlin para desenvolvimento mobile, mas pretendo criar alguns projetos para backend futuramente. Saber que existe algo tão rico em torno do Java me deixa cada vez mais empolgado.

Obrigado pelas informações!

1

Spring nunca foi lento para mim, em projetos grandes pode ser um pouco, porém apenas em computadores que continham um processador mediano, o que eu acabo vendo no mercado e que a maioria dos devs de grandes empresas possuem computadores com uma capacidade boa de processamento, mas no seu caso foi dito que em um projeto pequeno você sentiu um certo gargalo, o que me é bastante estranho, talvez realmente suas configurações sejam baixas. Mas lembre-se de que está lentidão se refere apenas ao desenvolvimento e não ao resultado da aplicação em si.

1

Não tenho dúvidas de que um projeto java terá um bom desempenho. O que achei "lento" não foi o resultado da aplicação, foi o processo de desenvolvimento mesmo, mais especificamente na hora de visualizar o resultado. Não estou acostumado no dia a dia a ter que esperar um tempo para visualizar o que acabei de codar.

Falando mais um pouco do projeto, tive que utilizar o netbeans e maven, pois era o que se exigia. Como estou acostumado a desenvolver com linguagens que compilam em tempo de execução, senti um incomodo em ter que esperar um pouco para recompilar o projeto e visualizar o resultado, onde seria "instântaneo" se eu estivesse utilizando python por exemplo.

1

Acho uma boa você dar uma olhada nas ferramentas que o Spring Boot oferece.
Quanto a demora que você sentiu no reload da aplicação, o Spring DevTools resolve, e sinceramente acho o reload de uma aplicação spring boot bem rápido, provavelmente a demora que sentiu pode estar ligada a não utilização de ferramentas como essa.
Recomendo dar uma brincada no https://start.spring.io/ e usar as docs do https://www.baeldung.com/