30 de set de 2010

Documentação

Estou agoniado...

Estava dando uma olhada na documentação do ZSNES e, sinceramente, o negócio tá triste. Não dá pra achar nada!!! D=

Por acaso, pra falar a verdade, encontrei: encontrei um link pra um "manual" feito pras versões 1.42 e 1.50 (ambas, já, obsoletas, apesar de úteis - alguns jogos, como Kirby Avalanche, não rodam na atual versão 1.51, no que a minha recomendação normalmente é usar uma versão mais antiga, como a 1.36, que considero a melhor nesse sentido; além disso, a versão 1.42 é a última versão em que a internet está "ativada", tendo essa funcionalidade sido retirada do emulador a partir da versão 1.50, em virtude dos vários bugs que ela tinha), o qual pode ser baixado nesse link. Mesmo assim, mesmo tendo achado alguma documentação sobre "como usar" o ZSNES, não consegui nem chegar perto de tentar começar a entender (conseguiram acompanhar a distância??!!) o código do ZSNES, em qualquer parte que eu tente começar a ler. São tantos arquivos, com tanta coisa, tanta informação, tantas referências de arquivo pra arquivo, tantas bibliotecas diferentes "includadas", que eu nem sei por onde começar. Mas... quem é que quer continuar com o projeto do ZSNES, que tá parado há um tempão (desde o fim de 2006)!?!? (tá tá, na verdade, eu nem olhei o código do ZSNES: eu só procurei pra ver se achava alguma coisa próxima do que o Juliano  - um colega meu - tinha me dito: quando falei sobre o manual do ZSNES que tinha achado, ele pensou que fosse um manual relativo a programação e tudo mais, e como o Fialho concordou com a possibilidade, resolvi procurar)

(Quanto ao não ter conseguido entender o código, eu realmente já tinha tentado uma vez, sem muito ânimo, e não deu em nada, no que rapidamente desisti: estava tentando entender o motivo de o ZSNES simplesmente não compilar para arquiteturas x64 D=)

Mas, pra falar a verdade, o que me agonia é o tamanho da falta de preocupação dos caras que escrevem programas em manter uma documentação decente, atualizada, e tal. Ano passado, passei semanas tentando resolver os vários problemas de compilação de um programa que estava tentando usar, chamado Quagga (na real, o programa, em si, funcionava bem, mas a extensão dele que eu estava tentando usar é que era bugada). Toda a vez que eu consertava algum problema (uma referência mal-feita, um include faltando, etc), aparecia um novo erro. Me incomodava que, quando eu ía olhar o código, não dava pra entender bulhufas: as variáveis tinham nomes mágicos como HWDIDUGTHERE (tá tá... só um exemplo) e os comentários só apareciam no início do arquivo, dizendo que o arquivo era de código aberto e que nenhuma garantia sobre o seu funcionamento era dada... ¬¬

Quando tu ía ler a documentação do programa (tinha um arquivinho bonitinho disso), tu via que, de uma versão pra outra, eles só mudavam o número da versão, sem realmente escrever se alguma coisa tiver mudado (lembro que o arquivo era o mesmo já há um tempão e que tinha versões em que ele nem tinha sido mudado para casar com a versão do programa D=)

Algo muito próximo me tem acontecido com uma biblioteca que, pelo que vi, até que é bem popular na internet para parsear midi. Tenho tentado usá-la, mas o negócio tá tr00. O nome dela é libjdkmidi, mas ela recentemente (beeem recentemente: dia 14 de setembro de 2010, duas semanas atrás, praticamente) mudou de nome pra jdksmidi. Até duas semanas atrás ela tinha uma página bonitinha, cheia de detalhezinhos sobre como testar (apesar de não muito úteis, já que os arquivos sobre os quais a página falava não existem mais no pacote O.o), que felizmente foi "mirroreada" por um outro site, o qual agora tenho usado pra dar uma olhada.

De qualquer forma, o que me acontece é que a biblioteca tem uma documentação DESGRAÇADA!!! Tão desgraçada que eu tive de baixar um programa que a usa (e foi meio sacrificoso instalar o programa, já que tava faltando um include no meio do tudo pra ele poder compilar sem reclamar) pra poder entender. Tão desgraçada que, basicamente, ela me mostra uma lista de todas as classes que compõem a biblioteca (que foi escrita em C++) de várias formas diferentes: primeiro na ordem dos arquivos, depois em diagrama de classes (que bom, em?? Agora eu conheço a hierarquia das classes da biblioteca, em!?!?), e por último em ordem alfabética. Como referência, é 10. Como tutorial, é 0.

Assim, sou obrigado a ficar lendo o maravilhoso código desse cara pra entender como usar esse lixo ¬¬

Não acho isso certo, e certamente, se eu tivesse feito, teria feito no mínimo diferente. Maaasss... como é o que tem... e como os programadores não parecem muito a fim de mudar (vide código dos kernels do linux), e como eu creio ser somente um no meio de milhões gostando desse modo de fazer as coisas, então, acho que terei de me acostumar D=

(será que alguém vai concordar comigo?!?!)

Eras isso...

R$

Um comentário: