Desperdício de tempo

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.orghttp://biopython.org/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!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s