Reinvente a Roda se necessário! - Nunca deixe de fazer melhor!

[quote=otavio]Muito, mas muito oportuno mesmo o tópico.

Reinventar a roda é necessário sim, seja por estudo ou porque a roda que já existe não atende tão bem tuas necessidades ou você acha que precisa fazer melhor.

[/quote]

Mas o seu caso é diferente:

No primeiro caso você está fazendo a roda para aprender como se faz uma roda, já que você não quer simplesmente usar sem saber como é. Isso faz sentido para estudos.

No segundo você está precisando de uma roda diferente da disponível no mercado pq a que tem não atende as suas necessidades, ai tbm faz total sentido.

Isso que você citou é TOTALMENTE diferente de reinventar a roda. Reiventar a roda é você precisar de um framework de MVC e criar um próprio seu ao invez de usar os milhões q existem no mercado. É você precisar de um framework de persistencia e criar um do zero ao invez de usar os que estão disponiveis e iriam te atender plenamente! Isso é reinventar a roda!!! Isso só deveria ser feito se você quisesse fazer um hibernate pra entender como ele funciona, mas em um projeto caseiro, só para estudos. Usar isso no trabalho é demissão com certeza!

Mais um detalhe que separa reinvenção da roda vs. evolução.

Disseram que o JSF é a melhoria do struts, como se não fosse reniventado nada, assim como o carro do Ford não foi reinventado e sim evoluido. Vamos esquecer o conceito da evolução. Então:

Os caras que fizeram o JSF, fizeram extends das classes existentes do struts, ou aproveitaram o struts-config.xml para fazer o faces-config.xml?
Resposta: NÃO! - Então reinventaram a roda.

O Ford pegou a mesma mecânica da carroça de cavalo e colocou um motor?
Resposta: NÃO! - Ele refez o chassi e melhorou a estrutura. Então reinventou a roda…

Descordo veêmentemente da demissão na certa se vc fizer um framework caseiro e usar em um projeto. Desde que o que vc está fazendo agrega valor ao seu produto, só tem pontos positivos. É a mesma coisa que pensou o google com o seu commons citado…

:idea:

Que o Louds não veja este topico hehehe

[quote=dbht]Mais um detalhe que separa reinvenção da roda vs. evolução.

Disseram que o JSF é a melhoria do struts, como se não fosse reniventado nada, assim como o carro do Ford não foi reinventado e sim evoluido. Vamos esquecer o conceito da evolução. Então:

Os caras que fizeram o JSF, fizeram extends das classes existentes do struts, ou aproveitaram o struts-config.xml para fazer o faces-config.xml?
Resposta: NÃO! - Então reinventaram a roda.

O Ford pegou a mesma mecânica da carroça de cavalo e colocou um motor?
Resposta: NÃO! - Ele refez o chassi e melhorou a estrutura. Então reinventou a roda…

Descordo veêmentemente da demissão na certa se vc fizer um framework caseiro e usar em um projeto. Desde que o que vc está fazendo agrega valor ao seu produto, só tem pontos positivos. É a mesma coisa que pensou o google com o seu commons citado…

:idea:

[/quote]

Carro e Carroça são coisas diferentes. Ford pensou em algo mais pratico e criou o Carro, agora vai me dizer que um Ford KA e um Vectra são reinvenções da roda, e não melhorias no modelo de Ford?

Seguindo o modelo que vcs estão defendo se eu fizer um carro azul e o outro um carro vermelho, ele esta reinventando a minha roda, pq eu fiz azul.
Quando na verdade, ele proporcionou uma outra escolhe seguindo o mesma lógica, ou seja, melhorou não reinventou nada.

Quando vc reinventa a roda, vc não pega nada como base. Vc sai programando pq axa que é assim.
Se o pessoal do JSF olhou o Struts mas vez sua implementação eles simplesmente aperfeiçoaram, existem uma base nisso, não do nada.

Reinventar a roda para aprendizado, concordo plenamente, mas do que necessário. Agora vou deixar o prazo de um projeto estourar pq gosto de reinventar a roda não dá né

[]'s

Cada um faz o que quer. Cada um eh livre para reinventar alguma coisa ou usar algo jah existente. Na verdade as coisas se complementam. Um inventa aqui, o outro melhora ali, outra ideia surge de lah e assim o mundo anda pra frente. Sem liberdade para o cara fazer o que quiser isso eh impossivel.

Eu penso quando os caras do Google comecaram, quantos nao falaram: porra, mas tu vai competir com o altavista e com o Yahoo? Tu eh maluco?

Se o cara quer fazer um framework web, um orm, um eclipse, ou qualquer outra coisa o problema eh dele. Ele nao estah colocando um revolver na cabeca de ninguem para usarem. Usa quem quer, quem gosta e quem aprova. Quem acha que ha alguma vantagem em usar A ao inves de B.

Assim eh o mercado. Ele nao eh perfeito, mas eh a maneira mais justa que eu conheco de determinar se algo presta ou nao. Facam o que quiser, inventem, melhorem qualquer coisa que queiram. O mercado nao tem emocoes nem sentimentos. Se for bom ele viverah e as pessoas usarao, se for ruim vai desaparecer. E outros virao no mesmo ciclo do progresso.

Quem eh contra o livre mercado eh contra o progresso e acha que 6 duzia de clarividentes e sabichoes (governantes, intelectuais, etc) tem mais valor que um plebecito continuo de milhoes de anonimos. Veja a GM, a gigante americana de automoveis. Quem manda eh o consumidor, o mercado. A alternativa disso eh o governo mandar e todo mundo andar de Lada porque vc nao eh livre para escolher o que vc acha melhor.

O problema de reinventar a roda é quando vc quer fazer isso em um curto periodo de tempo e com uma quantidade insuficiente de recursos.

O kernel Linux foi desenvolvido durante anos até ficar estavel e ainda esta em desenvolvimento.

Em um projeto de 2 meses e 4 pessoas vc reinventar um CMS em PHP ao inves de considerar o Wordpress, por exemplo, pode ser arriscado.

É isso ai, vamos aprofundar a matéria polêmica !!!

Bem, vou parar de discutir evolução, o esquema aqui é não deixar de fazer cada vez melhor.

Vou frisar novamente,

Dicas para reinventar a roda:
a) Seja disciplinado e foque objetivos no seu projeto;
b) Faça por partes, não queria a versão final na primeira release;
b) Faça com que o seu projeto entregue valor para alguém;
c) Procure fazer o seu melhor!

Como dizia um amigo meu: [size=18]Se o tempo é infinito, qualquer problema é soluvel.[/size]

É importante salientar (obrigado peczenyj), arriscar a entrega de um projeto copiando o Wordpress para a solução do usuário é besteira, mas ai não é um problema de reinvenção da roda e sim de alinhamento do gerenciando da equipe com (tempo X custo)… Mas, acho que se durante esse projeto, for identificado que gera valor para o cliente que seja reimplementado um novo mecanismo de blog que de alguma forma faz com que esse cliente absorva (10.000.000 U$ por ano de publicidade) eu faria do ZERO até a linguagem se possível para entregar esse valor para o cliente. Ooops, desculpe, acabei de citar o Twitter…

E vamos reinventado !!!

Linux reinventou a roda no dia em que foi fundado. O próprio Linus disse isso, porém de lá pra cá está sendo melhorado a cada dia…

[quote=peczenyj]O problema de reinventar a roda é quando vc quer fazer isso em um curto periodo de tempo e com uma quantidade insuficiente de recursos.

O kernel Linux foi desenvolvido durante anos até ficar estavel e ainda esta em desenvolvimento.

Em um projeto de 2 meses e 4 pessoas vc reinventar um CMS em PHP ao inves de considerar o Wordpress, por exemplo, pode ser arriscado. [/quote]

Isto seria reinventar o carro, nao a roda!

[quote=dbht]É isso ai, vamos aprofundar a matéria polêmica !!!
[/quote]

Na verdade a discussão já acabou com a frase do saoj:

Além desta discussão já estar recursiva, os exemplos estão sendo usados conforme gosto do freguês. O que pra uns é reinventar a roda, para outros é criar um carro, então fica difícil.

É bem o que o saoj disse mesmo, se você quiser fazer algo novo do zero, que faça e seja feliz!

  1. Se você vive em um mundo onde as rodas são quadradas e você criou uma mais redonda, você é um gênio.

  2. Se você vive em um mundo onde as rodas são quadradas e você criou uma triangular e torta, você perdeu tempo.

Ah sim. Eu também já reinventei a roda muitas vezes e muitas delas saíram quadradas.

Inclusive estou reinventando duas rodas diferentes agora (para propósitos distintos). Uma delas já está girando, mas ainda não está bem redondinha, preciso aperfeiçoá-la ainda mais. A outra ainda não gira, e estou trabalhando nela.

E é assim que o mundo dá voltas. Se todo mundo usasse sempre as mesmas rodas quadradas, ninguém sairia do lugar.

Acho que esse artigo tem tudo haver com o tema do tópico e com a área de informática no geral.

Claro que entre o preto e o branco há o cinza. Mas antes de entender o cinza há de se entender primeiro o que é preto e o que é branco. Vc está mais para o branco ou mais para o preto?

http://oglobo.globo.com/opiniao/mat/2009/05/25/o-ovo-de-colombo-ou-os-fazedores-os-faladores-756015985.asp