Cheguei ao final de semana com uma reminescência, que conduz a uma indicação de livro com o qual estou gostando de aprender Python.

Quando eu estava aprendendo a ser um programador profissional (na época ainda não nos chamavam de “desenvolvedor”, mas já havia quem preferisse se qualificar como “projetista de softwares”), no final da década de 1980 e após alguns anos de hobby , o mercado da microinformática ainda era dominado pelas hoje chamadas linguagens de terceira geração (Pascal era a minha preferida, ainda nos tempos da série Turbo, da Borland).

Era um tempo diferente: a maioria dos PCs com que trabalhei rodavam o MS-DOS (ou algum dos clones), conexões (em redes locais – Internet por aqui era assunto conhecido por poucos) eram raras, dados eram transportados em disquetes e a orientação a objetos era vista como “a próxima onda” (na livraria da esquina havia até um livro intitulado “Assembler orientado a objetos”, que hoje há quem pense que era um elaborado hoax).

A maior parte dos profissionais com que convivi nos meus primeiros anos como programador havia aprendido a programar originalmente nos micrinhos da chamada “geração 8 bits” brasileira (TK-82C, CP-300, os clones do Apple ][, HotBit e todos os seus companheiros, predecessores e sucessores).

Esse aprendizado ocorria com ajuda de uma grande variedade de revistas, fascículos e livros de autores brasileiros que explicavam como usar as linguagens disponíveis para essas surpreendentes máquinas – em especial o BASIC, que anos depois os professores vinham nos dizer que havia estragado nossa noção de programação estruturada para sempre. (essa interessante entrevista com o Prof. Pierluigi Piazzi conta mais sobre como eram esses livros, na fase final da “era 8 bits”).

Para mim (e para outros contemporâneos), esses livros – incluindo os bons manuais que acompanhavam os micrinhos – tinham uma característica hoje relativamente rara: como as linguagens da época eram bastante autocontidas (sem a profusão de bibliotecas, frameworks e APIs que hoje facilitam nossa vida), dava de descrever 100% de seus comandos, parâmetros e configurações em um único livro. Já sabendo lógica de programação, e tendo à mão um segundo livro descrevendo a íntegra das rotinas e variáveis programadas na ROM dos computadores, dava de praticamente dominar um combo plataforma + linguagem.

E na hora de aprender uma segunda linguagem, ainda nessa época, o cidadão começava escolhendo um bom livro que apresentasse a linguagem completa. Havia verdadeiras bíblias de Clipper Summer 87, e ao mesmo tempo havia um cartão de referência de Turbo Pascal 3.0 que caberia em 2 folhas A4 – e todos eles apresentavam a íntegra dos comandos, funções e parâmetros das suas linguagens.

Só que aí o mundo do que chamávamos de microinformática mudou rapidamente. Vieram os ambientes gráficos, os frameworks, a orientação a objeto, multitarefa, multiusuário, multithreading, virtualização, comunicação interprocessos e tantos outros conceitos que na década anterior ficavam mais restritos, e subitamente passaram a potencializar o nosso trabalho diário – ao mesmo tempo em que tornaram mais difícil aprender uma nova linguagem, pois vinha acompanhada de uma série de APIs, recursos da plataforma, frameworks, etc., como uma interminável penca de siris saindo do balaio.

A última linguagem que eu aprendi “lendo o livro” foi AWK, quando já havia deixado de ser um profissional do desenvolvimento de sistemas. Gostei da proposta, comprei o livro dos autores da linguagem, e comecei a me divertir bem mais com meus scripts – isso deve ter sido há uns 15 anos, e a linguagem é bem mais antiga do que isso: data de 1977, o que se traduz em limitações em relação ao que se pode fazer hoje com linguagens igualmente simples de operar, mas mais completas em termos de recursos de interface, de armazenamento e mais.

Mas estar limitado ao console e aos arquivos-texto, embora atenda uns 80% das minhas necessidades práticas de ex-programador, estava me fazendo cada vez mais me sentir anacrônico. Ao mesmo tempo, a inserção de camadas externas sobre o AWK para tratar de interfaces mais modernas, bases de dados, conectividade, etc. me parece desafiar a proposta da própria linguagem.

Foi por isso que recentemente saí em busca de uma linguagem mais moderna com a qual eu pudesse simpatizar, e acabei encontrando isso no Python. Mas embora o núcleo da linguagem seja suficientemente sucinto, ainda não havia encontrado um livro com as qualidades com as quais estava acostumado da minha época de aprendiz de linguagens, e nem estava disposto a aprender usando recursos online, como fiz com PHP.

Devido à atividade de blogueiro, recebo grande variedade de obras para analisar e resenhar, e um número considerável delas tem estado relacionada ao Python. Encontrei várias que recomendaria a quem quisesse usar o Python durante o aprendizado de lógica de programação, e outras que tinham excelente qualidade técnica mas não conseguiram me atrair.

Mas agora, fechando as atividades do ano que começa a encerrar, resolvi passar o pente-fino na biblioteca técnica (do qual o primeiro resultado foi que doei 27 livros de TI para uma escola do interior), e separei alguns livros de Python para uma segunda olhada mais atenta.

Outros autores, não se sintam diminuídos: não sou um leitor típico, e também tem mais livros que separei para um segundo momento, fazendo o papel dos antigos livros que apresentavam o conjunto das rotinas da ROM e as variáveis de sistema. Mas tem um livro que separei para ler por primeiro, por ter as qualidades que busco – e curiosamente não é um livro que foi escrito para isso.

Trata-se do “Python e Django“, escrito por Osvaldo Santana e Thiago Galesi. Publicado pela Novatec em 2010, tem 279 páginas, e o sumário pode ser consultado on-line.

Acontece que este livro foi feito para ensinar desenvolvimento ágil de aplicações web, aproveitando para isso o ótimo framework Django – algo que dificilmente poderia me interessar menos.

Mas (e verifiquei nas biografias para ter certeza) os 2 autores também viveram a era 8 bits, e acho que isso se reflete na natureza dos capítulos 1 a 7, que ocupam cerca da metade da obra, descrevendo a linguagem Python em si (sem se preocupar com o Django) como eu gosto: começando pela estrutura, depois uma lista detalhada dos tipos, comandos e funções, loops, seleções, modularização e assim por diante.

Espero que os autores não se ofendam por eu ter gostado do livro deles por uma razão diferente daquela da que ele foi escrito, e por não estar interessado no Django ou no desenvolvimento de aplicações web.

Mas o fato é que estou gostando de ler os capítulos sobre Python, estudar os exemplos de programas e de uso (tudo simples como deve ser), e recomendo que quem mais tiver interesse em aprender a linguagem Python folheie este livro na livraria e avalie se não chega à mesma conclusão que eu.

Ao mesmo tempo, convido os leitores a aproveitar os comentários para relembrar de livros de informática dos “velhos tempos” que foram importantes para o seu aprendizado, ou mesmo para recomendar outros livros para o aprendizado de linguagens atuais!