Craptaculous Web Framework

58 respostas
guilherme.chapiewski

O Neal Ford começou uma discussão interessante sobre a criação de frameworks a torto e a direito que vemos por aí hoje em dia:

“Which web framework should I use?” If there were only 3, you could reasonable go compare them. When the number reaches 10 or 20, there is no time to go sample each one. Thus, paralysis sets in and you end up using Struts (again), or creating another version of your home-grown Craptaculous framework.

A discussão já foi parar até no InfoQ.

O que vocês acham? Será que alguns desenvolvedores não estão perdendo muito tempo re-inventando rodas? Será que isso não é um sintoma de falta de criatividade?

58 Respostas

Mauricio_Linhares

Falta de criatividade?

Pra mim isso é resultado da falta do que fazer, quem tem o que fazer não vai perder tempo inventando um framework mais do mesmo, vai é produzir aplicações que façam alguma coisa de futuro.

Isso é o ego do programador Java que acha que sabe programar e quer poder dizer um dia que criou um framework, porque criar frameworks é coisa de “programador avançado”. O problema é que ninguém disse a ele que não tem nada de avançado em criar mais um framework web baseado em actions.

saoj

Quem não gosta de competição deveria se mudar para cuba. É triste, pois até o nosso presidente e os seus amigos da esquerda acham que Cuba é um belo modelo. Só se for um belo modelo de prisão!

Abandonando a política e voltando rapidamente para tecnologia, se eu quiser criar um servidor web, um JForum, um cliente de email, etc. qual é o problema disso? Absolutamente nenhum! Não vou colocar uma arma na cabeça de ninguém para que usem. As pessoas podem ignorar, podem olhar, não gostar e ignorar, etc. E a não ser que eu copie linha a linha de algum programa já existente, o que seria um simples roubo, eu acho que precisarei de criatividade para fazer a coisa de outra maneira. Estou no aguardo de uma dica de um projeto que nunca ninguém tenha feito antes. De uma idéia totalmente inédita. Deve ter aos montes por aí, né?

Amigos: FREE WORLD !!! Cada um na sua, respeitando a liberdade do próximo. Diferentemente de um framework web, fazer um controlador MVC é muito fácil, por isso que há tantos. Eu não preciso conhecer todas as frutas do mundo para saber qual que eu gosto mais ou qual que eu quero comer hoje.

As pessoas que são contra a competição, devem ser contra tb as privatizações, a redução da influência do governo na economia e na vida das pessoas, etc. Os países mais ricos e mais desenvolvidos são exatamente os mais liberais. Ou vcs querem baixar uma lei que é proibido fazer qualquer programa que já exista?

Acho que vou começar um projeto de um cliente de email, agora mesmo… Lembrem-se: se vc não gostar ou não usar, não precisa me pedir desculpas.

Recomendo também estudar um pouco mais sobre Darwin e sobre a sua teoria da “Seleção Natural”.

Mauricio_Linhares

Competição com o que?

É tudo igual, não muda nade de um com o outro, o cara que vai escolher podia ir com um dado e daria no mesmo. São todos iguais.

E não existe darwinismo sem mutações ou alterações, os diversos frameworks com DNA igual vão morrer todos juntos. Isso é darwinismo.

A comunidade Java precisa deixar de se preocupar com besteira e procurar "atalhos’ e produzir coisas interessantes de verdade, já fazem 8 anos que o Struts saiu e todo mundo continua seguindo a mesma cartilha.

saoj

Maurício Linhares:
Competição com o que?

É tudo igual, não muda nade de um com o outro, o cara que vai escolher podia ir com um dado e daria no mesmo. São todos iguais.

E não existe darwinismo sem mutações ou alterações, os diversos frameworks com DNA igual vão morrer todos juntos. Isso é darwinismo.

Mc Donald’s é igual a Bobs?, Tomcat é igual ao Jetty?, Euroda é igual a Outlook Express? Mentawai é igual a Struts? VRaptor é igual a Stripes?

Se tem alguma coisa igual ao Mentawai (mesmos conceitos, API e código) por favor me avise. Não vale falar que é igual por que é um MVC action-based, assim como não vale falar que é tudo hamburger, ou cliente de email ou servidor web. Java e Net ??? Pra que? Ruby e Python? Pra que? É tudo igual !!! :roll:


A comunidade Java precisa deixar de se preocupar com besteira e procurar "atalhos’ e produzir coisas interessantes de verdade, já fazem 8 anos que o Struts saiu e todo mundo continua seguindo a mesma cartilha.

Sinta-se a vontade para sugerir algo totalmente inédito. Talvez um framework web baseado em redes neurais ou algotimos genéticos. Devem haver vários projetos e idéias interessantes que ninguém nunca pensou ou realizou no mundo, né? E se eu não me engano, o RoR que é segundo muitos a coisa mais invadora do mundo atualmente é action-based, né?

Emerson_Macedo

Qualquer framework hoje em dia precisa de uma idéia inovadora tal como foi RoR. Criar outro RoR com um nome diferente é burrice. Criar outro Hibernate com nome diferente também é burrice.

Esse é o ponto que acho que o Guilherme quis dizer. Isso é falta de criatividade. Na verdade você não terá criado nada, tão somente copiado com outro nome e algumas features diferentes ao invés de extender alguma coisa madura já existente.

L

O Neal Ford chamou de Craptaculous aqueles frameworks “internos” que as empresas fazem por preguiça de conhecer o que existe no mercado, e não aos frameworks que surgem por aí no Java. Indo direto ao ponto: Mentawai não é Craptaculous!

Apesar de Neal Ford apontar o problema, a causa, na minha opinião, está longe de ser um suposto excesso de frameworks. Está mais na mentalidade de arquitetos de escolherem “os padrões” ou o que “está no mercado”, sem levar em conta os outros que existem. Porque quando a solução “de mercado” não funciona, o “único jeito” é fazer por conta própria, pois “não há outras alternativas”.

De resto, defendo saoj, vivemos em um mundo livre onde há espaço para pessoas criarem vários frameworks. Tem gente que acha que é tudo igual, mas eu não acho. Aliás é no Java onde se encontra as maiores variedades de frameworks web, uma mais diferente que a outra (há menos que você ache que, sei lá, GWT e Struts sejam a mesma coisa!).

acdesouza

Acredito que tantos frameworks estejam sendo criados, porque nenhum deles atende todas as necessidades dos seu usuários de maneira satisfatória.

O Stripes foi citado, então irei usá-lo como exemplo…
[fanboy-mode on]
Hoje, acredito ser o melhor framework MVC, Action-based, para desenvolvimento com interface WEB. Não imagino fazer nenhum freelance sem usá-lo:

  • Nada de configurações mirabolantes, preferência por convenções;
  • Se vira sozinho com propriedades indexadas; passagem de listas da página para a Action;
  • Reuso do seu model, nada de criar uma classe para represetar os dados da página, usa uma classe de modelo;
  • Suporte a validação com um conjunto de anotações super simples, não uma adaptação de um arquivo XML;
  • Integração com Hibernate;
  • Integração com Spring, para quem gosta;
  • Suporte a criação de wizards.

Duvido que qualquer outro framework MVC, Action-based, seja tão bom quanto o Stripes. Isto é, apresente as mesmas funcionalidades e facilidades.

Simplesmente perfeito, na minha opinião - claro.
[fanboy-mode off]

Ele foi criado para consertar os problemas que o Struts, a primeira versão ainda, possui.

Qual o problema dele e o porque dele não ser adotado em larga escala? Simples… Não tem marketing. Não tem a Apache ou a Sun passando a mão na cabeça e falando que vale a pena.

Meu ponto aqui é o seguinte: São criados muitos frameworks porque os que existem não atendem. Mas nem todos são amplamente usados porque não tem apoio de alguém com nome para exibí-los.

saoj

Temos que evitar o fanatismo. :slight_smile: Se vc conseguir me listar apenas uma coisa que o Stripes faz que o Mentawai não faz eu ficarei eternamente agradecido a vc. Sinceramente, isso aí que vc listou é básico de muitos frameworks que estão aí.

Vc acha que o Stripes é melhor que qualquer outro, porque vc só conhece o Stripes e não conhece o Mentawai e o VRaptor. :wink:

maquiavelbona

Eu tenho duas opiniões: uma baseada no desespero e outra na ignorância.
Falando da segunda, essas soluções são feitas por falta de procura ou visão técnica, com a chefia pedindo as soluções prontas e sem capacidade de tentar ver se algo adapta-se ao caso. Pena.
A primeira eu acho que é a mais ofensiva. O desenvolvimento começa com o pressuposto que algum framework não atende a necessidade X. Então para resolver essa necessidade sem necessidade de se submeter ao processo de validação de um projeto open-source normal ( que não costuma ser curto ), cria-se um novo framework próprio, que revoluciona fazendo a opção X como default. Mas outra empresa precisa também a necessidade Y que a primeira empresa achou desnecessário. E agora? Agora vai ser criado mais um framework que vai atender X e Y mas que vai ter o mesmo núcleo de intenções do framework inicial. Ao invés de haver uma colaboração em torno de grupos de ferramentas, ajudando algumas maiores a melhorar, acham mais fácil criar um novo porque assim eles tem “controle” do processo.

Onde que esses frameworks que comentam entram? É só dar uma olhada no fórum. Vira e mexe aparece mais um, que promete fazer algo que o outro não fazia ao invés de fazer o original melhor o suficiente. Cópias? Não sei. Mas originais, não.

Até!

guilherme.chapiewski

Leonardo3001, você está se contradizendo. Olha o que você falou:

Depois você fala:

Se a solução de mercado não funciona, a alternativa é criar a sua solução por contra própria. E quando a solução de mercado funciona e alguém cria uma solução de contra própria só por… criar?

Continuando meu raciocínio, olha o que está no site do Mentawai (http://www.mentaframework.org/depinj.jsp):

Porque não usar Spring? Google Guice? PicoContainer? NanoContainer?

O fato do Mentawai ter reimplementado isso sem olhar para o que “está no mercado”, sem levar em conta os outros que existem, já o torna “Craptaculous”. Isso sem falar do resto. Sinto muito, não tem como negar.

Agora, minha discussão em momento algum era sobre Mentawai ou qualquer outro framework em especial.

L

Realmente eu me contradisse. Na primeira parte me referi a mercado como algo geral, tipo o GWT, o Stripes, o Seam, o Wicket, o Mentawai… todo mundo estando no mercado.

Na segunda frase, o “mercado” já era aquela visão distorcida de arquiteto e desenvolvedor certificado: mercado sendo apenas Struts e Faces. Daí, para alguns criarem uma solução própria quando apenas o Struts ou Faces não são capazes de fazer, é um pulo!

saoj

Guilherme, vc está um pouco equivocado e mal-informado.

Quando fizemos o suporte a Auto-wiring e IoC do Mentawai não existia GUICE. Então o GUICE do Google é um Scraptaculous também porque copiou o PicoContainer? Acho que não. Dá uma olhada no Guice que vc vai ver que ele segue a mesma linha do Mentawai.

WebWork e outros frameworks web SUPORTAM ou IMPLEMENTAM Ioc e DI. Isso não é ruim, pelo contrário, é muito bom. Se vc quer fazer uma salada de frameworks e misturar Mentawai com Spring, vc pode. O Mentawai, assim como outros frameworks web, possui essa integração.

Agora implementar auto-wiring e IoC, diferentemente de implementar ORM ou um pool de conexões, não é rocket science. Então o Mentawai desenvolveu a sua própria solução. No caso de envio de email, pool de conexões, template, cluster, file upload, etc. o Mentawa ABSTRAIU outros frameworks. Seria loucura implementar isso na mão.

O Mentawai não é um Scraptaculous simplesmente pelo o grande número de usuários que utilizam e estão satisfeitíssimos. Isso no mundo todo, não só do Brasil. Esses dias mesmos recebemos um feedback positivo de um usuário da alemanha, que contribuiu com um filtro de paginação. E o Mentawai é muito diferente de todos os outros frameworks que estão aí. Se interessando vc pode ler a nossa filosofia aqui.

E dá uma olhada com carinho no suporte do Mentawai a IoC e Auto-wiring que vc vai se surpreender, mas se quiser usar Spring pra isso, fique a vontade.

acdesouza

[caindo_na_pilha-mode on]
[color=red][caindo_na_pilha-boost /][/color]
[color=red][caindo_na_pilha-boost /][/color]

Eu não sou fanático :!: . Não é porque sua alma vai queimar no inferno por não usar o Stripes que eu sou fanático.
Você é quem é ateu. Foi você quem não encontrou o caminho a verdade e a Luz que o Stripes representa :lol:
[caindo_na_pilha-mode off]

  • O VRaptor é o mais parecido, em termos de facilidades, com o Stripes. Pelo menos a aplicação inicial, usando VRaptor, eles tem a mesma dificuldade;
  • O Struts 1, não entende nada que não seja String ou Integer. E passar um List para a Action é um parto-normal com a criança atravessada;
  • O JSF não se dá muito bem com nada que não seja um POST;
  • O Stripes não precisa que você configure as ações no Mentawai:
public void loadActions() {
//...
}

Isso é, quase, o mesmo que declarar as actions no struts-config.xml ou no faces-config.xml.

saoj

Já faz alguns anos que temos Convention over Configuration. Sinceramente hoje em dia não há como existir um framework web sem CoC, não só para a view mas para tudo. Seria como existir um framework web usando o FormBean do Struts.

Vc deve estar falando de CoC para a camada view.

O Mentawai, por default, segue as mesmas convenções do RoR.

http://www.mysite.com/User.add.mtw => forward to /User/add.jsp

E vc pode ainda criar suas próprias convenções implementando a interface ConsequenceProvider.

E se vc tiver que configurar, vc pode usando configuração programática.

Duas actions diferentes indo para a mesma página não vai ter como com CoC, né?

Mas sinceramente, eu já debati com os desenvolvedores do Stripes e acho ele um excelente framework. Só que o Mentawai tem uma filosofia mais FULL-STACK e o Stripes já afirmou que quer ser apenas um controlador MVC.

guilherme.chapiewski

saoj:
Guilherme, vc está um pouco equivocado e mal-informado.

Quando fizemos o suporte a Auto-wiring e IoC do Mentawai não existia GUICE. Então o GUICE do Google é um Scraptaculous também porque copiou o PicoContainer? Acho que não. Dá uma olhada no Guice que vc vai ver que ele segue a mesma linha do Mentawai.

Ok, esqueça o Guice. Sobram todos os outros. Então eu repito, o Mentawai reinventa a roda. Continua sendo Scraptaculous. Acabou. Fim de papo. Zé fini. Você não tem como argumentar. É isso. Esquece. Eu não vou entrar começar a discutir com você porque você daqui a pouco vai começar a falar dos usuários satisfeitíssimos em todo o mundo blá blá…

Oops, já começou…

Os usuários satisfeitos não dizem nada. Até aí tem muita gente satisfeita com o governo Lula e nem por isso ele é bom. Esquece isso Sergio, não prova nada. Numa internet com vários milhões de sites com certeza alguém tem que gostar do Mentawai, assim como tem gente que gosta do Lula e assim como os caras do Jackass gostam de comer coco!

Eu não quero mais discutir com você sobre Mentawai. Aliás, repito que a discussão nem era sobre isso, mas parece que a carapuça serviu…

Kenobi

Vez que o meio TI é um ecosistema, logo pode se aplicar a seleção natural de Darwin, para sobrevivência daqueles frameworks que terão herdado características dos seus antepassados.

Assim é a evolução, um passo de cada vez e os saltos são em tempos espaçados. Quando estes acontecem, vemos iniciativas como RoR , Hibernate (citados); batendo à porta. Os conceitos são introduzidos aos poucos, alguns
experimentos são testados e a adaptação dos “seres” se dá em meio às necessidades : Negócio, Time-to-marketing, que deveremos responder.

Grande parte do Rails se apoioa no Service-to-Worker , com sacadas DDD e COC. À partir deste pontos, muitos outros projetos vão ser parecidos, poucos sobreviverão e de repente, haverá outro salto, resultado de uma série de experimentos.

Toda e qualquer visão parte de uma referência, então acho válido o estudo e construção de aplicações que servirão mais à frente para esse salto, que todos esperamos.

De qualquer forma, fico triste em ver no mercado brasileiro poucos produtos ainda, principalmente no que tange aplicações Web 2.0 ( jargão). Todo dia leio sobre diversas iniciativas de negócio e por aqui bem poucos desenvolvedores se arriscam a criar algo.

saoj

Ok, vc está certo. O Guice tb é um Scraptaculous porque re-inventou a roda. Os caras do Google são umas bestas porque deveriam ter usado Pico ou Spring.

Nem Jesus Cristo agradou a todos. O Mentawai não lhe agradou. Então me desculpe. Sorte a minha que ele faz um sucesso danado e agrada mais gente do que muito framework web por aí. :wink:

Frentic

Saoj,

Você foi lá na discussão do Neal Ford dar sua opinião (até aí tudo bem) e fazer uma propaganda barata do seu framework web, que não adiciona NADA a discussão lá. Você não tem vergonha nessa cara não ?

E ainda chamou o Neal Ford de maluco.

HAHA

saoj

Frentic:

E ainda chamou o Neal Ford de maluco.
HAHA

Não chamei ele de maluco. Tente ler mais uma vez o texto.

E fique tranquilo que tenho vergonha na cara sim, as vezes sou um pouco maluco (e isso as vezes pode ser uma qualidade), mas vergonha na cara eu tenho. :wink:

Frentic

saoj:

Não chamei ele de maluco. Tente ler mais uma vez o texto.

E fique tranquilo que tenho vergonha na cara sim.

Você deixa a entender que ele tá ferindo com o conceito de liberdade, e manda essa:

Se você fizer um pouquinho de interpretação de texto, verá que indiretamente chamou ele de maluco :stuck_out_tongue:

saoj

Se ele se considera um interventor, uma pessoa que pode dizer o que pode ser feito, como e quando, então a carapuça vai servir. Mas sinceramente não acredito que seja o caso do Neal Ford.

pellegrino

Assim é a evolução, um passo de cada vez e os saltos são em tempos espaçados. Quando estes acontecem, vemos iniciativas como RoR , Hibernate (citados); batendo à porta. Os conceitos são introduzidos aos poucos, alguns
experimentos são testados e a adaptação dos “seres” se dá em meio às necessidades : Negócio, Time-to-marketing, que deveremos responder.

Se não há um passo para frente, será que vale a pena investir tempo na criação de um novo framework que soluciona, do mesmo jeito, os mesmos problemas?

Com certeza, se houvessem apenas 2 ou 3 Frameworks, seria muito mais fácil escolher a melhor solução para o seu problema. Se ao invés de criarmos todo um novo framework porque não gostamos, especificamente, da forma como ele lida com algum aspecto interno do seu funcionamento, nós contribuissemos com o projeto tornando-o mais adequado? Dessa forma, teríamos menos escolhas, porém, escolhas melhores. Ou, ainda, poderíamos focar criando soluções que nos ajudassem em outros problemas menos batidos por aí.

Se não introduz algo significativo, ao meu ver, não vale a pena ser feito.

F

guilherme.chapiewski:
saoj:
Guilherme, vc está um pouco equivocado e mal-informado.

Quando fizemos o suporte a Auto-wiring e IoC do Mentawai não existia GUICE. Então o GUICE do Google é um Scraptaculous também porque copiou o PicoContainer? Acho que não. Dá uma olhada no Guice que vc vai ver que ele segue a mesma linha do Mentawai.

Ok, esqueça o Guice. Sobram todos os outros.

Mas o Guice é diferente do Spring e do Pico, ele ja nasceu Java 5 e se aproveitando disso.

]['s

guilherme.chapiewski

fabio.patricio:
guilherme.chapiewski:
saoj:
Guilherme, vc está um pouco equivocado e mal-informado.

Quando fizemos o suporte a Auto-wiring e IoC do Mentawai não existia GUICE. Então o GUICE do Google é um Scraptaculous também porque copiou o PicoContainer? Acho que não. Dá uma olhada no Guice que vc vai ver que ele segue a mesma linha do Mentawai.

Ok, esqueça o Guice. Sobram todos os outros.

Mas o Guice é diferente do Spring e do Pico, ele ja nasceu Java 5 e se aproveitando disso.

]['s

Isso mesmo. Aliás, eu não gosto muito do esquema dele de annotations, mas isso não vem ao caso. O fato é que ele realmente introduziu uma novidade e por isso acho que não se encaixa nessa categoria de scraptaculous.

saoj

Acho que a diferença foi outra, foi usar configuração programática para configurar os componentes.

Guice:

public class MyModule implements Module {

  public void configure(Binder binder) {

    binder.bind(Service.class)
      .to(ServiceImpl.class)
      .in(Scopes.SINGLETON);
  }
}

Mentawai:

public class ApplicationManager extends org.mentawai.core.ApplicationManager {

    public void init(Context app) {
    
        filter(new IoCFilter()); // global filter...
    
        ioc("service", ServiceImpl.class, APPLICATION);
    }
}

A diferença é que o Mentawai faz o binding por nome de variável ou propriedade (no caso quem tiver uma propriedade “service” vai receber ServiceImpl) e o GUICE faz o binding por annotation (vc coloca @Inject aonde vc quer que receba o ServiceImpl).

O Spring suporta esses dois tipos de bind e não sei se ele suporta annotations. (procure por Spring Annotations do Urubatan)

Mentawai por opção e filosofia não usa annotations, e sim um arquivo de configuração central. O Mentawai não é Scraptaculous porque diferentemente dos outros é um framework focado totalmente em configuração programática central (isso não é annotations, nem xml e se vc acha que o Mentawai não tem conventions clique aqui). E também diferentemente de muitos outros porque é um framework web FULL-STACK, que soluciona todos os problemas repetitivos de uma aplicação web, e não apenas mais um controlador MVC. Diferentemente de muitos outros, possui um stack de entrada (action input) e de saída (action output). Diferementemente de muitos outros, possui suporte nativo a Ajax no server-side e no client-side (MentaAjax). E muitas outras diferenças que só não vê quem não quer ver e apenas criticar.

F

guilherme.chapiewski:

Isso mesmo. Aliás, eu não gosto muito do esquema dele de annotations, mas isso não vem ao caso. O fato é que ele realmente introduziu uma novidade e por isso acho que não se encaixa nessa categoria de scraptaculous.

Tanto é que algo semelhante foi adicionado ao Spring 2.5. Gostar dele ou nao é um outro detalhe, mas ta fora da discussão.

Ps. Tambem fiquei impressionado como uma discussão que nao tinha nada a ver com o Menta se transformou nisso.

]['s

Mauricio_Linhares

O Spring já tem suporte a configurações via annotations.

acdesouza

Você não acreditaria se eu te falasse que não é bem assim, acreditaria? Já ouviu falar de Java Server Faces? :wink:

A questão que foi levantada pelo autor do texto que o Guilherme comentou, é que o Mentawai poderia ser um conjunto de facilidades que agrupam vários frameworks, como o JBoss Seam faz com JSF, EJB3 e JPA e o Rails faz com ActiveRecord e os outros, lá.

O Mentawai poderia ser o VRaptor, Nano/PicoContainer e Hibernate. Isso seria uma melhoria no uso dos 3 frameworks, criando uma “arquitetura full-stack” para um tipo de projeto web.
No entanto o que o Mentawai faz é reescrever essas funcionalidades e incluir um facilitar para integrá-las. Esta é a atitude que o autor, do texto que o Guilherme leu, questiona.

É o mesmo que se pergunta qualquer maluco que começa a usar Linux: Por que as pessoas não se juntam e criam uma mega-distro ao invés de dividir o esforço entre um milhão de pequenas distros?

saoj

Acho que vc não leu um dos meus posts anteriores quando eu falo que o Mentawai é FULL-STACK e abstrai alguns frameworks dentro dele:

  • Pool de Conexão: Mentawai, como o Hibernate, abstrai C3P0 e DBCP. E pode abstrair muitos outros através da interface ConnectionHandler.

  • Envio de Email: Mentawai abstrai o Commons Email dentro dele.

  • File Upload: Mentawai abstrai o Commons File Upload dentro dele.

  • Cluster: Mentawai, como o JBoss, abstrai o JGroups dentro dele.

  • Template para envio de email: Mentawai abstrai um VelocityEngine, e pode abstrair muitos outros através da interface Letter.

Algumas coisas como IoC e Auto-wiring, o Mentawai implementou a sua própria solução. Tenho certeza que o pessoal do Spring e do Pico não está chorando agora porque a gente não abstraiu eles. Foi apenas uma decisão de design. Não pretendemos lançar nenhum framework de IoC e Auto-wiring para concorrer com esses. Principalmente porque o Google já o fez, e muito bem por sinal!

acdesouza

Eu entendi isso. O problema não são as que foram usadas. Mas porque não foi usado nas outras também?

O que eu acho que não consegui explicar é que o autor questiona o porque de as outras funcionalidades(Font-Controller, DI) não são soluções já existentes, com o Mentawai como facilitador. Como o JCompany e o Rails fazem, por exemplo?
A questão é: porque reescrever isso se já existe alguém que faz isso bem? Não seria mais interessante, do ponto de vista da evolução da tecnologia, os novos usarem os existentes, adicionando facilidades?

Kenobi

Acho que a concorrência é saudável. Fiz uma explanação anteriormente fazendo alusão à metáfora que fora colocada em discussão.

Sendo prático e rápido agora: Legal, vc tem uma série de frameworks, que copiam e recriam melhorando funcionalidades. Os saltos nessa evolução vem de sacadas no MEIO deste processo.

O Hibernate se consolidou no mercado e deixou uma série de outros frameworks pra trás, mas há opções e approaches diferentes, como o IBatis.

A questão não é resolver a mesma coisa e sim a abordagem que vc utiliza para resolvê-la. E a bem real, isso é como um garimpo, precisa ter paciência para encontrar e lapidar algo até virar pedra preciosa.

Rails caiu na graça da comunidade, apoiado por uma linguagem fantástica e muitas sacadas geniais, mas tenho certeza que daqui a pouco virá outra, utilizando até Ruby - um framework component based em Ruby sei lá … algo como - Beehive para infra , em ruby dinâmico para integração ( coisas malucas que já pensei em desenvolver ) …

A questão é sentar a bunda e fazer algo decente, isso é para poucos, mas todos querem tentar ter seu lugar ao Sol :slight_smile: Está errado ? Não acho, veja o que aconteceu com o projeto JBoss, um monte de caras doaram código o mesmo fora vendido e o carinha embolsou sozinho os 300 milhas, assim como Mysql e outras iniciativas.

fmeyer

A historia nao eh bem assim.

F

saoj:
fabio.patricio:

Mas o Guice é diferente do Spring e do Pico, ele ja nasceu Java 5 e se aproveitando disso.

Acho que a diferença foi outra, foi usar configuração programática para configurar os componentes.

Sergio,

Releia o que eu escrevi acima, e me diga em que momento eu comparei o Guice com o Menta?
Porque tu fez toda essa comparacao se eu nem passei perto de citar o Menta?

É tao dificil manter a linha no que esta sendo discutido?

]['s

timotta

Alguém aqui sugeriu que seria uma perda de tempo o desenvolvimento de frameworks que não trouxessem nada de novo. Eu concordo, mas acho que é mais perda de tempo ainda discutir se isso é perda de tempo ou não :stuck_out_tongue:

Kenobi

fmeyer:
Kenobi:

A questão é sentar a bunda e fazer algo decente, isso é para poucos, mas todos querem tentar ter seu lugar ao Sol :slight_smile: Está errado ? Não acho, veja o que aconteceu com o projeto JBoss, um monte de caras doaram código o mesmo fora vendido e o carinha embolsou sozinho os 300 milhas, assim como Mysql e outras iniciativas.

A historia nao eh bem assim.

Concordo que simplifiquei bastante, mas eu não vi nenhuma doação para a galera que contribuiu …

davidbuzatto

Concordo com os posts do Maurício…
É TUDO mais do mesmo…

L

Alguns aqui de vocês estão achando que os desenvolvedores deveriam se unir para a criação de um framework comum, ao invés de ter vários. Mas vocês não acham isso tão utópico quanto a dizer que todos os povos deveriam largar as armas e se darem as mãos?

Olha, até porque, esse negócio de dizer que um bando de gente reunida irá fazer algo decente é mentira! O Projeto por Comitê ( http://en.wikipedia.org/wiki/Design_by_committee ) é um antipadrão conhecido!

Gente, não sei se o excesso de uso de Windows faz uma lavagem cerebral nas pessoas a ponto de achar diversidade uma coisa ruim. Mas gostaria de dizer pra vocês que a diversidade é boa, que a liberdade é boa, e que não dá pra impedir alguém de criar soluções para problemas que outros já solucionaram (mas pode criticar, se quiser). E esse negócio de dizer que o framework Y é igual ao framework X está sempre enviesado pelo olhar pessoal. Poxa! Alguma diferença sempre tem, senão seria dois frameworks com a mesma arquitetura só mudando nomes de variáveis (o que, de fato, não acontece).

pellegrino

Quando falei que seria mais interessante contribuir com um projeto já existente, não me referi apenas às tarefas relacionadas diretamente ao desenvolvimento do mesmo. Uma maneira de contribuir a um projeto sem participar - pelo menos não diretamente - do desenvolvimento, seria contribuindo com documentação, ajudando pessoas que utilizam o software, ajudando a melhorar a qualidade enviando patches e/ou notificando sobre defeitos do software, usando nos seus projetos contribuindo na identificação de funcionalidades que faríam da sua vida e de outros desenvolvedores mais fácil.

O problema é que quando as opções são muito maiores do que sua capacidade de se informar sobre as diferenças de cada uma das alternativas o que acontece é que se torna impossível tomar uma decisão baseada na razão e acabam optando por aquilo que já conhece (ex: struts).

Por exemplo a comunidade linux, muita gente faz muito pela comunidade linux, mas nem todo mundo é commiter e/ou líder de um projeto de uma distribuição.

Claro que alguma coisa sempre muda, mas alguém em sã consciencia indicaria a uma pessoa mudar a ferramenta que sua equipe está acostumada a desenvolver porque uma delas faz a funcionalidade X com o framework da moda enquanto o outro framework faz a funcionalidade Y com outra biblioteca menos “atual”?

O que o autor disse é que tem que ser algo mais significativo e nada menos coerente do que isso.

A minha posição (e a do autor) é simples: se não for fazer melhor (ie: algo que traga RESULTADOS claramente superiores às soluções já existentes e que REALMENTE valha a pena migrar) contribua de outra forma.

Mauricio_Linhares

Ah, sei, um bando de gente reunida nunca dá algo decente né?

Deve ser por isso que o Spring é um fiasco, tem gente demais mexendo ali. Tenha dó companheiro, tenha dó.

E é claro que alguma diferença sempre tem, eles mudam os nomes dos pacotes, oras. Você refaz uma coisa igual ou muito parecida quando o original tem problemas graves (que é o caso de RoR, o Merb não surgiu do nada, surgiu pra tentar resolver o problema de um request por vez do rails), mas eu nunca vi nenhuma falha absurda ou inutilizável em outros frameworks como o WebWork, Spring MVC e congêneres, fizeram outros porque queriam fazer outros, não foi porque ninguém teve uma idéia revolucionária não.

E não me venham comparar RoR com frameworks Java não, não adianta comparar jaca com abacaxi. O máximo que os “novos” frameworks web em Java trazem de novo é o tal do “convention over configuration”, que sempre pôde ser feito em qualquer um dos outros frameworks (todos eram e continuam sendo configuráveis programaticamente), só que ninguém tinha ainda parado pra pensar nisso antes do DHH fazer.

Daniel_Quirino_Olive

P****, ler o GUJ ultimamente anda um saco mesmo. Qualquer discussão que supostamente poderia ser boa, acabam enfiando o Mentawai no meio e é aquele mesmo bla bla bla de sempre: alguém com síndrome de perseguição acaba achando que o tópico indiretamente fala mal do MTW e começa a “argumentar” o contrário. E nada que acrescente :stuck_out_tongue:

F

++

Infelizmente…infelizmente.

]['s

guilherme.chapiewski

++

Infelizmente…infelizmente.

]['s

i++

L

Maurício Linhares:
Ah, sei, um bando de gente reunida nunca dá algo decente né?

Deve ser por isso que o Spring é um fiasco, tem gente demais mexendo ali. Tenha dó companheiro, tenha dó…

Maurício, em projetos open source nem todo mundo toma as decisões arquiteturais e estratégicas, que são delegadas a algumas pessoas. O resto testa, corrige bug, faz o que tem que ser feito…, mas não tem poderes para fazer mudanças radicais da maneira que quiser (se tentar, suas alterações podem ser barradas pelos líderes).

Reformulando, quando um bando de gente (pense em algo como 50 pessoas, por exemplo) possui poderes estratégicos, sem líderes entre si, dá caca.

Você não viu coisa absurda, por isso continua usando os frameworks que você estã acostumado. Mas algúem viu, e resolveu fazer outro, qual o problema se este alguém pensou diferente de você?

Aí me deixou mais na dúvida:
1- Por que não comparar RoR com frameworks Java?
2- O que tem a ver convention over configuration com configuração programática?
3- Quem disse que configuração programática é a melhor coisa que tem? (Tirando o marquetero saoj, claro!)

Mauricio_Linhares

Porque não dá pra fazer RoR em Java, simples assim. Mas sempre aparece um mala falando que “é igual a RoR” ou é “RoR pra Java”.

Eu não consigo imaginar como é que você vai fazer coc sem configuração programática em um framework já existente, já que eles não tem um “XML default”.

Ninguém, mas aqui agente tem que andar encostado na parede :smiley:

Emerson_Macedo

O fato é que o tópico não tinha nada a ver com Mentawai, mas já que o assunto caiu pra esse lado, temos uma pergunta bem simples que vou chover no molhado mas gostaria de faze-la mesmo assim.

Por que o Mentawai não oferece integração ou alguma abstração sobre o Hibernate (Ou outro framework já maduro e de qualidade comprovada) ao invés de ter o seu mecanismo de persistência sem qualidade e maturidade comprovadas? Neste caso não seria o tal do Craptaculous que foi mencionado?

Mauricio_Linhares

Eu e o leonardo estamos tentando voltar a discussão, se ninguém tiver percebido.

Emerson_Macedo

Até onde eu percebi ta dentro da discussão. Só que como o Mentawai foi encarado pelo Sergio como um exemplo então perguntei sobre ele.

saoj
  • MentaBean não é ORM. É humildemente apenas um gerador automático de queries para quem utiliza JDBC.

  • MentaBean é uma especificação e não uma implementação. Pode abstrair o Hibernate, Ibatis, Angra, JDO ou mesmo ser implementado com JDBC por baixo, que é a implementação atual.

  • Sergio fala para Urubatan via mensagem privada:

Emerson_Macedo

Legal Sérgio, eu realmente acho que o caminho é esse. Se você acha que pode simplificar alguma coisa no uso do Hibernate acho mais válido criar uma abstração do que uma implementação própria.

[]s

Guilherme_Silveira

Teve duas epocas que aprendi muito… uma foi quando surgiu o primeiro guj… e o Paulo Silveira fez o codigo dele (com mais algumas pessoas)…
Eu gostei tambem bastante da época que o Stripes, o Seam e o Vraptor 2 surgiram… tinha muita ideia nova no ar, o pessoal concordando com DI, o Rails se popularizando… acho que me ajudou muito intelectuamente e deve ter ajudado outras pessoas tambem a aprenderem bastante…

Existem diversas bibliotecas de mapeamento objeto-xml por ai… a mesma coisa vale… pq ter a sua propria? Nao utilizar uma das que ja existe?

Se me perguntam se vale a pena fazer qualquer coisa na mao… vale sim, voce aprende bastante…
Na hora da produção, não é só aprendizado que conta, você tem que pesar outras caracteristicas… então… poe na balança e pesa… sua equipe é unica e depende de sentar com ela para ver o que vale ser usado e o que vale ser criado…

Guilherme_Silveira

Maurício Linhares:

Ninguém, mas aqui agente tem que andar encostado na parede :smiley:

Hahaha… boa boa

Rubem_Azenha

O Mentawai tem uma integração muito legal com o Hibernate. Infelizmente o Sérgio acha o Hibernate complexo demais para ser utilizado.

saoj

Verdade. Tem o HibernateFilter e o HibernateAnnotationFilter.

Falout completar: … para ser utilizado por ele em seus projetos pessoais.

Cada um é livre para usar o que quiser. Eu ainda uso JDBC, mas em breve estarei aprendendo Hibernate também.

D

Não quero sair do tópico, me corrijam se eu estiver saindo, mas tenho uma curiosidade:

Porque alguns que conhecem bem desenvolvimento Web em Java costuma criticar o Spring? O que tem de errado com ele?

Talvez esteja vendo algo além de alguns poucos, mas sempre que pergunto pra um e pra outro, tenho respostas do tipo: Muito barulho pra pouco.

Quero entender isso melhor.

Valew gente.

Guilherme_Silveira

djemacao:
Não quero sair do tópico, me corrijam se eu estiver saindo, mas tenho uma curiosidade:

Porque alguns que conhecem bem desenvolvimento Web em Java costuma criticar o Spring? O que tem de errado com ele?

O Spring é BEM legal para quem gosta de um ponto de controle da aplicação inteira… conforme um colega me disse uma vez: “ele é um conjunto de boas ferramentas”…
Eu fico com essa opinião, se é isso que você procura, ele vai resolver seus problemas!

Abraço

D

Guilherme Silveira:
djemacao:
Não quero sair do tópico, me corrijam se eu estiver saindo, mas tenho uma curiosidade:

Porque alguns que conhecem bem desenvolvimento Web em Java costuma criticar o Spring? O que tem de errado com ele?

O Spring é BEM legal para quem gosta de um ponto de controle da aplicação inteira… conforme um colega me disse uma vez: “ele é um conjunto de boas ferramentas”…
Eu fico com essa opinião, se é isso que você procura, ele vai resolver seus problemas!

Abraço

É isso que quero entender. Até hoje, pode parecer que me equivoquei, mas só vejo o povo usando o Spring para gerenciar sessões do Hibernate por causa do comportamento Lazy. De resto, não compreendi bem o que tem de a MAIS que o faz interessante. Bom, são exemplos que pude encontrar. Vou procurar ler o livro Spring in Action para entender melhor o que há de mais.

Obrigado Guilherme, abraço.

Guilherme_Silveira

Existem outras ferramentas que ele acopla… em palavras rudes (talvez alguem seja melhor do que eu aqui para explicar) “ele tenta substituir tudo o que o java ee tenta oferecer” (repare no TENTA x 2, tanto no spring quanto no java ee)…

Outro exemplo famoso, é a ACEGI, que o pessoal usa para autorizacao e autenticacao controlado dentro do spring

Abraco

urubatan

Bahh, foi maus esqueci de responder :frowning:

Seguinte Saoj, a minha fonte foi o código fonte do Hibernate, eles simplesmente não divulgam que é possível utilizar o hibernate de forma programática …
O código do exemplo que postei veio principalmente da classe AnnotationConfiguration e dependencias desta …

Desculpa mesmo, me manda um e-mail na próxima, os e-mails eu baixo em casa também, ai lembro de responder, a PM eu li, deixei pra responder em casa e acabei esquecendo :frowning:

Criado 22 de janeiro de 2008
Ultima resposta 23 de jan. de 2008
Respostas 58
Participantes 19