Da minha saudade recorrente dos 8 bits

Senta de novo que vem história.

Era o final dos anos 80. Eu já sabia usar (razoavelmente) bem computadores, mesmo quase nunca tendo contato com nenhum (lembre-se, naquela época era artigo de luxo e, quando de tecnologia estrangeira, sob importação "alternativa"). Nessa época os PCs (e os primeiros Macs) já eram populares nos EUA, com arquiteturas completamente estranhas na Inglaterra e os "genéricos" nacionais. Poucos anos depois o Collor abriu o mercado e os computadores se multiplicaram feito ratos.

Mesmo com as dificuldades financeiras tínhamos planos para comprar um computador. Pra minha infelicidade (e posterior vantagem, daquelas que você só percebe anos depois, e acontecem por acaso) não era um modelo de 16 ou 32 bits: era um de 8 (MSX, já bem usado, na época comprado contrabandeado, mas agora passando de mão em mão). Tinha a vantagem de ligar na TV, então economizava-se o que hoje equivaleria R$ 1.200.

Também tinha outras vantagens: dava para usar fitas cassette, que já eram baratas e eu podia comprar com meu próprio esforço (nos "bicos" e nos primeiros empregos informais). Continuo achando fitas K7 superiores à disquetes, que hoje falham muito mais do que antigamente porque se usa menos material e a mão-de-obra é semi-escrava. Vale lembrar que quase todo computador (ou componente) fabricado hoje vem de mão-de-obra semi-escrava. O computador onde escrevo também é. Ninguém é mais santo, e não existem, a rigor, "indústrias nacionais".

Se o gravador controlado pelo MSX falhasse e um "ajuste no azimute" (IIRC) fosse necessário, eu nem perdia tempo: colocava a fita num microsystem "anos 80" e colocava o cabo P2 computador nele, que lia perfeitamente. E ainda dava para ouvir o som mais alto. É um som parecido com os de modem, e as lembranças do som são agradáveis (mesmo que eu tivesse que, às vezes, esperar 20 minutos para um programa carregar).

O intuito de comprar o computador era óbvio: é o que hoje chama-se de "inclusão digital" -- familializar-se com a digitação no computador, criar programas, dominar os meandros da máquina, melhorar o uso da lógica, etc. (ah, "inclusão digital" hoje é orkut, fotolog, msn, e baixar sacanagem? Foi mal, pensei que era uma coisa séria).

Deu certo. Acabei aí ganhando uma profissão. Não era a profissão que eu esperava, subestimamos demais a coisa (estávamos numa crise braba, pré-Real, e eu almejava no máximo um cargo de "operador de computador" em algum lugar, porque era um trabalho que não se sujava as mãos, não precisava fazer esforço e dava para sobreviver -- mas só sobreviver). Sem contar que o contato com o computador me aproximou do Latim da nossa época, o Inglês. Foi um benefício duplo.

Ou múltiplo: o Inglês é uma "gateway drug" (para ficar no anglicismo) que te leva para um mundo de literatura mais universalizada, ampla, onde sempre há tradução de títulos, e onde há possibilidade de se aprender outras línguas através dele como "pedra de Rosetta".

Aliás, também subestimei os danos que a profissão ia me trazer. LER, insônia, problemas posturais, lapsos bobos de memória... boa parte disso foi corrigido a tempo. Mas na época era normal eu ficar transcrevendo/debugando programetes em BASIC até as duas, três da manhã; raras eram as vezes em que eu virava a noite, mas acontecia e a alegria de ter um programa funcional superava a ressaca do dia seguinte (que era o mesmo dia).

Foi largamente através de imitação (macaco vê, macaco faz) que aprendi a programar. Tanto no assembly (hoje primitivo) do Z80 como no BASIC. No assembly eu ainda imitava bastante até o final da minha época de MSX, mas no BASIC eu já conseguia ousar mais.

Ousar mais e enxergar logo os limites: na minha primeira tentativa de fazer um programa interpretador de comandos (um DOS da vida) eu alcancei rapidinho os 22k de RAM, todos consumidos pelo programa. Foi engraçado, embora tivesse me preocupado na hora: o prompt não aceitava mais uma linha do programa, e dizia que estava "out of memory". Custei a acreditar. Foi quando dei um LIST (IIRC) e vi que tinha programado demais. Como tinha que sacrificar a legibilidade para ganhar alguns bytes, tentei eliminar os espaços primeiro (dá para programar em BASIC no MSX sem usar espaços. Fiz isso por alguns meses, o que me preparou anos depois para o Perl e o PHP). Não adiantou muito. Tive que otimizar e -- gasp! -- criar um sistema de código que poderia se auto-gerar.

As revistas da época (e de épocas passadas) como INPUT, MicroSistemas, etc. era o que me pautava. Ganhei algumas com o próprio computador; comprei outros fascículos da INPUT (na época dificílimos de se achar) para ir acompanhando os programas. De INPUT, ao todo, foram 20 fascículos. Nem imaginava que tinha muito mais, e que anos depois eu conseguiria achar boa parte deles (senão a totalidade) na biblioteca da Unisinos. Se eu soubesse eu teria pego o ônibus para São Leopoldo semanalmente ainda criança!

Ao trabalhar com um computador com sérios limites você é obrigado a otimizar o programa. Tanto porque uma instrução a mais pode fazer o programa demorar cinco minutos a mais, como a memória era uma parede rígida num quarto pequeno. Ouvia falar em expansões, em modelos de MSX que possuíam muito mais RAM, inclusive já tinha visto modelos com disquetes de 5 1/2 e 3 1/4, mas era tudo muito caro e inacessível. E os PCs já estavam aí, e às vezes eram tão inacessíveis quanto.

Acabei descobrindo o conceito de currying, macros, linguagem de domínio restrito, e, talvez, lambda calculus -- sem querer, por necessidade, e sem saber direito o nome da técnica que achava que tinha "inventado". Eram idéias antigas com implementações moderníssimas de 40 anos atrás. Bummer.

Também, por não estranha razão, comecei a gostar de Promenade, do Mussorgsky. Tinha descoberto a música via computador, mas, em retrospecto, até que foi bom que não enveredei por este lado -- é um passatempo caro este de fazer música (sim, é uma desculpa).

Me ocorreu de fazer compactação do código, mas na primeira tentativa (após ler sobre o assunto, e, já que eu usava lha/pkzip/etc.) a RAM se provou limitada demais para construir o próprio programa de compactação. Na verdade estava imitando o estilo de programação contemporâneo, que já usava de máquinas sem limitações toscas na casa dos 20 kbytes.

Mesmo assim, consegui achar um que tinha uma ROM 1.2 (melhorada se comparada com a 1.1 que eu tinha) e tinha um drive de disquetes que podia ser acoplado a um dos cartuchos! Foi uma revolução pessoal, mais ou menos quando eu consegui comprar um gravador de CDs. Finalmente os dados e os programas poderiam ser criados em muito menos tempo, e ter uma "mortalidade" menor (portanto, serem mais próximos da "imortalidade").

Converti todos os programas, o mais rápido possível, para o 'modus operandi' do disquete. Já tinha uma GUI primitiva rodando, que imitava o System 7 do Mac em look (mas nada do feel, porque eu sequer tinha mouse, operava com um joystick). E de repente descobri alguns conceitos de double-buffering (mesmo não conseguindo implementar por completo), bitmapping (sofrendo horrores no assembly), sprites compostos -- tudo por acaso e por necessidade. Tempos depois, quando vi o X, conseguia entender (ou imaginar) como que era implementado (inclusive as desvantagens).

Comecei a implementar um banco de dados. Nada relacional, como se tem hoje prontinho para usar, mas mais uma espécie de DBase. Era fã da idéia do DBase, mas odiava (ainda odeio) com profundeza a linguagem totalmente enjambrada, e o jeito de construir programas (e as limitações do DOS, que pareciam ainda mais arcanas num hardware muito mais potente que o PC do que os programetes do tosco MSX).

Aliás, faço um parêntese para inferir que a cultura baseada em DOS/automação de empresinhas/Clipper/DBase/pirataria desmensurada ajudou muita gente a sobreviver mas destruiu a necessidade de vários dos aprendizados da ciência da computação no dia-a-dia dos informatas. Destruiu e criou preconceitos, inclusive um clima de anti-intelectualismo forte. Mas essa é outra história, para outro dia.

Nas primeiras versões do programa -- quando estava criando uma automação para criar a GUI automaticamente através do que havia no banco de dados -- o drive de disquetes pifou.

Decidi arquivar tudo em um lugar à prova de luz, mas que se revelou absorvente de umidade -- e assim perdi todos os programas que tinha construído. O bolor destruiu os disquetes. Como as fitas tinham sido usadas para música (eram baratas, mas ainda custavam dinheiro), então não havia backups. Nasceu aí o Fernando neurótico e obcecado por backups.

Mas esta é outra história.

Às vezes fico pensando -- e não consigo ter uma opinião 100% formada a respeito -- sobre o estado da computação hoje, onde todos os computadores são facilmente programáveis, e todas linguagens (as importantes e interessantes, pelo menos) disponíveis sem custo, com farto material em todas as línguas principais. Ao mesmo tempo vejo gente fazendo tarefas que são, de um ponto de vista, programação -- mas ao mesmo tempo percebo que a evolução no software tende a ser só aparente, já que só se faz mais do mesmo.

Caio às vezes no pensamento fácil de que "antigamente que era bom", que invariavelmente cai na premissa "se os computadores tivessem certos limites seria melhor". Aí depois eu me toco da bobagem e volto a movimentar meus castelos-de-carta digitais, que só existem na minha cabeça, e são como se fossem minha própria Matrix. Não troco esse tempo por outro passado, não. Essa falta de evolução aparente vai passar, deixa só o legado do PCzismo dos anos 80 acabar.