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

30 respostas
D

Reinvente a roda você também

Este final de semana estava procurando na internet sobre as recentes técnicas e frameworks JAVA/AJAX para justificar que um projeto meu, que eu gostaria que virasse um padrão de mercado, precisa ir pro vinagre já que apenas está reinventado a roda. Porém me deparei com um monte de gente postando blogs e artigos na internet contra pessoas como eu, que procuram alternativas melhores para os problemas conhecidos, já que estamos simplesmente “reinventado a roda”. E sabe o que eu fiz? - Busquei 10 motivos para continuar o meu projeto, segue:

10 motivos para você reinventar a roda:

  1. Karl Benz reinventou o automóvel em 1885, com o motor de 4 tempos a gasolina;

  2. Henry Ford reinventou novamente o automóvel em 1908 com o Ford modelo T;

  3. Enzo Ferrari fez o seu primeiro automóvel (125S) em 1947, reinventando a roda novamente;

  4. Bill Gates e Paul Allen fundaram a Microsoft em 1975 reinventado a roda da computação e fizeram o interpretador do BASIC;

  5. A SUN em 1995 anunciou o JAVA b[/b], reinventado a roda e fazendo mais uma linguagem de programação;[/b]

  6. A Microsoft em 2001 anunciou o C#, copiado do JAVA, reinventando a roda e fazendo mais uma linguagem de programação;

  7. Linus Torvalds em 1991 reinventou a roda, e a partir do MINIX (que reinventou a roda também), começou o desenvolvimento do Linux, que reinventou a roda dos sistemas operacionais;

  8. Alexander Fleming em 1929 descobriu a penicilina e até hoje antibióticos são reinventados todos os dias;

  9. USB reinventou a forma de conexão dos periféricos do PC, que antes eram parelelos ou seriais;

  10. Em 1899 Charles H. Duell, encarregado do escritório de patente dos EUA (U.S. Office of Patents), disse: “Tudo o que podia ser inventado já o foi”.

Fontes: (Internet/Google/Wikipedia)

Saiba que a roda é reinventada o tempo todo e se alguém o desencorajar de fazer algo em que você é capaz, acredite no seu sonho e reinvente a roda você também!

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!

E faça parte da história e das pessoas que tiveram coragem de superar seus limites e desafios !!!

30 Respostas

M

É isso ai!

Sou um cara que gosta de desenvolver coisas do Zero, no serviço até uso varias frameworks, mas quando é algo meu, tento fazer completamente meu.
Mesmo que não for para revolucionar, ao menos estou aprendendo.
No meu ponto de vista, varios programadores java são meros usuarios de framewoks.

M

acredito que vocÊ tenha se espressado mau… ao menos em usar a palavra “sempre”…

outra coisa questionavel sobre isso que você disse na minha “opinião”, é que se vc esta querendo criar uma metodologia “nova”, beleza, esta certo começar ela do zero, até por que ela ainda não foi criada, é “nova”… reinventar a roda se encaixa em refazer do zero uma coisa que “ja esteja feita”,… se você esta criando algo novo não esta reinventando a roda…

A

Você está distorcendo a história a seu favor. Se quiser motivos para continuar o seu desenvolvimento deve buscar no contexto em que seu sistema irá atuar.

Quando reclamamos de reinvenção da roda, estamos falando de fazer mais do mesmo. Qualquer adição de funcionalidades ou a implementação de novos conceitos são bem vindas em qualquer área do mercado.

P

Tu listou 10 para reinventar a roda, agora, já parou para pensar quantos motivos existem para você não fazer isso ?

Ao invés de reinventar a roda, deixe-a mais bonita, eficiente, util…

R

Fazer melhor não seria evoluir, evoluir = reinventar?

Reinventar a roda é uma frase que significa que uma técnica ou solução aceite na generalidade é ignorada a favor de uma solução ou técnica inventada localmente apenas para um propósito específico. Reinventar a roda é duplicar um método básico que já foi há muito aceite e considerado comum.

A inspiração para esta metáfora idiomática reside no facto de a roda ser o arquétipo da ingenuidade humana, tanto em virtude do poder e flexibilidade que permite aos indivíduos que a usam, como pela influência que teve ao longo de toda a História e que continua a ter em quase toda (se não mesmo toda) a tecnologia moderna. Não se considerando ter falhas operacionais, uma tentativa de a reinventar não faria qualquer sentido e não traria qualquer valor acrescentado ao objecto, antes acarretando uma perda de tempo ao desviar recursos de investigação de outros tópicos possivelmente mais merecedores.

Ao mesmo tempo, no entanto, reinventar a roda constitui uma ferramenta importante no ensino de ideias complexas. Em vez de, simplesmente, fornecer aos estudantes uma lista de factos e técnicas conhecidas, esperando que aqueles incorporem tais ideias perfeita e rápidamente, o instrutor/professor deverá “construir” o conhecimento de raiz, estimulando o aluno no sentido de trabalhar cada um dos passos elementares que incorporam as características de raciocício do campo em questão.

O duplo significado desta frase poderá emprestar-lhe um certo tom irónico mesmo quando não usada com esse sentido, especialmente quando a pessoa a usa de forma reflexa, possivelmente para indicar que a sua actividade poderá ser entendida como uma mera reinvenção da roda, mas que possui, na verdade, valor adicional.

Fonte: http://pt.wikipedia.org/wiki/Reinventar_a_roda

Abraços,

F

Cada um com seu ponto de vista.

Mas ao meu ver ninguem que vc citou ai em cima reinvendou a roda.

A Sun, pego o C, e o C++ e aperfeiçou, a M$ bom, essa reinventou a roda copiando do Java, mas isso é outra história, e não vamos causar flames correto :).

Aperfeiçoar coisas que existem, isso sim fazemos o tempo todo, reinventar a roda, ao meu ver é perca de tempo, pense quando tempo vc perde reescrevendo algo que já foi escrito, já existe e todo mundo usa? Você vai criar seu ORM pq se usar o Hibernate, não vai estar reinventando a roda? Vai criar sua propria implementação do JDBC para conectar com o Banco de Dados, por que vc deve SEMPRE reinventar a roda?

Esses dois exemplo já é o suficiente para repensar esse seu titulo.
Não digo que reinventar a roda não é uma coisa boa, mas acredito que em raras as opções, devemos fazer isso. se todo mundo reinventasse imagine a salada que seria hoje, ferramentas como Hibernate, nunca seriam tao utilizadas assim.

Ao meu ver o ideal seria, Melhore a Roda SEMPRE, Reinvente as vezes.

[]'s

M

me desculpe mas na minha opniao tudo isso q vc listou nao foi nada d reinventado apenas foi apenas adaptado, melhorado etc.

agora realmente concordo q devemos “reinventar a roda” mas nao sempre!!!

D

maior_abandonado, não estou equivocado, Os caras que fizeram o JSF, conforme sua opinião não deveriam prosperar já que o Struts e/ou JSP já faziam isso com certa maturidade. Podem ter aproveitado o conceito, algumas interfaces, e até mesmo o estilo, mas reinventaram a roda.

Outro exemplo peculiar é que estamos perdendo terreno para o C# (não entrem no mérito), e o C# reinventou a roda já que o JAVA poderia fazer tudo e melhor que ele…

H

Eu acho que você mesmo se perdeu :lol:

Se tudo que podia ser inventado já foi inventado, você não está “reinventando” e sim melhorando :lol:^^

F

dbht:
maior_abandonado, não estou equivocado, Os caras que fizeram o JSF, conforme sua opinião não deveriam prosperar já que o Struts e/ou JSP já faziam isso com certa maturidade. Podem ter aproveitado o conceito, algumas interfaces, e até mesmo o estilo, mas reinventaram a roda.

Outro exemplo peculiar é que estamos perdendo terreno para o C# (não entrem no mérito), e o C# reinventou a roda já que o JAVA poderia fazer tudo e melhor que ele…

JSF é uma versão aprimorada do Struts, usaram conceitos de Struts e JSP, então não reinventaram a roda, só a melhroram. :slight_smile:

D

Hellmanss, não me perdi não, esta citação é clássica e prova que pessoas como Charles H. Duell, estavam equivocados quanto aos fenômenos criativos que sempre reinventam algo. Concordo que muitas vezes melhoramos, que é o caso do carro, que melhorou a carroça, onde o foguete espacial melhorou o avião. Quem sabe um dia o tele-transporte da ficção da Jornada nas Estrelas seja discutido em 2909 por caras que acreditam que ele foi reinvenção da roda vs. evolução da roda.

O ponto principal é: Nunca deixem que o desmotivem por mais que pareça reinvenção da roda. Se o seu projeto agrega valor não importa como, melhorando ou reinventado, você não pode desistir de continuar…

Cansei de frases como: “Páre de reinventar a roda” ou " o ótimo é inimigo do bom", e por ai vai…

:slight_smile:

D

Felagund, eu também acredito nisso, mas tenho certeza que quando os caras começaram o desenvolvimento, alguém disso: - “Párem de reinvetar a roda”, tudo isso dá pra fazer com taglib e muito suor no JSP.

O problema é essa frase maldita que mata no ninho muitos projetos por ai…

F

dbht:
Felagund, eu também acredito nisso, mas tenho certeza que quando os caras começaram o desenvolvimento, alguém disso: - “Párem de reinvetar a roda”, tudo isso dá pra fazer com taglib e muito suor no JSP.

O problema é essa frase maldita que mata no ninho muitos projetos por ai…

Agora sim concordo com vc, nesse ponto, mas acredito que o ideal é avaliar até quando vale a pena reinventar a roda, provavelmente o pessoal que fez o JSF, eles resolveram continuar por que estavam cansados de sofrer crianado TagLibs toda a vez. Criamos aqui no serviço uma biblioteca de utilitarios, e podemos utilizar em N programas. Reaproveitando ehhehe.

[]'s

F

Outro dia li uma frase que gostei, não lembro exatamente como era. Acho que era + ou - assim:

“Fiz a roda novamente porque a outra roda éra um pouco QUADRADA.”.

flws

M

dbht:
maior_abandonado, não estou equivocado, Os caras que fizeram o JSF, conforme sua opinião não deveriam prosperar já que o Struts e/ou JSP já faziam isso com certa maturidade. Podem ter aproveitado o conceito, algumas interfaces, e até mesmo o estilo, mas reinventaram a roda.

Outro exemplo peculiar é que estamos perdendo terreno para o C# (não entrem no mérito), e o C# reinventou a roda já que o JAVA poderia fazer tudo e melhor que ele…

bom, esse comentario ja foi respondido pelo Felagund, não conheço struts, mais pegando pelo exemplo que você deu, posso reafirmar uma cosia que eu ja tinha dito, o que eu ao menos intendo por “reinventar a roda”, seria fazer algo que ja existe, seu exemplo em contrapartida não se encaixa por que jsf não é igual ao struts, pode até ter coisas semelhantes, pode usar o mesmo conceito de MVC, mais não é igual, de modo que não foi reinventada a roda. Não vo ficar pesquisando sobre todos os exemplos que você deu, mais ao que pareceu, você citou pessoas que “melhoraram” algo, como se elas tivessem realmente criado algo que ja existisse, o que não foi exatamente o que aconteceu…

talvez o modo de enchergar as cosias seja diferente no meu ponto de vista e no seu, eu respeito o seu, mais discordo que os exemplos que você deu (inclusive o de você criar uma nova metodologia) se encaixem em reinventar a roda… (criar algo do 0 não significa necessariamente reinventar a roda, apenas se esse algo “ja exista”, e do jeito que você esta criando)

D

Felagund, perfeita a sua iniciativa de criar uma lib e reaproveitar em N programas. OO é isso ai… Só que olha só: Se você procurar na net por discussões do tipo “framework caseiro vs. framework de mercado”, você só vai encontrar críticas sobre fazer um framework caseiro ou arquitetura de referência. Motivo: “Você estará reinventando a roda”…, logo se vc cria um conjunto de componentes e cria uma certa implementação sua para usar nos seus sistemas (talvez seja necessário criar um mecanismo de DAO automatico, e não usar Hibernate - isso acontece o tempo todo, não existe pedra filosofal), você será crucificado por “reinventar a roda”…

É por isso que estou aqui dizendo tudo isso: Reinvente a roda sempre, mas:

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!

:slight_smile:

F

dbht:
Felagund, perfeita a sua iniciativa de criar uma lib e reaproveitar em N programas. OO é isso ai… Só que olha só: Se você procurar na net por discussões do tipo “framework caseiro vs. framework de mercado”, você só vai encontrar críticas sobre fazer um framework caseiro ou arquitetura de referência. Motivo: “Você estará reinventando a roda”…, logo se vc cria um conjunto de componentes e cria uma certa implementação sua para usar nos seus sistemas (talvez seja necessário criar um mecanismo de DAO automatico, e não usar Hibernate - isso acontece o tempo todo, não existe pedra filosofal), você será crucificado por “reinventar a roda”…

É por isso que estou aqui dizendo tudo isso: Reinvente a roda sempre, mas:

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!

:slight_smile:

Mais ai que está, as validações dessas classes são feitas pelo BrazilUtils, não por mim, ou seja não reinventei a roda, utilizo algo que já foi feito para isso.

Mas o que eu questiono o seu topico é o SEMPRE, não a questão de reinventar a roda :slight_smile:

D

Melhor agora? (acho que sim…)

Título: Reinvente a Roda se necessário!!! - Nunca deixe de fazer melhor!
:-o

O

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.

Um exemplo foi quanto ao plugin para integração entre Spring e o Vraptor. Ele faz o wired pelo nome completo da classe, porém minha necessidade era wire by class. Então criei um plugin baseado no original que fizesse o wired por classe, e assim evitei em ter que definir o nome em cada bean.

Não gosto do digester. Então para teste resolvi reescrever a factory do tiles para usar JAXB ao invés do digester. Resultado: ficou mais rápido e ainda pude remover mais uma lib do meu classpath.

Um outro exemplo foi o Google Collections. Lá no FAQ eles até comentam “mas porque uma nova lib se temos o commons-collections”, então eles justificam que o commons collections é desenvolvimento para Java 4, além de outros fatores. Ou seja, havia a necessidade de uma reinvenção da roda.

L

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.

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!

D

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:

C

Que o Louds não veja este topico hehehe

F

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:

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

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.

P

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.

D

É 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…

M

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.

Isto seria reinventar o carro, nao a roda!

L

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

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!

V
  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.

S

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

Criado 18 de maio de 2009
Ultima resposta 25 de mai. de 2009
Respostas 30
Participantes 17