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

[quote=Jesuino Master]Não estou entendendo essas coisas de liberdade não.

As especificações do JavaEE são todas montadas por processos da comunidade. Na empresa onde trabalho tem várias pessoas envolvidas no JCP e outras empresas também.

[/quote]

Jesuíno,

a verdade é que o MELHOR sempre veio de fora e foi sendo incorporado com muito atraso na Java EE.

Vamos a alguns exemplos q vc mesmo citou:

  1. Hibernate virou JPA na Java EE

  2. Spring virou CDI na Java EE

  3. Rest virou JAX-RS na Java EE

  4. Bean Validation…

  5. Que dizer da Red Hat que usa GWT nas consoles das suas ferramentas?? Pq não usa JSF ou Java FX?? Casa de ferreiro, espeto de pau??

A História tem mostrado é MELHOR esquecer a receitinha de bolo e ter opinião própria (liberdade??).

Think Different.

[quote=andre_salvati][quote=Jesuino Master]Não estou entendendo essas coisas de liberdade não.

As especificações do JavaEE são todas montadas por processos da comunidade. Na empresa onde trabalho tem várias pessoas envolvidas no JCP e outras empresas também.

[/quote]

Jesuíno,

a verdade é que o MELHOR sempre veio de fora e foi sendo incorporado com muito atraso na Java EE.

Vamos a alguns exemplos q vc mesmo citou:

  1. Hibernate virou JPA na Java EE

  2. Spring virou CDI na Java EE

  3. Rest virou JAX-RS na Java EE

  4. Bean Validation…

  5. Que dizer da Red Hat que usa GWT nas consoles das suas ferramentas?? Pq não usa JSF ou Java FX?? Casa de ferreiro, espeto de pau??

A História tem mostrado é MELHOR esquecer a receitinha de bolo e ter opinião própria (liberdade??).

Think Different.

[/quote]

Oi, O JAX-RS não, aquela forma de programar saiu no JavaEE, direto na spec.

Eu sei que muita coisa vem de fora, eu nunca neguei isso e inclusive isso é espetacular no JavaEE, ele vai padronizando e melhorando. Ninguém te mata se usar alternativas e, inclusive, as alternativas são algumas das bases de evolução do próprio JEE! Minha dúvida nesse post é: Além de gosto, qual aspecto técnico te faria escolher framework X e não JEE?

Sobre JBoss usar GWT. A parte WEB é sempre tensa e divide opiniões e é nela que se encontra a maior diversidade. Hoje já é possível usar GWT com JEE com o Errai:

http://www.jboss.org/errai

Onde a parte de gerar telinha e pegar as ações do usuário ficam em GWT, mas você ainda tem acesso a serviões JEE. É uma abordagem diferente, mas que pega a parte WEB, que é onde se dividem opiniões. Eu mesmo não gosto de JSF, prefiro página com JS na mão, se não GWT, senão daí sim penso em JSF.

Sobre a RH usar JavaFX, quando o AS estava no começo, sequer o JavaFX 2 estava planejado, nem alpha tinha. Sobre não usar JSF, talvez Jakiran, Jason ou qq outro desenvolvedor do JBoss não era fã do JSF assim como eu não sou tão fã.

O JAX-RS saiu na sua listagem de forma muito infeliz, pq é, até onde aprendi, um dos maiores cases de sucesso do JEE.

Sobre Spring virar CDI, ok, Spring é o primeiro frame de DI, mas CDI vai além do Spring, isso é vísivel! Mas certeza que o Spring influenciou o CDI.

-JavaFX também não entra na nossa discussão, nem está na stack JEE!

Agora, você falou tudo no passado: “virou”. E hoje, onde o JavaEE perde? E se o JEE perder, como eu posso fazer para melhorar?

Eu não vejo mais muitas opções superiores, sim, superiores, por que iguais tem. Só não pode ter falácia de TI, onde o cara mostra um CRUD, mas não responde como a aplicação irá resolver outros problemas do mundo real. O Java EE prevê quase tudo.

Por que o MELHOR já não nasce no JavaEE?

Mais uma vez, não é flame, é só uma forma de ver as coisas. EU estou vendo que JEE resolve quase tudo, se você não vê isso e acha que framework X é melhor que Java EE para aplicações enterprise, me diga o por que?

vlwwsss :smiley:

Desde que o JEE tinha aquelas coisas maravilhosas como EJB1, EJB2, JMS, JSF, etc. que eu nunca mais prestei atenção. Depois de tentarem EJB 3 vezes do zero e JSF algum par de vezes já tava na hora de sair alguma coisa razoável, né?

Se vc está dizendo que o JEE virou full-stack então ótimo. Seria uma ótima para o Java mesmo. Qualquer coisa é melhor do que o stack default Spring + Hibernate. Quem não concorda com esse stack foi para Rail, Django e até Asp.NET, ou se entricheirou nos poucos frameworks full-stack do Java: Mentawai, Play, Grails (???), etc.

Se vc quiser começar um movimento para abandonarem o Spring + Hibernate e usarem o JEE eu dou total apoio. Vai melhorar minha empregabilidade. :slight_smile:

Problema que JPA é muito parecido com o Hibernate, se eu não estou falando bobagem. CDI nunca ouvi falar. :frowning:

O JEE tem algo no estilo iBatis ou MentaBean para quem odeia ORM automágicos?

Quando vc diz que JEE oferece tudo, estão as partes integradas de forma bonita ou ele apenas aglutinou um monte de framework que não se integram de forma transparente? Isso vai fazer toda a diferença no final das contas, ou então a coisa descamba para uma Rube Goldberg Machine tradicional do ecosistema Java:

[color=red]Quanto menos moving parts (frameworks e objetos) melhor![/color]

saoj, quando você diz full-stack este não daria liberdade ou ficaria feio usar outro ORM por exemplo? Pois é muito importante a liberdade da equipe decidir o que for melhor para um determinado projeto.

Desculpe, acho q vc aprendeu errado…

“A Transferência de Estado Representacional (Representational State Transfer) ou somente (REST) é uma técnica de engenharia de software para sistemas hipermídia distribuídos como a World Wide Web. O termo se originou no ano de 2000, em uma tese de doutorado[1] (PHD) sobre a web escrita por Roy Fielding, um dos principais autores da especificação do protocolo HTTP que é utilizado por sites da internet.”

A final release da JAX-RS só veio em 10 Oct, 2008, quase 9 anos depois

http://jcp.org/en/jsr/detail?id=311

Ou seja, os conceitos de Rest só vieram para Java EE depois, muuuuito depois…

Tem que se considerar que as coisas demoram para sair na especificação, pois tem que se considerar muitas coisas como:
-Integração com o resto do ecossistema java
-Compatibilidade com o resto do ecossistema
-O jcp é formado por um conjunto grande de pessoas e empresas, coisa que eu acho ótimo, pois dá a opção de ver como uma solução seria implementada por um grande conjunto de situações diferentes
Eu gosto muito do java EE, ele evoluiu muito e eu não vejo um problema de algo da comunidade virar a base da especificação, como o hibernate com jpa e o cdi com o seam

[quote=andre_salvati][quote=Jesuino Master]

O JAX-RS saiu na sua listagem de forma muito infeliz, pq é, até onde aprendi, um dos maiores cases de sucesso do JEE.

[/quote]

Desculpe, acho q vc aprendeu errado…

“A Transferência de Estado Representacional (Representational State Transfer) ou somente (REST) é uma técnica de engenharia de software para sistemas hipermídia distribuídos como a World Wide Web. O termo se originou no ano de 2000, em uma tese de doutorado[1] (PHD) sobre a web escrita por Roy Fielding, um dos principais autores da especificação do protocolo HTTP que é utilizado por sites da internet.”

A final release da JAX-RS só veio em 10 Oct, 2008, quase 9 anos depois

http://jcp.org/en/jsr/detail?id=311

Ou seja, os conceitos de Rest só vieram para Java EE depois, muuuuito depois…[/quote]

ESPERA, para tudo, acho que falhou a comunicação. Não estou dizendo que o pessoal Java inventou REST, isso seria um absurdo, estou dizendo que o JAX-RS é original, não tinha outro framework que inspirou ele, ao contrário do JPA e do CDI, por exemplo.

Antes do JAX-RS, até onde sei, ou eram servlets ou era o restlet.

Na minha opinião a especificação JAX-RS é de longe a mais prazerosa de se trabalhar e uma das mais bem feitas. Agora que está dentro do JavaEE 6 ficou show ainda. Mal posso esperar pelo JEE 7 com JAX-RS 2!

[quote=javaflex][quote=saoj]

[/quote]
saoj, quando você diz full-stack este não daria liberdade ou ficaria feio usar outro ORM por exemplo? Pois é muito importante a liberdade da equipe decidir o que for melhor para um determinado projeto.[/quote]

Sim, vc tem liberdade de usar o que quiser, mas isso é uma opção e não uma necessidade. O Mentawai por exemplo tem integração com o Spring e Hibernate. Não dá para ignorar o caminhão de gente que vai querer usar isso.

Hibernate tem gente que adora, etc. Não é minha praia pois prefiro ter controle via iBatis ou MentaBean.

Agora Spring vejo pouca necessidade, pois o framework dá um suporte muito bom a IoC, DI, Auto-Wiring, etc. http://www.mentaframework.org/mtw/Page/IoC/mentawai-inversao-de-controle

[quote=saoj][quote=javaflex][quote=saoj]

[/quote]
saoj, quando você diz full-stack este não daria liberdade ou ficaria feio usar outro ORM por exemplo? Pois é muito importante a liberdade da equipe decidir o que for melhor para um determinado projeto.[/quote]

Sim, vc tem liberdade de usar o que quiser, mas isso é uma opção e não uma necessidade. O Mentawai por exemplo tem integração com o Spring e Hibernate. Não dá para ignorar o caminhão de gente que vai querer usar isso.

Hibernate tem gente que adora, etc. Não é minha praia pois prefiro ter controle via iBatis ou MentaBean.

Agora Spring vejo pouca necessidade, pois o framework dá um suporte muito bom a IoC, DI, Auto-Wiring, etc. http://www.mentaframework.org/mtw/Page/IoC/mentawai-inversao-de-controle

[/quote]
Entendi, legal isso ser natural no mentawai. Sobre o framework hibernate considere que o core dele é muito bom, o problema é que a comunidade apoiou certas coisas bizarras como mapeamento via annotation amarrado na entidade, e o criteria não evoluiu (pelo menos a última vez que vi ainda tinha que escrever as propriedades como string prejudicando refactor, se hoje mudou me atualizem por favor), já no .NET é mais evoluido e mapeamento programático como no MentaBean, isto é excelente. Outro erro é usar hibernate como bala de prata, hibernate para consultas e relatórios acho insanidade, neste caso SQL nativo é mais eficiente, e o próprio hibernate dá liberdade para isso. Enfim sobre escolha de frameworks não deve existir essa coisa de “esse é o padrão”, cada projeto a equipe tem q estudar a melhor solução. Nas fábricas de softwares que geralmente tem essa mania de “padrão único” e subutilizam a inteligencia das pessoas. Quando colocam aqui no forum por exemplo “usar JSF ou Struts?”, sempre tem que haver essa discussão para cada caso postado.

Porque existem limites no que um software desenvolvido por “comunidade” pode fazer, pensar diferente é um deles.

Pelo que eu vi a criteria da jpa você pode criar um metamodel e passar sem ser por string.
Mas infelizmente a criteria da jpa ainda é muito verbosa e horrível.

[quote=lele_vader]Pelo que eu vi a criteria da jpa você pode criar um metamodel e passar sem ser por string.
Mas infelizmente a criteria da jpa ainda é muito verbosa e horrível.
[/quote]

Essa API de Criteria da JPA 2 é uma das coisas mais porcas que eu ja vi na vida.

Realmente é uma porcaria.
A do hibernate é bem melhor.

O assunto está bem interessante…

Estamos fazendo alguns teste com, aplicações web JBoss webprofiles + REST + JQuery e JBoss webprofiles + REST + JavaFX aplicações intranet.

Para sistemas com muitos CRUD´s e usuários simultâneos, qual mecanismo de templates vocês recomendam para o primeiro teste acima? A muito tempo. rs… Utilizei Struts + Tiles e Struts + SiteMesh. Atualmente estamos com alguns projeto JSF + facelets;

O que vocês usam no 1 cenário ?
JSP pura ?

@Lele_Vader,

Estamos montando o primeiro cenário… Os teste preliminares está ok… View (html + jQuery);

O projeto que iremos iniciar, para aplicação web, vai ter muitos cruds e usuários acessando(± 1000 simultâneos)… Ao meu ver, JSF não se encaixa neste cenário.

Atualmente tenho visto aqueles frameworks javascript e já vi implementações de template com o mustache e o underscore.
Talvez se encaixe no que querem usar.

[quote=andre_salvati][quote=Jesuino Master]Não estou entendendo essas coisas de liberdade não.

As especificações do JavaEE são todas montadas por processos da comunidade. Na empresa onde trabalho tem várias pessoas envolvidas no JCP e outras empresas também.

[/quote]

Jesuíno,

a verdade é que o MELHOR sempre veio de fora e foi sendo incorporado com muito atraso na Java EE.

Vamos a alguns exemplos q vc mesmo citou:

  1. Hibernate virou JPA na Java EE

  2. Spring virou CDI na Java EE

  3. Rest virou JAX-RS na Java EE

  4. Bean Validation…

  5. Que dizer da Red Hat que usa GWT nas consoles das suas ferramentas?? Pq não usa JSF ou Java FX?? Casa de ferreiro, espeto de pau??

A História tem mostrado é MELHOR esquecer a receitinha de bolo e ter opinião própria (liberdade??).

Think Different.

[/quote]

Há um pequeno equívoco no que você disse: O Spring virou DI (JSR-330). O Seam é que virou CDI (JSR-299).

[quote=Zeovaldo]
O projeto que iremos iniciar, para aplicação web, vai ter muitos cruds e usuários acessando(± 1000 simultâneos)… Ao meu ver, JSF não se encaixa neste cenário. [/quote]

Conheço gente aqui do fórum mesmo que possuem aplicações nesse perfil rodando em JSF e não tem do que reclamar.

Resumidamente… Já que alguns fizeram pouco caso do JEE…

Para um projeto do nível que nosso colega citou na mensagem acima dessa, o que vocês usariam? Quais tecnologias/frameworks ou sei lá o que?

Caso as ferramentas citada não sejam especificações do JEE, onde esse será melhor que o Java Enterprise Edition ATUAL no seu ponto de vista?

Abraço á todos.