Eu não vejo problema nenhum, só vantagens. O Java EE evoului muito nas últimas versões.
J
Jesuino_Master
Eu concordo. Está fácil e todos os application servers estão bem rápidos hoje.
F
fabiozanardi
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.
L
lele_vader
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.
J
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…
D
diegosammet
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…
Faz um teste rodando glassfish em web-profile e o tomcat e tu vai ver que a diferença é minima.
L
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.
J
jmmenezes
diegosammet:
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…
Faz um teste rodando glassfish em web-profile e o tomcat e tu vai ver que a diferença é minima.
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!
J
jmmenezes
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.
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
S
saoj
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…
R
Radiance
Zona de conforto talvez. Também concordo que hoje o JEE6 tá melhor pra se trabalhar.
J
Jesuino_Master
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…
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
J
jmmenezes
Jesuino Master:
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…
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
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!
J
Jesuino_Master
saoj:
Jesuino Master:
Por que? Quais são os problemas que você vê usando Java EE?
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…
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í.
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
J
Jesuino_Master
jmmenezes:
Jesuino Master:
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…
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
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!
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
S
saoj
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.
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
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 ). 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:
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
W
w1lson
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.
J
Jesuino_Master
É sério, saoj, você me falou de abstração, mas aqui não está abstraido, ou eu não entendi o seu conceito:
Te desafio (para que vc se motive com o desafio e tente alguma coisa) a mostrar uma maneira de fazer isso de forma mais abstraída. Acho que na sua cabeça vc acha que validação é apenas validar se o campo está presente ou não… :?
MAS TEM QUE INCLUDIR TODAS AS VALIDAÇÕES QUE EU ESTOU FAZENDO ALI, INCLUSIVE AQUELA DO USERNAME NO BANCO DE DADO.
J
Jesuino_Master
saoj:
Jesuino Master:
É sério, saoj, você me falou de abstração, mas aqui não está abstraido, ou eu não entendi o seu conceito:
Te desafio (para que vc se motive com o desafio e tente alguma coisa) a mostrar uma maneira de fazer isso de forma mais abstraída. Acho que na sua cabeça vc acha que validação é apenas validar se o campo está presente ou não… :?
MAS TEM QUE INCLUDIR TODAS AS VALIDAÇÕES QUE EU ESTOU FAZENDO ALI, INCLUSIVE AQUELA DO USERNAME NO BANCO DE DADO.
Eu, como um cara de nível Júnior, vi isso e entendi mais do que o link do Mentawai que postei:
// Create a bean validator and check for issues.Set<ConstraintViolation<Member>>violations=validator.validate(member);if(!violations.isEmpty()){thrownewConstraintViolationException(newHashSet<ConstraintViolation<?>>(violations));}
Achei dahora! - Mas eu ainda não entendi um pouco direito como funciona a valdiação do Mentawai, vou ver com mais calma depois.
Quer dizer que se eu tentar salvar pelo Dao, ele lança erro de validação também? Se sim, interessante, tenho que ver como o BeanValidation se comporta nessa parte
S
saoj
Ele valida se o username não existe no banco de dados, ou seja, se é único.
A sua crítica não foi ruim não. Olhando rapidamente a aquela validação ali pode parecer meio zoneado mesmo. Mas eu acredito que seja porque tem muita validação acontecendo ao mesmo tempo ali, daí pode assustar.
Acho que dá para entender que existe uma validação para o campo “username”, onde o método checkUsernameAdd vai ser chamado e se retornar false a mensagem de erro será correspondente a chave “username_already_exists” (i18n).
Dá para fazer isso ainda mais simples? Talvez sim.
O mentawai é perfeito? Não! Pode melhorar? Sim. Tudo pode melhorar add-infinito.
O que é perfeito no Mentawai é a sua filosofia, isso na minha opinião pessoal.
EDIT:
Uma coisa que eu vi que pode melhorar é fazer assim:
Uma pequena diferença que faz muita diferença. O que vc achou?
Isso é para mostrar que o framework não é perfeito, mas a sua filosofia, de abstrair o máximo possível tudo é. Isso na minhã opinião. Vai ter sempre gente que vai preferir complexidade, vários métodos, vários objetos, vários frameworks, etc.
Como um amigo meu do trabalho me disse: Complexidade é maravilhoso, pois te garante no emprego. Ninguém vai ser maluco de te mandar embora para ter que assumir o seu código.
J
Jesuino_Master
O Ioc do Mentawai é legal, mas IMO não é nada que “destróiiiii” o CDI:
Classe abstrata, anoto uma implementação dela com Default. e depois onde eu quero injetar com inject. Se eu quiser injetar outra eu crio uma anotação e anoto com a anotação a classe injetável, depois uso @inject e @MinhaAnotacao (não sei se está 100% certo isso, tenho que rever)
Classe abstrata, anoto uma implementação dela com Default. e depois onde eu quero injetar com inject. Se eu quiser injetar outra eu crio uma anotação e anoto com a anotação a classe injetável, depois uso @inject e @MinhaAnotacao (não sei se está 100% certo isso, tenho que rever)
Eu gostei dessa nova forma que você sugeriu, mais direta.
Legal a filosofia de sempre melhorar, acho que foi isso que acabou com o Java, as pessoas que aprendiam simplesmente relaxavam, isso fez com que anos fossem perdidos travados no Java EE 5 e no Swing, por exemplo
J
javaflex
Concordo, também não gosto frameworks baseados em componentes, eu não entendo pq a comunidade Java valoriza tanto isso, é assustador olhar uma view cheia de componentes. Mapeamento com Annotations é outra coisa bizarra que acabou sendo muito valorizada, ao invés de incentivar uma solução programática como no NHibernate do .NET.
Também sempre achei loucura isso no Java. Acho você iria gostar de trabalhar um dia num projeto ASP.NET MVC com C#. Não sou defensor da MS, tanto que não gosto do ORM dela, mas é muito gostoso trabalhar com ASP.NET MVC (baseado em action e cheio de convenções). No Java o máximo que gostei foi o Struts2, a qual a MS “copiou” pra fazer o ASP.NET MVC, tirando as partes chatas dele.
S
saoj
javaflex:
saoj:
Agora, não gosto de JSF. É gosto mesmo, não quero ninguém mexendo na minha página. Mas é gosto.
Concordo, também não gosto frameworks baseados em componentes, eu não entendo pq a comunidade Java valoriza tanto isso, é assustador olhar uma view cheia de componentes. Mapeamento com Annotations é outra coisa bizarra que acabou sendo muito valorizada, ao invés de incentivar uma solução programática como no NHibernate do .NET.
Também sempre achei loucura isso no Java. Acho você iria gostar de trabalhar um dia num projeto ASP.NET MVC com C#. Não sou defensor da MS, tanto que não gosto do ORM dela, mas é muito gostoso trabalhar com ASP.NET MVC (baseado em action e cheio de convenções). No Java o máximo que gostei foi o Struts2, a qual a MS “copiou” pra fazer o ASP.NET MVC.
Não sabia que o ASP.NET MVC se baseou no Struts2. Interessante pois o Mentawai se baseou no WebWork que nada mais é que o Struts2. Mentawai venho antes do Struts2. Vc deveria dar uma olhada no Mentawai que tem configuração programática com properties por ambiente. Defende isso desde 2005.
J
javaflex
saoj:
javaflex:
saoj:
Agora, não gosto de JSF. É gosto mesmo, não quero ninguém mexendo na minha página. Mas é gosto.
Concordo, também não gosto frameworks baseados em componentes, eu não entendo pq a comunidade Java valoriza tanto isso, é assustador olhar uma view cheia de componentes. Mapeamento com Annotations é outra coisa bizarra que acabou sendo muito valorizada, ao invés de incentivar uma solução programática como no NHibernate do .NET.
Também sempre achei loucura isso no Java. Acho você iria gostar de trabalhar um dia num projeto ASP.NET MVC com C#. Não sou defensor da MS, tanto que não gosto do ORM dela, mas é muito gostoso trabalhar com ASP.NET MVC (baseado em action e cheio de convenções). No Java o máximo que gostei foi o Struts2, a qual a MS “copiou” pra fazer o ASP.NET MVC.
Não sabia que o ASP.NET MVC se baseou no Struts2. Interessante pois o Mentawai se baseou no WebWork que nada mais é que o Struts2. Mentawai venho antes do Struts2. Vc deveria dar uma olhada no Mentawai que tem configuração programática com properties por ambiente. Defende isso desde 2005.
Pois é, MS pegou a idéia do Struts2, retirando as partes chatas e colocando a simplicidade do Rails, além de outras melhorias próprias.
Sobre Mentawai, eu to parado em Java há um tempo, mas já li muito e parece ser bom trabalho mesmo.
R
raf4ever
Eu não só vejo muito como uso sem problemas,não entendi essa colocação.
L
lele_vader
Não vejo nenhum problema.
Só achei que não fosse tão comum.
Vivendo e aprendendo.
Sobre a discussão eu também acho que a oracle definir o web profile foi uma coisa muito boa, pois você não precisa colocar um monte de jar no tomcat e o servidor já vai ter as dependências necessárias e evita usar servidor full para uma coisa que não necessitaria
H
heliofrota
Acho essa pergunta interessante e complicada.
Vou responder com minha opinião:
Java (linguagem, API, especificação, plataforma, ferramentas etc…) é de uma empresa… hoje no caso a Oracle.
Se o profissional aprendeu a Linguagem Java e usa API, Especificação, Ferramenta… de outros fornecedores
diferentes é algo ruim do ponto de vista :
Sobre o ATUAL estado do JEE em relação ao “concorrente” comunitário ou não o JEE está bastante interessante mas:
A) Em que sentido ? Filas ? Web Services ? Performance ? EJB ? Segurança ? Camada Web somente ?
Não existe comparação entre JEE e Mentawai ou JSF ou Struts ou Play ou Servlets e JSP
Escrevi no item 3 a palavra ATUAL assim em uppercase porque como já informaram, a plataforma evoluiu, logo precisa ser comparada
com outras plataformas/ferramentas/frameworks que possuem itens de evolução que casam com os itens evoluidos pela plataforma.
Por exemplo: Criei um framework “X” que não possui IOC , é justo comparar o NÃO-IOC do framework X com o IOC do Spring ?
Para finalizar a minha opinião
Tudo é 0 e 1 no caso mais correto segundo os livros “tudo é assembly” como o Sérgio citou que não é considerada linguagem de máquina e sim de montagem / preparação
para uma linguagem de máquina. Logo a Abstração casa perfeitamente com a questão da Atualização da linguagem/framework/ferramenta…
O que nos leva a crer que daqui a pouco irá surgir algo Não melhor mas mais abstraído/atual que o JEE.
Aqui na empresa usamos JEE6 a mais de um ano substituindo o “Spring” e o apache CXF e usamos Mentawai também, retiramos o JSF por vários motivos.
[atualizado]
Isso me fez pensar filosoficamente sobre outro aspecto:
Oras, se alguém te fala que o GOL (carro) é bom e que vc deve comprar, vc vai lá e compra?!?!?
Ou seja, vc usa um framework terceiro pq ele é MELHOR ou MAIS ADEQUADO para determinado tipo de projeto, e principalmente, pq vc tem LIBERDADE de escolha.
H
heliofrota
O andre_salvati tocou em um tema importante
LIBERDADE
As vezes é o “chefe” ou o cliente que pede a tecnologia.
R
RicardoCobain
O framework não é a sua salvação !! não é ele que vai fazer você ganhar dinheiro…
Mas sim a SOLUÇÃO que você desenvolve…
Já defendi muito JAVA, dizendo que era a melhor e ponto final, pra “min” hoje ainda é a melhor… porque atende minhas expectativas e desejos (Ohhhhh ;)) , mas hoje vejo linguagem como ferramenta, você não deve usar uma marreta para pregar um prego, logo existe soluções mais adequadas para cada “contexto”.
A dica que eu dou é procurem ser o MELHOR em alguma coisa, seja na linguagem ou no framework, se especialize estude e implemente muito…
Não seja mais um que quer apenas consumir o que a SUN / ORACLE / MICROSOFT faz… arregace as mangas e faça !!!
S
saoj
Existe o caso onde vc quer produtividade e entregar um projeto com qualidade e num tempo agressivo.
E existe o caso onde vc quer fazer as coisas na mão mesmo para aprender.
É no primeiro caso que se deve usar os frameworks. O problema é que alguns frameworks acabam complicando mais do que ajudando, então se o cara tivesse escolhido a opção 2 daria no mesmo.
J
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.
O Java já é baseado no OpenJDK, um projeto da comunidade. Até o JavaFX é código aberto…
Eu vejo menos liberdade usando Spring do que JavaEE. O Spring é da SpringSource, o javaEE é de quem? Da Oracle? Mentira, liderou o bean validation(por exemplo) é o Emanuel Bernard, que é da Red Hat. O CDI foi o Gavin King.
O SouJava ajuda em várias especificações e até o Guilherme Silveira, um dos fundadores do GUJ, também ajuda, no JAX-RS.
Isso é todo mundo se unindo para a melhor forma de desenvolvimento de aplicações “enterprise”.
Temos também as outras opções e são bem vindas. Por exemplo GWT é uma outra abordagem interessante. Mas para desenvolver, por exemplo, validação ou transações, como fazer de forma diferente? A Parte WEB é que fica a maior discussão
H
heliofrota
Sua pergunta foi :
Por que usar um framework de terceiro e não usar JavaEE 6 ?
Uma possível resposta é:
Porque o cliente ou o arquiteto, ou o lider técnico, ou o dono da empresa ou qualquer outro stakeholder não quer, não permite não alguma coisa.
O meu comentário foi relacionado a isso.
Citando casos reais que aconteceram comigo e, errando de propósito os nomes das empresas, para não gerarmos problemas:
Banco BRDESCU quer que a parada seja feita com struts 2 e spring. O que fazer ?
N desenvolvedores esperando que você explique porque usar Struts 2 e você tendo que responder que isso felizmente ou infelizmente
direta ou indiretamente está pagando os salários deles porque o cliente quiz.
Entendeu agora a liberdade ? Não tem nada haver com comunidade.
Nessa mesma empresa um dos fatores que me fizeram procurar outro emprego foi o fato de não permitirem usar GNU/Linux devido a um negócio
chamado CMMI nível 5 que não “entendi” (entre aspas) até agora para que serve, logo após a compra da empresa por uma multi-nacional.
De qualquer forma William achei a criação desse tópico super interessante, é uma das coisas que gosto de discutir com colegas de trabalho, parabéns.
J
Jesuino_Master
heliofrota:
Não estou entendendo essas coisas de liberdade não.
Sua pergunta foi :
Por que usar um framework de terceiro e não usar JavaEE 6 ?
Uma possível resposta é:
Porque o cliente ou o arquiteto, ou o lider técnico, ou o dono da empresa ou qualquer outro stakeholder não quer, não permite não alguma coisa.
O meu comentário foi relacionado a isso.
Citando casos reais que aconteceram comigo e, errando de propósito os nomes das empresas, para não gerarmos problemas:
Banco BRDESCU quer que a parada seja feita com struts 2 e spring. O que fazer ?
N desenvolvedores esperando que você explique porque usar Struts 2 e você tendo que responder que isso felizmente ou infelizmente
direta ou indiretamente está pagando os salários deles porque o cliente quiz.
Entendeu agora a liberdade ? Não tem nada haver com comunidade.
Nessa mesma empresa um dos fatores que me fizeram procurar outro emprego foi o fato de não permitirem usar GNU/Linux devido a um negócio
chamado CMMI nível 5 que não “entendi” (entre aspas) até agora para que serve, logo após a compra da empresa por uma multi-nacional.
De qualquer forma William achei a criação desse tópico super interessante, é uma das coisas que gosto de discutir com colegas de trabalho, parabéns.
Valeu pelo esclarecimento e parabéns pela atitude de trocar de emprego por um príncipio, isso realmente é admirável!
É verdade, já vi situações assim várias vezes
A
andre_salvati
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.
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:
Hibernate virou JPA na Java EE
Spring virou CDI na Java EE
Rest virou JAX-RS na Java EE
Bean Validation…
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.
J
Jesuino_Master
andre_salvati:
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.
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:
Hibernate virou JPA na Java EE
Spring virou CDI na Java EE
Rest virou JAX-RS na Java EE
Bean Validation…
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.
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:
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
S
saoj
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.
Problema que JPA é muito parecido com o Hibernate, se eu não estou falando bobagem. CDI nunca ouvi falar.
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]
J
javaflex
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.
A
andre_salvati
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…
Ou seja, os conceitos de Rest só vieram para Java EE depois, muuuuito depois…
L
lele_vader
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
J
Jesuino_Master
andre_salvati:
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.
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…
Ou seja, os conceitos de Rest só vieram para Java EE depois, muuuuito depois…
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!
S
saoj
javaflex:
saoj:
…
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.
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.
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.
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.
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.
J
JoseIgnacio
Porque existem limites no que um software desenvolvido por “comunidade” pode fazer, pensar diferente é um deles.
L
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.
R
raf4ever
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.
Essa API de Criteria da JPA 2 é uma das coisas mais porcas que eu ja vi na vida.
L
lele_vader
Realmente é uma porcaria.
A do hibernate é bem melhor.
Z
Zeovaldo
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;
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.
L
lele_vader
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.
R
rimolive
andre_salvati:
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.
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:
Hibernate virou JPA na Java EE
Spring virou CDI na Java EE
Rest virou JAX-RS na Java EE
Bean Validation…
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.
Há um pequeno equívoco no que você disse: O Spring virou DI (JSR-330). O Seam é que virou CDI (JSR-299).
R
raf4ever
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.
Conheço gente aqui do fórum mesmo que possuem aplicações nesse perfil rodando em JSF e não tem do que reclamar.
B
buiutb
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.
J
Jesuino_Master
Legal que as vezes leio que em “fórum de brasileiro só tem flame”, mas esse tipo de discussão já foi várias vezes fomentada e envolvendo diversos veteranos do mundo Java!
R
raf4ever
JoseIgnacio:
Jesuino Master:
Por que o MELHOR já não nasce no JavaEE?
Porque existem limites no que um software desenvolvido por “comunidade” pode fazer, pensar diferente é um deles.
Não entendi a resposta.Pensar diferente é um limite?
B
buiutb
Não sei corretamente, se sua resposta foi um ‘aviso’ de que minha mensagem poderia ter sido um flame… Se foi essa a intenção, peço desculpa ao pessoal.
Eu, simplismente queria saber o mesmo que você: "Por que o MELHOR já não nasce no JavaEE? "
Pois igualmente á raf4ever, sobre o contexto de JoseIgnacio: "Porque existem limites no que um software desenvolvido por “comunidade” pode fazer, pensar diferente é um deles."
Eu penso também que pensar diferente não é um limite, e sim, o contrário.
Gostaria de ver opiniões do pessoal veterano não somente em Java,mas em outras linguagens também.
Um abraço e desculpe-me se pensei de maneira incorreta.
R
raf4ever
Ai que está,o q é melhor pra um pode não ser pra outro,não esqueça que quem define as especificações são os big players de mercado,ou seja,é cada um “puxando brasa” pra sua sardinha.
J
Jesuino_Master
Não sei corretamente, se sua resposta foi um ‘aviso’ de que minha mensagem poderia ter sido um flame… Se foi essa a intenção, peço desculpa ao pessoal.
Não, não, não foi não! De maneira alguma! Eu só postei por que vi os links(e lembrei de mais alguns agora) abaixo e estava lendo as discussões:
Eu, simplismente queria saber o mesmo que você: "Por que o MELHOR já não nasce no JavaEE? "
Pois igualmente á raf4ever, sobre o contexto de JoseIgnacio: "Porque existem limites no que um software desenvolvido por “comunidade” pode fazer, pensar diferente é um deles."
Eu penso também que pensar diferente não é um limite, e sim, o contrário.
Gostaria de ver opiniões do pessoal veterano não somente em Java,mas em outras linguagens também.
Um abraço e desculpe-me se pensei de maneira incorreta.
O melhor as vezes não nasce no Java EE, mas há exceções. como o JAX-RS, na minha opinião… Agora o pessoal do Infinispan, por exemplo, está fazendo um esforço para adicionar as melhorias que estão sendo vistas primeiramente na especificação JSR 347: http://www.infoq.com/interviews/JSR347-Manik-Surtani
Todo esse ecossistema Java: concorrência do Spring com JavaEE; Frameworks como o Play!; liberdade de qualquer um criar o frame; é a base da inovação da plataforma. Mas acredito que o JavaEE é uma opção bastante forte para uso na criação de aplicações “Enterprise”. Nesse post, tento ver o que não levaria o povo a não usar JavaEE!
R
raf4ever
Vejo 2 causas principais:
Preconceito de quem usou as primeiras versões da especificação, se desiludiu com bizarrices como EBJ 1.0 e outros e não acompanhou a evolução da plataforma;
Conforto de quem já domina uma arquitetura com Spring+Hibernate+JSF (meu caso).