segunda-feira, 27 de fevereiro de 2012

Considerações sobre software livre, compartilhamento e ciência


Recentemente, li o artigo The case for open computer programs na revista Nature, o qual trata sobre a relação entre a questão do código-fonte aberto e a reprodutibilidade de um experimento científico. Considero, então, relevante fazer algumas reflexões sobre a importância e a necessidade do software livre na ciência.

Primeiramente, se considerarmos que a reprodutibilidade é uma das partes fundamentais do método científico, compartilhar o código-fonte empregado em experimentos e em pesquisas torna-se tão fundamental quanto compartilhar os próprios resultados. Certamente não é interessante ler um artigo desenvolvemos um software para tal coisa, veja nossos resultados e não ter acesso a ele, não poder repetir os mesmos casos de teste e exemplos que os autores usaram, não poder achar bugs etc...

Simplesmente descrever o código, colocar pseudocódigo, ou colocar as equações empregadas serve em algumas circunstâncias, mas em casos onde a maior parte dos resultados são obtidos usando ferramentas computacionais, já não basta: não tenho como comparar com a implementação que você usou, não tenho como verificar se você não deixou um bug que possa ter invalidado seus resultados, tampouco sei quais os métodos que você empregou para resolver o problema e quais as limitações (ex. limitações de precisão, erros numéricos) etc... que você possa vir a ter encontrado no decorrer da sua pesquisa.

Torvalds afirmou em uma entrevista de 2004 uma posição similar:

I compare it to science vs. witchcraft. In science, the whole system builds on people looking at other people's results and building on top of them. In witchcraft, somebody had a small secret and guarded it -- but never allowed others to really understand it and build on it.

Eu [Torvalds] comparo [o software livre contra o proprietário] como ciência vs. magia negra. Na ciência, o sistema inteiro se constrói com pessoas olhando para os resultados de outras pessoas e construindo a partir deles. Na magia negra, alguém tem um pequeno segredo e o guarda -- mas nunca permitindo que os outros efetivamente entendam-no e construam a partir dele.

Ciência feita com métodos computacionais, mas sem o código-fonte, é quase magia negra, simplesmente porque torna-se praticamente impossível reproduzir resultados. Eu consigo entender o que você fez e ter uma visão geral de como isso foi feito, mas não consigo entrar em detalhes.

É importante notar que o Linus não diz que o modelo "magia negra" é ruim em outra entrevista:
But I don't think you need to think that alchemy is "evil." It's just pointless because you can obviously never do as well in a closed environment as you can with open scientific methods. 

Mas eu não quero que você pense que alquimia é 'ruim'. É apenas sem sentido, porque você obviamente não pode fazer tão bem em um ambiente fechado como você faria em um ambiente aberto.

Após, temos outro motivo para a adoção de software livre na ciência: o custo da maioria dos softwares científicos é altíssimo, o que prejudica principalmente os países em desenvolvimento, aqueles que justamente mais precisam de pesquisa e desenvolvimento para se manterem competitivos. Muitas vezes, acaba-se em um círculo vicioso: usa-se um programa proprietário - várias vezes sem licença - por ser o que todo mundo usa, impondo-se assim uma ditadura da maioria.

Existem as licenças para estudantes ou educacionais? Existem, e elas são uma solução extremamente lucrativa para os fabricantes (no aspecto mindshare), mas elas não atacam o segundo problema. Pelo contrário, podem fazer com que ele se aprofunde: formam-se futuros profissionais usando ferramentas proprietárias, os quais continuarão empregando elas em sua carreira profissional, e assim sucessivamente.

O software livre é a maior chance que temos para quebrar esse ciclo de dependência: empregar as diversas ferramentas e bibliotecas já existentes, evitando a reinvenção de rodas (reinvenções essas que muitas vezes saem quadradas, frágeis e com material de péssima qualidade), e saindo da condição de meros consumidores de ferramentas para produtores de ferramentas. No ambiente acadêmico e científico, onde estão sendo formados os profissionais do amanhã, torna-se uma forma de cortar os problemas da pirataria e da dependência tecnológica pela raiz, ou ao menos diminuí-los.

Mesmo que alguma pesquisa precise de uma ferramenta proprietária (como é extremamente comum na engenharia), ainda assim é possível tirar proveito das metodologias de software livre e do compartilhamento: muitas dessas ferramentas são baseadas em scripts ou pequenos programas, os quais também podem ser compartilhados e servirem para outros cientistas. Podem inclusive servir como fundamentação para criar um software livre que desempenhe o mesmo trabalho.

Com o compartilhamento, abre-se um enorme potencial para um peer review mais amplo do que aquele feito pelos revisores, para críticas e sugestões, melhorias no código - e até mesmo vários códigos menores tornarem-se parte de um programa maior (o exemplo que me vem à cabeça agora é o Sage, sobre o qual já falei no meu blog).

Por fim, dados abertos podem evitar problemas de retraction (quando um periódico tira um paper de circulação, seja por erros, problemas com direitos autorais etc...) e também permitir novas descobertas: vários pesquisadores podem usar diferentes ferramentas para processar esses dados, podem aplicar diferentes metodologias, permitindo a extração de novas conclusões ou a refutação de resultados anteriores.

Assim, tendo em vista o fato de cada vez mais pesquisas serem computacionais ou envolverem software no seu decorrer, considero que faz-se necessário o compartilhamento de código-fonte e o uso de formatos abertos na ciência; o cientista tem pouco ou nada a perder com isso. Também faz-se extremamente importante a adoção de software livre na pesquisa, como forma de promover a colaboração tão necessária para uma construção de conhecimento que possa vir a gerar lucro (não apenas no aspecto financeiro) para todos.

"In mathematics information is passed on free of charge and everything is laid open for checking."
"Na matemática, informação é distribuída sem custo, e tudo está aberto para verificação." . Por que não adotar este approach para as outras áreas do conhecimento?

Nenhum comentário:

Postar um comentário

Não são lidos e não me responsabilizo pelo conteúdo deles.