Usar o Padrão ou a(s) Alternativa(s)  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
RafaelRio
Java Ninja
[Avatar]

Membro desde: 05/09/2006 06:52:42
Mensagens: 255
Localização: São Paulo
Offline

Pessoal, uma dúvida para ser respondida de forma bem genérica, devido às milhares de nuances que podem existir. Então...

o fato de um certo framework ser a implementação de uma JSR pesa consideravelmente na escolha entre os n frameworks existentes, inclusive alguns que estão por aí há um bom tempo e se mostraram eficazes?

Um exemplo para deixar a coisa menos abstrata: databinding para Swing veio a tona (quis dizer que está na moda) graças ao Beans Binding (JSR-295) e, principalmente, ao NetBeans 6.0.

Antes do Beans Binding, já existiam o Genesis, JGoodies Binding, Beans Properties e outros. Acho que o JGoodies Binding e o Genesis são os mais conhecidos e usados (nessa ordem, mas é um chute) e, embora bem diferentes, ambos têm muitas qualidades e são bem conceituados.

Outra questão, para dar mais peso à decisão:
um professor universitário, por exemplo, poderia / deveria ensinar alguma solução só pelo fato de ser a implementação de uma JSR?

Rafael Fiume.
Yes, Nós Temos Bananas

Sun Certified Programmer for the Java Platform, Standard Edition 6
Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5

Nullius in verba.
"A palavra de nenhum homem será a final."
Lema da Royal Society, associação de cientistas de Londres, em 1660. Entre os seus membros e presidentes esteve Isaac Newton.
[Email]
Bani
JWizard
[Avatar]

Membro desde: 13/10/2002 23:17:37
Mensagens: 2443
Localização: São Paulo
Offline

Eu sou bastante a favor de usar implementação de uma JSR quando a licença é compatível.

Acredito mais na padronização (e especialmente na manutenção de compatibilidade) nesses casos.

Tive a experiência de trabalhar com portlets quando ainda estava sendo desenvolvida a JSR, na época trabalhando com a solução da IBM, e quando mudava a versão acabava tendo que atualizar meus portlets porque eles paravam de funcionar.

Claro que algumas frameworks "não-oficiais" são bastante sérias e tentam evitar tais problemas, porém é como se as implementações de JSRs tivessem um "selo de qualidade" a mais nesse sentido.
RafaelRio
Java Ninja
[Avatar]

Membro desde: 05/09/2006 06:52:42
Mensagens: 255
Localização: São Paulo
Offline

Oi, Bani!

Bani wrote:Acredito mais na padronização (e especialmente na manutenção de compatibilidade) nesses casos.

Por algum motivo além de no futuro não precisar adicionar bibliotecas de terceiros ao software? Muitos garantem compatibilidade entre as versões.

Bani wrote:Claro que algumas frameworks "não-oficiais" são bastante sérias e tentam evitar tais problemas, porém é como se as implementações de JSRs tivessem um "selo de qualidade" a mais nesse sentido.

Aqui você tocou no X da questão. Que as implementações das JSR's têm um "selo" a mais é indiscutível, mas será que resolvem o problema da melhor forma?

Rafael Fiume.
Yes, Nós Temos Bananas

Sun Certified Programmer for the Java Platform, Standard Edition 6
Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5

Nullius in verba.
"A palavra de nenhum homem será a final."
Lema da Royal Society, associação de cientistas de Londres, em 1660. Entre os seus membros e presidentes esteve Isaac Newton.
[Email]
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

RafaelRio wrote: o fato de um certo framework ser a implementação de uma JSR pesa consideravelmente na escolha entre os n frameworks existentes


Pesa, desde que se considere o padrão uma solução eficaz.

RafaelRio wrote:
um professor universitário, por exemplo, poderia / deveria ensinar alguma solução só pelo fato de ser a implementação de uma JSR?


Não; deveria ensinar o que for mais apropriado.

Apenas como exemplo, pense em EJB 2.x e Spring

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

RafaelRio wrote:Que as implementações das JSR's têm um "selo" a mais é indiscutível, mas será que resolvem o problema da melhor forma?


A questão é se o padrão resolve o problema da melhor forma. No caso da JSR-295, eles estão praticamente reestruturando o código inteiro, desde que o Shannon assumiu a liderança.

Além disso, o escopo da JSR não é um match exato com os outros frameworks. O genesis, por exemplo, cobre boa parte do escopo da JSR-295, 296 e 303.

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
Bani
JWizard
[Avatar]

Membro desde: 13/10/2002 23:17:37
Mensagens: 2443
Localização: São Paulo
Offline

RafaelRio wrote:Oi, Bani!
Bani wrote:Acredito mais na padronização (e especialmente na manutenção de compatibilidade) nesses casos.

Por algum motivo além de no futuro não precisar adicionar bibliotecas de terceiros ao software? Muitos garantem compatibilidade entre as versões.


Simplesmente pelo fato de ser "padrão". Isso costuma dizer que já discutiram o suficiente e "fecharam" a API, naquele sentido de "fechado para modificação mas aberto para extensão" do Bertrand Meyer.

Como eu disse, eu acredito mais nesses casos. Não que outras implementações sejam ruins.

~ Site da Bani ~
RafaelRio
Java Ninja
[Avatar]

Membro desde: 05/09/2006 06:52:42
Mensagens: 255
Localização: São Paulo
Offline

mister__m wrote:
RafaelRio wrote:
um professor universitário, por exemplo, poderia / deveria ensinar alguma solução só pelo fato de ser a implementação de uma JSR?


Não; deveria ensinar o que for mais apropriado.

Apenas como exemplo, pense em EJB 2.x e Spring

Na verdade eu pensei em EJB 2.x, Spring e EJB 3.0.

Agora, falando sério, nem sempre a escolha é tão óbvia quanto Spring vs. EJB 2.0, tornando a questão sobre o que é "mais apropriado" bastante subjetiva.

E tem outra coisa: geralmente é difícil aprender a utilizar bem um framework. Então, mesmo em novos projetos, largar um framework previamente utilizado em favor de uma implementação de uma JSR pode ser custoso.

Rafael Fiume.
Yes, Nós Temos Bananas

Sun Certified Programmer for the Java Platform, Standard Edition 6
Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5

Nullius in verba.
"A palavra de nenhum homem será a final."
Lema da Royal Society, associação de cientistas de Londres, em 1660. Entre os seus membros e presidentes esteve Isaac Newton.
[Email]
bzanchet
Java Ninja

Membro desde: 18/05/2006 20:04:34
Mensagens: 256
Offline

Passo a primeira, vamos a segunda.

Professor universitário ensinar framework? Eu penso que "solução" nenhuma deve ser ensinada na faculdade, pelo simples fato de que ela não será mais "solução" daqui a 5 anos (e "solução" é um termo que o departamento de marketing da microsoft adotou ).

Faculdade não deveria ensinar tecnologia, não é o propósito. Porém, claro, é impossível ensinar conceitos teóricos sem alguma ilustração prática, que envolverá tecnologia do aqui e agora. Penso que o professor deve utilizar a tecnologia mais apropriada, seja porque ele domina ou seja porque é otimizada para o problema em questão. Implementar uma JSR não deve ser um fator que orienta uma decisão desse tipo.

Agora, mudando a questão: ensinar tecnologia pela tecnologia em si? Em um curso superior? Só porque implementa uma JSR? Não..

http://conceitua-se.blogspot.com/
[WWW] [MSN]
RafaelRio
Java Ninja
[Avatar]

Membro desde: 05/09/2006 06:52:42
Mensagens: 255
Localização: São Paulo
Offline

bzanchet wrote:Passo a primeira, vamos a segunda.

Professor universitário ensinar framework? Eu penso que "solução" nenhuma deve ser ensinada na faculdade, pelo simples fato de que ela não será mais "solução" daqui a 5 anos (e "solução" é um termo que o departamento de marketing da microsoft adotou ).

Faculdade não deveria ensinar tecnologia, não é o propósito. Porém, claro, é impossível ensinar conceitos teóricos sem alguma ilustração prática, que envolverá tecnologia do aqui e agora. Penso que o professor deve utilizar a tecnologia mais apropriada, seja porque ele domina ou seja porque é otimizada para o problema em questão. Implementar uma JSR não deve ser um fator que orienta uma decisão desse tipo.

Agora, mudando a questão: ensinar tecnologia pela tecnologia em si? Em um curso superior? Só porque implementa uma JSR? Não..

Tudo bem, essa pergunta sobre um professor universitário ensinando frameworks foi péssima. Eu só estava tentando dar mais peso à decisão de usar o padrão ou uma das alternativas existentes.

Troque professor universitário por um instrutor de cursos técnico, consultor, o que for. Ok?

Rafael Fiume.
Yes, Nós Temos Bananas

Sun Certified Programmer for the Java Platform, Standard Edition 6
Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5

Nullius in verba.
"A palavra de nenhum homem será a final."
Lema da Royal Society, associação de cientistas de Londres, em 1660. Entre os seus membros e presidentes esteve Isaac Newton.
[Email]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

RafaelRio wrote:
o fato de um certo framework ser a implementação de uma JSR pesa consideravelmente na escolha entre os n frameworks existentes, inclusive alguns que estão por aí há um bom tempo e se mostraram eficazes?


Frameworks aparecem porque alguem precisa deles. Frameworks para fazer a mesma coisa existem. Quando são muitos, alguem quer padronizar e nasce uma JSR. Ou então, o framework é tão util que nasce a ideia de o incoorporar ao padrão.

Por exemplo o Log4J é o padrão de fato para logging. Embora o java tenha o seu ppr logging ele nasceu depois do Log4j e não tem as mesmas capacidades (é o que dizem, nunca usei o java logging). A pergunta é, porque a Apache simplesmente não deu o Lo4J para ele virar o java logging ?
Este é um exemplo em que o padrão java não é o padrão de fato ( o que todo o mundo usa). E isso causa problemas que levaram à criação do Commons Logging.

Vc pode implementar o seu ppr framework de logging, mas convenhamos que na realidade vc desenvolverá uma casca em cima do log4j , commons e java logging de forma que possa escolher qual usar ou usar todos ao mesmo tempo.

Uma JSR nem sempre é a melhor solução para o dominio do problema, ja que existem outros pesos. Por exemplo, a JSR-275 de unidades de medida e medidas obriga a atrelar uma grandeza a todas as unidades e medidas na forma de tipo generico. Isso foi baseado na implementação JScience que foi a base para JSR. A verdade é que essa amarração é inútil já que ao fazer contas ela não se propaga. E tem vários outros detalhes ...
A questão é que foi baseada em algo pronto, os lideres da JSR são quem tinha isso pronto. O interesse pela JSR parece não ser tão grande assim (embora esteja prevista para entrar no java 7). Tudo isto produz uma API "menos que otima". Claro que existem outros fatores a considerar numa JSR além da pureza do dominio.

A JSR 310 (datas e tempos) começou pela ideia usada no Joda Time, mas está bem mais afastada dessa API. Embora tenha as sua idiossincrasias relativamente a nomes de classes e métodos evolui bastante comparada com API do joda. Evoluiu no sentido de ficar mais perto do dominio e mais longe de uma API "solução rápida"

Mas veja, os intervalos de tempo definidos na 310 não são medidas no conceito da 275.
Logo aqui se entende que a falta de entrozamento levará a alguém criar outra API que enxergue as coisas sob uma optica só (tal como elas são na realidade uma coisa só) ... que num futuro poderá dar origem a uma JSR

Ou seja, preferir uma JSR a uma implementação de terceiros não tem regras. Vc usa a que gostar mais, a que melhor satisfizer as suas necessidades. E tem o fator experiência tb. Tlv se todo o mundo não tivesse viciado no Log4j a java loggging API tivesse uma chance...

Respondendo à sua pergunta diretamente:
Sim, pesa.Mas apenas quando os outros fatores são um empate (simplicidade, rapidez, disseminação, etc).





Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
bzanchet
Java Ninja

Membro desde: 18/05/2006 20:04:34
Mensagens: 256
Offline

RafaelRio wrote:Troque professor universitário por um instrutor de cursos técnico, consultor, o que for. Ok?

Nesse caso eu diria que a demanda do mercado é o fator de maior importância. Vou ter que concordar com o Michel, porque implementar uma JSR implica, na maioria dos casos, em maior demanda. Logo, implementar uma JSR provavelmente seria um fator de peso, sim.

http://conceitua-se.blogspot.com/
[WWW] [MSN]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team