Desenvolvimento

11 jan, 2016

Histórias de código-fonte

Publicidade

O código-fonte é um dos artefatos mais comuns durante um projeto de desenvolvimento de software. Assim como uma relíquia, esse artefato muitas vezes tem algumas histórias importantes por trás da sua criação, manutenção e uso.

Figura1_badass_programmer

A criação de um código fonte é feita por um processo de codificação de um algoritmo em alguma linguagem de programação ou recurso tecnológico semelhante. Apesar de existirem diferentes formas de geração automática de código-fonte, a maioria dos programas ainda é produzida por um ser humano que passa por diversas situações, algumas inusitadas, enquanto programa.

Eu já escrevi um pouco sobre programação e código-fonte, inclusive destacando algumas maneiras de como pode ser a programação no futuro e como trabalhar com código legado, mas nunca abordei algumas histórias por trás desse artefato.

Figura2

As histórias por trás de um código-fonte têm um paralelo com algumas de itens históricos tão bem exploradas em programas transmitidos pelo History Channel, tal como Trato Feito (Pawn Wars), Mestres da Restauração (American Restoration) e Caçadores de Relíquias (American Pickers). De fato, a parte do programa associada com a história dos itens atrai muito a audiência e, na minha opinião, é mais interessante do que a negociação, a comercialização e até a precificação do item.

Devido ao fato de que um código-fonte não é algo tangível e a sua utilização é algo meramente prática, é difícil ter histórias cativantes como os itens apresentados nos programas televisivos. Contudo, existem casos em que algumas histórias são, no mínimo, curiosas.

Figura3_John_Carmack

Um desses casos é o mistério da função escrita em C para cálculo do inverso da raiz quadrada encontrada no código-fonte do jogo Quake 3 Arena. Em uma época pré-internet, criou-se uma lenda por trás dessa história devido a dois fatos curiosos dessa função. Em primeiro lugar, ela era muito, mas muito rápida em comparação com outras abordagens. E o mais curioso: ela usava uma constante numérica sem justificativa e que foi considerada “magia negra” por muito tempo.

A autoria dessa função foi atribuída a John Carmack, um dos criados do Quake 3 Arena e, durante muito tempo, houve um debate sobre os detalhes de como esse cálculo funcionava. Atualmente já se sabe mais sobre essa função e alguns dos seus “mistérios” já foram resolvidos ou pelo menos clarificados, como mostra este link. De qualquer modo, é instigador ver esse tipo de arqueologia envolvida com o código-fonte.

O que gostaria de destacar neste artigo é a maneira de encarar o código-fonte por meio de sua história, pois, se uma determinada história pode aumentar um valor de um item físico (talvez até fazer com que ele se torne único), acredito que uma boa história também pode agregar algum tipo de valor ao código. Talvez esse valor possa ser educacional ou mesmo característico da maneira como se desenvolvia na época, de forma semelhante a como características de uso do metal podem indicar quando uma arma de fogo foi produzida.

Do ponto de vista de dados, já até existe uma boa definição de como o histórico da informação é importante, chamada de Data Provenance. Quem trabalha com banco de dados ou está diretamente envolvido com análise forense mais cedo ou mais tarde vai acabar ouvindo falar sobre esse assunto.

Por fim, acredito que o tópico de histórias relacionadas código-fonte é relevante e que, de certa forma, lembra muito aquele antigo ancião que sempre tinha na cabeça uma história para contar sobre alguém, alguma coisa ou algum lugar.