Por que usar um framework de terceiro e não usar JavaEE 6?

Por que? Quais são os problemas que você vê usando Java EE?

Eu não vejo problema nenhum, só vantagens. O Java EE evoului muito nas últimas versões.

Eu concordo. Está fácil e todos os application servers estão bem rápidos hoje.

Hoje o java EE está excelente para trabalhar, porem quem teve o desprazer de utilizar na versãodo ejb 2.x ou anterior migrou para outros como o spring que eram muito mais completos e fáceis de utilizar

mas sem dúvida nenhuma hoje a versão 3.x do ejb se tornou robusto, completo e até mais fácil de utilizar que o spring.

Para quem está começando java agora não vejo motivos para utilizar outro framework.

Também só vejo vantagens.
A plataforma evoluiu demais e por ser o padrão não irão, em teoria, acontecer problemas em ser descontinuado uma determinada época.
Você veja, até hoje os servidores rodam ejb 2 e não é o padrão faz muito tempo.
Agora imagina se fosse de uma empresa terceira.
O que eu vejo de problema são os clientes não atualizaram os seus servers para tirar vantagens da especificação e para poder ter vantagens utilizam-se de frameworks de terceiros.
Várias vezes já vi clientes com servidores que não eram nem java ee 5.

Acho que o motivo seria usar um webcontainer leve… tipo um tomcat ou jetty! Algo embarcado nesse sentido…
AppServer é muito mais robusto mas também muito mais pesado!

Acho que o motivo seria este…

[quote=jmmenezes]Acho que o motivo seria usar um webcontainer leve… tipo um tomcat ou jetty! Algo embarcado nesse sentido…
AppServer é muito mais robusto mas também muito mais pesado!

Acho que o motivo seria este…[/quote]

Faz um teste rodando glassfish em web-profile e o tomcat e tu vai ver que a diferença é minima.

Nesse sentido concordo com você.
Mas em que locais você já viu alguém usar um tomcat ou jetty em produção, mesmo que para as aplicações que eles usam isso resolveria.
O problema é que compram por exemplo websphere ou jboss antigos e não atualizam mais, provavelmente porque geraria custos enormes uma nova licença, mesmo que a nova versão ofereça melhor desempenho, features e outras coisas mais que a antiga não tem.

[quote=diegosammet][quote=jmmenezes]Acho que o motivo seria usar um webcontainer leve… tipo um tomcat ou jetty! Algo embarcado nesse sentido…
AppServer é muito mais robusto mas também muito mais pesado!

Acho que o motivo seria este…[/quote]

Faz um teste rodando glassfish em web-profile e o tomcat e tu vai ver que a diferença é minima. [/quote]

Não acho tão minima assim! A quantidade de recursos que ambos consomem tbem é bastante diferente… as vezes para uma aplicação pequena não precisa de JEE… tem casos que precisa fazer algo embarcado para distribuir… acho que o tomcat para isso é mais simples!

Tem diversos motivos para se usar um webcontainer leve… e nesse caso não será possivel usar JEE… Você pode usar o tomEE tbem… mas tem de analisar o cenário… não tou dizendo que é melhor usar tomcat ou jetty do que glassfish… apenas que tem de analisar!

[quote=lele_vader]Nesse sentido concordo com você.
Mas em que locais você já viu alguém usar um tomcat ou jetty em produção, mesmo que para as aplicações que eles usam isso resolveria.
O problema é que compram por exemplo websphere ou jboss antigos e não atualizam mais, provavelmente porque geraria custos enormes uma nova licença, mesmo que a nova versão ofereça melhor desempenho, features e outras coisas mais que a antiga não tem.[/quote]

Diversos lugares… principalmentes aplicações que os trazem embarcados… que você roda um arquivo .bat e acessa a APP do Browser! Tem diversas assim!! Sem dizer produtos… Tem também bastante host que os utiliza!

No caso das versões antigas o problema é outro… e não tem a ver somente com Java… tem gente usando SQL 2000 ainda… Windows XP… Linux com kernel 2.4… etc

O que vc quer fazer com Java EE ??? Web site? Sistema distribuído?

Frameworks existem para abstrair e subir o nível. Essa pergunta que vc fez equivale a essa:

Por que programar em Java ao invés de C++?

E por que programar em C++ ao invés de Assembly?

E por que programar em Assembly ao invés de fazer o seu próprio FPGA?

É fundamental entender essa coisa chamada abstração!

Sem ela tecnologia não serve pra nada…

Zona de conforto talvez. Também concordo que hoje o JEE6 tá melhor pra se trabalhar.

[quote=jmmenezes]Acho que o motivo seria usar um webcontainer leve… tipo um tomcat ou jetty! Algo embarcado nesse sentido…
AppServer é muito mais robusto mas também muito mais pesado!

Acho que o motivo seria este…[/quote]

Acho que nem é mais, hein? Para criar aplicações que precisem de serviços JavaEE, encher tomcat ou Jetty com JAR fica pior e dificil de dar manutenção a longo prazo

[quote=Jesuino Master][quote=jmmenezes]Acho que o motivo seria usar um webcontainer leve… tipo um tomcat ou jetty! Algo embarcado nesse sentido…
AppServer é muito mais robusto mas também muito mais pesado!

Acho que o motivo seria este…[/quote]

Acho que nem é mais, hein? Para criar aplicações que precisem de serviços JavaEE, encher tomcat ou Jetty com JAR fica pior e dificil de dar manutenção a longo prazo

[/quote]
Neste caso sim… mas e quando não precisa???
Uma aplicação embarcada com tomcat ou jetty + spring é algo muito leve… facil de distribuir…

O mundo é também feito de sistemas pequenos e simples…

Mas se realmente tem toda essa necessidade do JEE, hoje não vejo motivo por não usar JEE e encher de framework para fazer tudo isso!

[quote=saoj][quote=Jesuino Master]
Por que? Quais são os problemas que você vê usando Java EE?
[/quote]

O que vc quer fazer com Java EE ??? Web site? Sistema distribuído?

Frameworks existem para abstrair e subir o nível. Essa pergunta que vc fez equivale a essa:

Por que programar em Java ao invés de C++?

E por que programar em C++ ao invés de Assembly?

E por que programar em Assembly ao invés de fazer o seu próprio FPGA?

É fundamental entender essa coisa chamada abstração!

Sem ela tecnologia não serve pra nada…

[/quote]

Criar sistema enterprise, oras. Transação, Web Services, MVC, validação. Por que eu usaria Spring, ou até Mentawai invés de coisas do JavaEE?

Eu particularmente não gosto de JSF, sou hater desse tipo de framework, mas de resto sou a favor de JavaEE e acho que as outras pessoas que podem agregar algo deveriam se unir à JCP.

Eu gosto muito do play, por exemplo, mas ele é muito WEB oriented. Quem faz sistema grande sabe que o quebra pau tá é por trás, quando se tem milhares de transações acontecendo.

Acho que em poucos anos a maior parte do mundo Java fica só no JavaEE, pequenas empresas e aplicações ficaram com outros frameworks aí.

Só dar um rolê nos quickstarts e ver que está muito bom! http://www.jboss.org/jdf/

Esse papo de configurar ambiente no Java, vários XMLs, acabou. É só baixar eclipse, JBoss Tools, configurar OpenShift já era.

Nem acredito que um dia veria o Java assim! Já cheguei a ver um ambiente que demorava 6 horas para ser montado na máquina do desenvolvedor. Isso parece que está acabando!

Agora quero ver a opinião do pessoal aqui por que não começar um projeto com JavaEE. Se for realmente um defeito, eu ajudo a fazer barulho seja onde for, seja quem for, para melhorarmos o JavaEE. Afinal, a maior vantagem da plataforma Java é essa: ser aberta para qualquer um criticar e tals

[quote=jmmenezes][quote=Jesuino Master][quote=jmmenezes]Acho que o motivo seria usar um webcontainer leve… tipo um tomcat ou jetty! Algo embarcado nesse sentido…
AppServer é muito mais robusto mas também muito mais pesado!

Acho que o motivo seria este…[/quote]

Acho que nem é mais, hein? Para criar aplicações que precisem de serviços JavaEE, encher tomcat ou Jetty com JAR fica pior e dificil de dar manutenção a longo prazo

[/quote]
Neste caso sim… mas e quando não precisa???
Uma aplicação embarcada com tomcat ou jetty + spring é algo muito leve… facil de distribuir…

O mundo é também feito de sistemas pequenos e simples…

Mas se realmente tem toda essa necessidade do JEE, hoje não vejo motivo por não usar JEE e encher de framework para fazer tudo isso![/quote]

Verdade! Eu usaria JavaEE, mas é só por gosto, para coisas pequenas não há muita necessidade.

Eu estou aqui agora com o JBoss AS 7.1 de pé e com uma aplicação JAX-RS + EJB rodando. É muito diferente do cenário do AS 5, onde era tudo pesado e vááááários XMLs, problemas de classloading, 1 minuto para subir.

É como ouvir uma música dahora, você quer contar para todo mundo. Legal que estou fazendo minha brincadeira de criança, um CRUD simples, mas eu conheço gente com sistema gigante, pesado, e o mesmo AS. Acho que o mundo acaba em 2012 mesmo, nunca esperaria desenvolver em Java EE ser tão assim, legal. Eu associava JEE com desgraça. kkkk

Vc não entendeu o conceito de abstração e alto-nível versus baixo-nível. Como vc faz IoC com JavaEE? Como envia email de maneira simples? Se vc me disser que basta usar o JavaMail vc não entendeu abstração. Tb é possível enviar email com assembly.

Eu particularmente sou contra JCP e qualquer autoridade que se põe a cagar regras e especificações. É como o socialismo. A história tá aí para provar que não funciona. Quanto mais gente dando pitaco em relação a alguma coisa, menor é a chance dela ter qualidade. Veja EBJ, veja JSF, etc.

Vc fez um teste de carga com o Play ou com o Mentawai? Está tirando conclusão precipitada. Agora tem muita gente que fez teste de carga com o JSF e viu que a coisa é uma carroça.

Acho que a maior parte do mundo vai ficar com assembly.

Quickstart é legal, nada contra. Mas não tem haver com abstração.

A filosofia salada de frameworks do Java é um LIXO. Por isso que todo mundo foi para rails e por isso que eu sou um defensor ferrenho de framweorks full-stack, que abstraem TUDO e não só um parte das outras 1000 que depois vc vai ter que se virar.

Vc pode começar com JavaEE ou com Java e implementar as coisas do JavaEE na mão. Ou com C++ e implementar as coisas da JVM na mão. As especificações JavaEE são fracas (EJB, JSF, JMS, etc).

Abstração é fundamental. O problema é que há 1 milhão de frameworks Java e 1% no máximo entende o que é abstração e KISS. O que acontece é que vc cria uma abstração mais complexa do que a complexidade que vc quer abstrair. Aí o cara fica puto e vai para Ruby ou Python, abrindo mão da robustês da plataforma Java no desespero por simplicidade.

Dá uma olhada no Mentawai se quiser entender o que é abstração. É a minha humilde opinião de como as coisas deveriam ser em Java: o mais alto nível possível. E não um caminhão de moving-parts e frameworks numa zona total. Mesma idéia do Rails e mesma idéia do Play.

Rocket r = new Rocket();
r.engine().turnOn();
r.launch();

Eu conheço o Mentawai e acho legal.

Não, foi só um exemplo. Talvez transação foi infeliz por que o Play é stateless, ou era na versão 1.x, o que muda muita coisa. Eu prefiro pensar no play como uma alternativa. Mas eu pessoalmente iria de JEE, pois estou mais envolvido com JBoss, JBoss Tools e Maven. Agora está mais fácil. Quando fica díficil eu tento melhorar, se não for da minha capacidade, exponho isso. Se nada mudar depois de um tempo, aí penso em largar JavaEE.

É. Acho que Java EE é para isso. Quando está sendo baixo nível? Gostaria de ver algum exemplo, daí a gente discute isso aí. Me mostra algo que acha baixo nível no JavaEE e como seria no Mentawai, me manda links.

Se realmente estiver zoado no JEE, temos que ver isso aí.

Hm, AFAIK, a idéia do JDF é mostrar como começar com algo usando um exemplo do mundo real e como você faria com JEE. Daí o cara vai que vai depois e cria a app dele :slight_smile:

Não sei se entendi seu ponto de vista de abstração. Até onde entendi, JEE faz isso muito bem. Se não faz, eu tenho que mostrar onde e pedir melhorias.

Se JEE não é KISS(se eu entender esse conceito) , eu tenho que ir lá e também usar os meios que tenho para tentar melhorar.

Agora, não gosto de JSF. É gosto mesmo, não quero ninguém mexendo na minha página. Mas é gosto.

Ow, se encher de abstração das suas, em um projeto médio, com, por exemplo 50 entidades, a manutenção fica sossegada?

Olha, quando é Java EE, as pessoas podem criar ferramentas para esse padrão e todas as aplicações JEE irão se beneficiar disso. Por exemplo, o Arquillian. Quais ferramentas temos para uso com o Mentawai?

Sério que acha isso? mesmo na versão 6? Interessante. Olha na minha cabeça como estão as coisas:

Projeto mavenizado. [tem que aprender maven, mas na prática é sí pegar modelinho pronto na web ou usar o eclipse]

Eu tenho um “EJB Lite”, uso @Stateless, daí um atributo é EntityManager, uso CDI para injetar. Legal, posso acessar o BD já e manipular minhas entidades devidamente anotadas (só ler a java doc do EM) \o/

Então eu anoto com @Path, BUM, virou um WS REST. Então eu uso meu RESTEasy lindo e gero o Javascript óóóóó (ok, isso não é JavaEE :frowning: ). Pra validar, penduro anotação do BeanValidation. (Ok, não integração com JAX-RS ainda)

Testes…

Isso já é gosto, mas crio a view com JQueryUI e alguma coisa da “moda”. Ou, se o cliente quiser e deixar, JavaFX (é, isso msm, eu uso).

mvn clean package

Projeto pronto para ser “deployado”. Isso é a vista de um CRUD simples.

Eu sei que você não gosta nem de anotação, mas cara:

http://www.mentaframework.org/mtw/Page/Validation/mentawai-validation

Sério, não curti. :frowning:

Sei lá, talvez seja só cegueira pq estou envolvido com JEE e não vejo outras coisas, por isso inclusive que vim aqui perguntar. Quero ver o que o pessoal usa e pq. Não quero ficar trampando a mais e me acostumar.

Tenha em mente que não é flame, é só curiosidade. Não me xinga na sua resposta não :S

Hoje as facilidades oferecidas pelo CDI, JPA, e companhia ajudam muito no desenvolvimento. Você vai lá e enche o Tomcat de JARs, quando você percebe vc fez o Tomcat virar quase um servidor WebProfile.

Atualmente eu sou defensor da utilização de servidores WebProfile na maioria dos casos, mesmo para aplicações pequenas (que tenham de fazer pelo menos CRUD). Acredito que somente em casos muito específicos o Webprofile não seria aplicável.

Os recursos fornecidos pelo WebProfile são excelentes e eliminam muito a o trabalho feito pelo desenvolvedor. Hoje é possível com o mínimo de código utilizar EJB Light, CDI e JPA que facilitam muito o desenvolvimento. Arquivos XML obrigatório hoje ainda estão presentes, mais na maioria dos casos não são obrigatórios.

É sério, saoj, você me falou de abstração, mas aqui não está abstraido, ou eu não entendi o seu conceito:

http://www.mentaframework.org/mtw/Page/Validation/mentawai-validation

Olha quanta coisa só para validar um campinho :frowning:

Não é flame não, mas velho… ValidationFilter? Validatle? prepareValidator?

Com BeanValidator é só anotar (até onde sei). Daí você pode criar sua anotação também e validar do jeito que quiser.

OBS: Não, não estou arrumando briga!