Por que o Spring é melhor que o JEE?

Pessoas estou com essa dúvida e achei interessante iniciar um debate sobre este assunto tão discutido. Visando projetos grandes e com as ferramentas oferecidas pelo Spring será a melhor ferramenta atualmente?.

1 curtida

Spring é menos pior que JEE.

A tendencia hoje em dia é projetos usando arquiteturas e linguagens mais modernas. Mas se seu objetivo é trabalhar com legado, sim, tem muito monolítico em Spring e JEE pra dar manutenção.

Se está sendo obrigado a usar Java, a linha Spring é mais leve e evoluída para aplicações web. De qualquer forma estará sob o peso básico da plataforma Java e os atrasos da linguagem.

Apesar da pequena evolução, Java EE foi concebido no tempo em que se acreditava na ideia furada que tudo seria feito em Java, aplicações client Java com servidor JEE trocando informações diretamente via Java.

Tem melhores alternativas hoje do que usar Java?

Go por exemplo. E .Net Core é uma opção mais leve para desenvolvedores C#.

1 curtida

Só para dar mais alternativas, eu acredito que java é uma ótima opçao ainda hoje em dia.

Há várias alternativas de mvc frameworks, web service frameworks, sem falar numa vasta biblioteca para tudo que vier a precisar (relatórios, processamento de imagens, emails, etc).

O hype em cima de Go está bombando e vejo sendo muito usada em middleware. Nao tenho certeza se para aplicaçoes web vai pegar e nem se terá uma biblioteca tao vasta quanto em java.

1 curtida

Naturalmente Go vai demorar a pegar no mercado e ter um leque maior de bibliotecas, mas é fato sua eficiência para back-end para quem busca o que já é oferecido.

Acho que Java deveria ser recriado como aconteceu com .NET, para quem for criar novas aplicações usando algo mais enxuto para os tempos atuais. Java 9 tem o lance da modularização, mas ainda é o velho Java.

1 curtida

Ninguém usa essas linguagens modernas pra criar um monolítico que precisa tratar requisições web, processar imagens e gerar relatórios, tudo na mesma aplicação. Isso significa que você pode usar Go para criar microservices, linguagem X pra gerar relatório, linguagem Y pra processar imagens, etc.

Talvez por isso nenhuma linguagem vai pegar no mercado, e quem esta esperando por isso pra não correr o risco de estudar algo que não “pegou” é que pode acabar correndo o risco de ficar pra trás por não “pegar” a nova realidade do mercado.

1 curtida

A recriação do Java se chama Scala, infelizmente o resultado é uma linguagem complexa com compilador lento, então só resta ao povo que gosta de linguagens estáticas, e rejeita complexidade, se acostumar com uma linguagem dinâmica (difícil) ou abandonar a JVM para algo como Go (mais fácil em alguns casos, ex: microserviços).

1 curtida

Em relação a Scala, pela linguagem sim, foi uma tentativa já que a linguagem Java é bem atrasada. Mas Scala de qualquer forma depende da velha JDK, onde quis dizer que deveriam escrever outra do zero, como o .NET Core, que manteve C#, mas no caso da plataforma Java nem a linguagem se salva.

1 curtida

Atentando ao tema do tópico:
Você já instalou e configurou um application server como o Weblogic ou Websphere? Foi fácil? Teve dificuldades?
A questão com o JEE, além da defasagem causada pela lentidão na aceitação de inovações por parte do consórcio que comanda o Java, é o fato de ter a dependência de um AS.
O spring, por outro lado (outros lados) não está preso ao que um comitê define e, por isso, está há anos luz distante em termos de evolução e de facilidades.
Desta forma, o Spring é, em vários momentos, utilizado como base para tornar uma JSR uma realidade.
Porém, ano após ano, o java vem decepcionando com a não inclusão de N coisas bacanas (basta ver o tempo que levou para adotar a JodaTime como API padrão para datas e a resistência em implementar as expressões lambda, algo que o .Net já possuía há anos).

2 curtidas

Você tocou numa questão que eu acho que deveria ser fundamental. A criação de linguagens X, Y ou Z para a mesma estrutura da JDK é o mesmo que pegar o motor de um fusca e construir uma Ferrari em volta. É bonitinha, tem bom acabamento, boa aerodinâmica, mas o motor não ajuda.
É o que acontece com o Groovy, também.

2 curtidas

Exato. Groovy, Scala, Kotlin ajudam na produção, mas são só linguagens, o motor continua velho.

Oracle podia patrocinar uma galera pra escrever uma nova plataforma Java enxuta, como aconteceu com .NET Core.

1 curtida

Esse é outro ponto que eu não consegui distinguir. O java passou a “desevoluir” depois da aquisição pela Oracle? O tal JDK pago existe ou é lenda?
De qualquer maneira, seria sim, fundamental para o futuro do java que o mesmo fosse completamente reescrito. Nem que dessem outro nome, como kawa (que significa café, em polonês).

1 curtida

Pela lentidão, a Oracle deixou o Java praticamente parado no tempo. O que era muito bom naquela época não é mais tão bom para o horizonte atual.

Enquanto não vem um “kawa”, o que temos de melhor hoje para back-end na minha opinião são Go e .NET Core.

1 curtida

O duro é convencer empresas que já têm java rodando a abandonar isso. E essa é a minha realidade (mais ou menos por que eu sofro com SOA/OSB e etc)

1 curtida

Muito difícil abandonar. Assim como minha realidade é o .NET normal. Mas para quem for desenvolver novos projetos, tem ai novos caminhos.

1 curtida

@javaflex particularmente, eu vi algumas mudanças na JVM de uns anos para cá, no Java 8 tivemos a remoção do PermGen e agora no Java 9 temos a implementação de módulos … Em quais aspectos você afirma que a JVM está atrasada ? Que outras plataformas estariam à frente ? (estou perguntando de curiosidade mesmo, não para defender Java com unhas e dentes).

1 curtida

Pelo contrário. O Java ficou um bom tempo parado (5 anos) na versão 6 na mão da Sun. Depois da aquisição da Oracle o Hotspot (JDK oficial) incorporou parte do JRocket (JDK da Oracle, acho que ainda existe). Logo depois veio a versão 7, e desde então, veio uma nova versão a cada 3 anos. E esse ano já sai o Java 10.

2 curtidas

JVM? Seria mais eficiente não ter VM, com aplicação e servidor livres desse custo em tempo de execução.

Já que não dá pra ser radical com Java e .Net em relação a JVM/CLR, pelo menos a Oracle também criar uma plataforma mais enxuta com uma stack própria decente.

Concordo que a Oracle começou a acordar, bem atrasada, a partir do Java 8.