domingo, novembro 17, 2019

Crítica: Introducing Python

Algumas décadas atrás, quando eu tive o meu primeiro contato prático com programação, eu queria aprender todas as linguagens a que tivesse acesso. Com o passar dos anos, fui ficando mais seletivo e passando a apresentar resistência a algumas linguagens.

De forma meio inesperada, Python é uma destas linguagens. A importância dos espaços na linguagem conflita com o meu aprendizado inicial numa época em que se afastava dos cartões perfurados e a liberdade de forma era uma vantagem apregoada por tudo que era novo. A impossibilidade de declarar o tipo das variáveis se choca com a minha forma habitual de desenvolvimento e levanta preocupações sobre a detecção de erros somente em campo (não estou sozinho nisto). E tem uma série de incômodos, entre os quais a incompatibilidade da versão 3 com a versão 2 (o fato de ainda estar falando isto 10 anos depois do lançamento da versão 3 mostra como o problema é grave).

Mas eu insisto em aprender Python. Já escrevi diversos pequenos programas (principalmente no Raspberry), mas estou longe de saber de cor a sintaxe e meu código certamente não é "pitônico". "Introducing Python" veio como parte de um monte de livros em uma oferta do Humble Bundle e é a minha tentativa mais recente.



"Introducing Python" é daquele tipo de livro que tenta abordar um monte de coisa em nível introdutório. Adota o Python 3, porém na hora que começa a falar de módulos adicionais aparecem um monte de "atualmente só está disponível para o Python 2". Apesar do livro ter sido lançado 5 anos atrás, desconfio que esta situação ainda não deve estar resolvida.

O capítulo 1 ("A Taste of Py") é uma introdução bastante genérica. A descrição mesmo de Python começa no capítulo 2 ("Py Ingredients") que fala nos tipos básicos de dados (números e strings) e segue pelos capítulos seguintes ("Py Filling" e "Py Crust" - já deu para ver a temática culinária?), que tratam dos tipos mais avançados e das estruturas de controles. O capítulo 5 fala sobre módulos, pacotes e programas e o capítulo 6 sobre objetos e classes. O capítulo 7 trata de um assunto que é a origem de muitas incompatibilidades entre as versões 2 e 3 do Python: caracteres x bytes.

O capítulo 8 é uma mistura esquisita. Começa falando no acesso a arquivos, passa por "arquivos estruturados" (CSV, XML, HTML, Jason e outros), planilhas e chega a banco de dados. O capítulo 9 trata da web: web client, web server, web services e automação. É claro que nenhum dos dois tem muita profundidade.

O capítulo 10 tem um nome esquisito: "Systems" (na verdade se refere ao módulo "os"). Fala de arquivos, diretórios, programas, processos, calendário e relógio.

O capítulo 11 é outra mistura de assuntos: concorrência e rede.

Por fim o capítulo 12 ("Be a Pythonista") cobre assuntos diversos, como instalação de paotes, IDEs, teste, depuração e controle de versão.

Os apêndices cobrem algumas aplicações como gráficos e cálculos científicos.

Com quatrocentas e tantas páginas, o livro cobre bastante território, mas de forma superficial. O titulo "Introduzindo Python" é apropriado: é um livro que dá uma primeira apresentação sobre o Python e uma ideia do que se pode fazer com ele. Mas não vai muito fundo no "como fazer".

Veredito: Uma boa introdução para quem quer saber o que dá para fazer com Python, mas você vai ter que estudar bem mais para conseguir fazer estas coisas.

2 comentários:

Felipe disse...

Bom dia, Professor. E o que achou da linguagem Python? Há também o livro Python Fluent, um pouco mais avançado e muito bom.

Daniel Quadros disse...

Felipe, como eu disse, tenho uma certa resistência a Python. Mas é uma linguagem que tem uma boa coleção de bibliotecas e bastante prática para aplicações simples. Sim, eu conheço o Fluent Python (e o autor), está na minha estante aguardando a vez.