Dois olhos, dez dedos
Há uma máxima que diz: Não é à toa que temos dois ouvidos e uma boca: devemos ouvir mais e falar menos. Essa proporção talvez explique a compulsão que programadores têm por escrever códigos ao invés de procurarem códigos prontos que atendam às suas necessidades.
Precisamos de um programa para gerenciamento de conteúdo. O que muitos de nós fazem? Começam a escrever um. Em grande parte por isso, repositórios e diretórios de projetos de Software Livre estão inundados de infindos programas que se propõem a fazer as mesmas coisas.
Claro, cada um coloca um pouco do seu próprio jeito de fazer as coisas. E isso é interessante, mas na maioria das vezes fica claro que as necessidades do projeto poderiam ser atendidas apoiando outro projeto. E digo isso por experiência pessoal também.
Quer um exemplo claro do que digo? Pesquise no freshmeat por blog e veja quantos "simple blog system" aparecem feitos em PHP. E quantas bibliotecas existem para PHP? Quantos frameworks? E quantas dessas bibliotecas servem para se fazer o que poderia ser feito com similar desempenho com o PHP Pear?
Não quero dizer com isso que não devamos iniciar a criação de um software quando já existirem alternativas. Mas não devemos ter preguiça de pesquisar e entender os softwares existentes antes de iniciarmos um novo projeto. Devemos encarar isso como um trabalho acadêmico: o software como resultado de uma pesquisa. Assim poderemos colocar em prática a segunda lição de Raymond:
Os programadores bons sabem o que escrever. Os grandes sabem o que rescrever (e reusar).
Talvez a explosão de código para mesmo fim, no caso do PHP, tenha influência na chegada de muitos profissionais de outras áreas à programação pelo PHP. Não que isso deva ser considerado algo negativo. Tal chegada foi uma das grandes responsáveis pelo sucesso do PHP e, por consegüinte, do Software Livre na web (o time LAMP). Mas se reusabilidade de código já é algo difícil na área imagine para quem vem de fora...
Quando então faremos softwares novos? Quando quisermos alguma característica que os pré-existentes não tenham. Hmmm... Dependendo da forma como os pré-existentes são feitos também, claro. Para muitos CMSs e alguns blogs, por exemplo, é possível criar um módulo que adiciona uma característica desejada. Por que reinventar a roda se podemos, com menos esforço de codificação (e mais de leitura e análise), melhorar um software já existente? Ao invés de termos dois softwares nota 6, teríamos um só com nota 6,4 ou 6,7. Não vale mais?
E mesmo com todo Zope, com todo Plone, com todo Rails, com todo Ruby, o PHP vai levando...





RSS
Está bem reinventar a roda
Este artigo foi publicado no BR-Linux (http://br-linux.org/linux/?q=node/727), e o Augusto Campos recomendou a leitura deste outro artigo: http://www.lisp-p.org/reiw/. Não conhecia o texto e realmente é interessante.
Há, porém, bem menos conflitos entre os dois artigos do que pode parecer a princípio. Só mudaria o ''It's ok to Reinvent the Wheel'' em um ponto: no caso de reinventar a roda para passar o tempo, por prazer, pode ser mais divertido trabalhar em um projeto já existente do que refazer tudo sozinho (ou tão divertido quanto) ;)
-- Cárlisson Galdino
Daniel Semblano
Bom artigo, um bom toque aos programadores. O pior deve acontecer quando se fala de distribuições GNU-Linux por ex, que existe mais variantes de mesmas distribuições do que pessoas colaborando nos projetos ...
Dois olhos, dez dedos
Legal, tenho a mesma opinião, pq reinventar a roda ? Como o Daniel falou, o que vem acontecendo muito é a criação de variantes de distros, talvez um dos motivos seja o sucesso do Kurumin, que foi qunado houve uma expansão da idéia de personalizar sua própria distro.
~psybox
Submeter um novo comentário