Histórias de código fonte

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

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, como trabalhar com código legado e até como medir e visualizar a evolução do código fonte, mas nunca abordei algumas histórias por trás deste artefato.

Figura2

As histórias por trás de um código fonte tem um paralelo com algumas histórias de itens peculiares 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, comercialização e até a precificação do item. Imagino se alguém já pensou em criar um programa de TV (ou canal do YouTube!) falando sobre histórias de algoritmos…

Devido ao fato 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 onde algumas histórias são, no mínimo, curiosas.

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 desta história devido a dois fatos curiosos desta 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.

Figura3_John_Carmack

A autoria desta 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 este cálculo funcionava. Atualmente já se sabe mais sobre esta função e alguns dos seus “mistérios” já foram resolvidos ou pelo menos clarificados como mostra este link. De qualquer modo, é instigador ver este tipo de arqueologia envolvida com o código fonte.

O que gostaria de destacar neste post é 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 forence mais cedo ou mais tarde vai acabar ouvindo falar sobre este assunto.

Por fim, acredito este 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. Agora é com você leitor: deixe sua história de código fonte nos comentários.



Esta entrada foi publicada em Programação e marcada com a tag , , , , , , , . Adicione o link permanente aos seus favoritos.

Uma resposta a Histórias de código fonte

  1. Pingback: O que significa foo ou bar no nome de variáveis? | Blog do Mauro Pichiliani

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *