A algum tempo eu li que a diferença entre um bom programador e um ótimo programador é que o bom programador cria bons códigos e o ótimo programador reutiliza bons códigos, porém, o que vemos por ai, é a criação de novos códigos porque “o meu jeito é melhor”.
Gostaria de discutir isto no conceito de bioinformática. Uma das principais tarefas da bioinformática e a pesquisa de informações na forma de seqüências genéticas ou protéicas, onde estas informações estão contidas num formato de arquivo, felizmente textual, onde é necessário apenas um parser para se obter as informações ali contidas. O “apenas um parser”, não é tão apenas, pois temos formatos de arquivos, que são de uso geral, porém sempre existem alguns detalhes que nos fazem perder bom tempo na implementação de parsers.
Outro exemplo, é obter dados da internet. Neste caso, pode-se usar os [horrorosos] cgis ou o [não tão] novo “hype”, mas bem interessante e útil, web services. O uso de cgis é algo trabalhoso e chato, mas sempre tem alguem que decide fazer a sua implementação do zero. Para uso de Web services, há diversas bibliotecas *muito* boas, como o axis da apache, porém, sempre tem alguém que faz sua própria implementação, para fazer diferente o que já existe.
Um dos motivos para eu defender a reutilização de códigos é que se tem um código usado por 1 programador, somente ele o testará e o aprimorará. Caso tenha 100 programadores ou 1000 ou mais, são mais pessoas testando e zelando por sua qualidade. Outro motivo, é a economia de tempo. Imagine se cada fabricante de automóveis quisesse inventar o próprio modelo de rodas ou motores?! Ao invés de todos usarem o mesmo padrão e fazer as alterações necessárias?
Lógico, defendo a criação dos próprios códigos para estudo e praticar! Quem não tem a sua “própria biblioteca”, com suas rotinas mais utilizadas? Porém, uma outra forma excelente de estudo, é ler e entender o código alheio. Pense como escrever bem, a pessoa tem que escrever muito e ler também!
Ah, mas para este post não ficar vazio, para os bioinformatas, recomendo conhecer bem as bibliotecas http://biojava.org , http://biopython.org/ e http://www.bioperl.org. Que são bibliotecas com as principais rotinas de Bioinformática, como obter seqüências, executar programas, ler arquivos, alinhar sequencias, criar modelos… e se achas que teu jeito de fazer é melhor, conheça o código deles e o modifique e sugira melhorias, ou seja, compartilhe!