No primeiro artigo falamos sobre a história da origem do Python e sua propagação ao longo dos anos e para continuarmos essa conversa nada melhor do que começar falando sobre o:
Zen do Python
Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Linear é melhor do que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para quebrar as regras.
Ainda que praticidade vença a pureza.
Erros nunca devem passar silenciosamente.
A menos que sejam explicitamente silenciados.
Diante da ambiguidade, recuse a tentação de adivinhar.
Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo.
Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês.
Agora é melhor que nunca.
Embora nunca freqüentemente seja melhor que já.
Se a implementação é difícil de explicar, é uma má ideia.
Se a implementação é fácil de explicar, pode ser uma boa ideia.
Namespaces são uma grande ideia — vamos ter mais dessas!
O Zen do Python, também conhecido por PEP 20, é um conjunto de aforismos (máximas ou sentenças que, em poucas palavras, explicitam regras ou princípios de alcance moral) escrito em 1999 por Tim Peters, um dos primeiros colaboradores do Python, e junta em suas 20 linhas os princípios básicos no design de aplicações da linguagem. Peters escreveu esse “poema” sem pretensões porém foi tão bem recebido pela comunidade e pelo seu criador que foi incorporado ao código fonte, podendo ser visto no interpretador com o comando import this.
Seguindo essa máximas, seu projeto dificilmente terá grandes problemas.
Para entender mais sobre o Zen do Python leia esse artigo do Quora e esse do Artifex.org.
As baterias do Python
Python facilita sua vida na hora de começar a programar. Ele já vem com suas baterias inclusas, explicando melhor, existe uma biblioteca padrão imensa, que contém classes, métodos e funções para realizar essencialmente qualquer tarefa, desde acesso a bancos de dados a interfaces gráficas com o usuário e tudo que você precisa para rodar um programa está presente na instalação básica (salvo alguma exceções).
São mais de 230 módulos, divido em 37 categorias, que podem ser vistos na biblioteca padrão da linguagem (verificar versão usada, nesse exemplo 3.5.2) e aqui no nosso breve resumo:
- 01 – Introdução: falando sobre como a própria documentação funciona, sua serventia e como os assuntos estão organizados;
- 2. Built-in Functions e 3. Built-in Constants: funções e constantes que já estão presentes na linguagem como max(), min(), len(), print(), sum(), false, true;
- 4. Built-in Types: seus principais tipos de dados, operadores booleanos, tipos numéricos, listas, tuplas, dicionários, strings e conjuntos algébricos;
- 5. Built-in Exceptions: exceções e avisos;
- 6. Text Processing Services: manipulação de strings;
- 7. Binary Data Services: serviços básicos para manipulação de binários;
- 8. Data Types: manipulação de data e horas, operações (ex: diferença entre uma data e outra);
- 9. Numeric and Mathematical Modules: funções matemáticas, frações, classes numéricas, números complexos, tipos monetários, números randômicos;
- 10. Functional Programming Modules: iteradores para programação funcional;
- 11. File and Directory Access: manipulação de arquivos independente do sistema operacional;
- 12. Data Persistence: persistência de dados, interface genérica de banco de dados, SQLlite3;
- 13. Data Compression and Archiving: compressão de dados;
- 14. File Formats: formatos de dados como csv e netrc;
- 15. Cryptographic Services: criptografia;
- 16. Generic Operating System Services: serviços do sistema operacional;
- 17. Concurrent Execution: concorrência, criação de processos;
- 18. Interprocess Communication and Networking: comunicação com sockets, ssl, programação assíncrona;
- 19. Internet Data Handling: email, json, mailbox;
- 20. Structured Markup Processing Tools: parse de html e xml;
- 21. Internet Protocols and Support: protocolos de internet, urls amigáveis, client ftp, smtpd, servidor http;
- 22. Multimedia Services: manipulação arquivos de áudio, imagem, conversão de cores;
- 23. Internationalization: internacionalização;
- 24. Program Frameworks: estruturas que irão ditar grande parte da estrutura do seu programa;
- 25. Graphical User Interfaces with Tk: interface gráfica padrão, mesmo código pode criar componentes visuais para vários S.O.’s;
- 26. Development Tools: ferramentas de desenvolvimento;
- 27. Debugging and Profiling: framework para debug;
- 28. Software Packaging and Distribution: distribuição de pacotes e ambientes de desenvolvimento;
- 29. Python Runtime Services: serviços relacionados com o interpretador do Python e seu ambiente;
- 30. Custom Python Interpreters: como criar uma interface similar ao interpretador do Python;
- 31. Importing Modules: importador;
- 32. Python Language Services: como estender a linguagem;
- 33. Miscellaneous Services: serviços de formatação;
- 34. MS Windows Specific Services: módulos específicos para controlar o Windows;
- 35. Unix Specific Services: módulos específicos para controlar o Unix;
- 36. Superseded Modules: módulos que estão entrando em desuso e irão cair nas próximas versões mas que ainda são necessários por questões de compatibilidade;
- 37. Undocumented Modules: e módulos não documentados.
Além dos módulos criados pela comunidade que podem ser visualizados no PyPi. Qualquer pessoa pode contribuir com a linguagem criando sua conta no python.org.
E agora?
Nesses dois artigos vimos um pouco da essência do Python e seus diferenciais que fazem da linguagem uma grande ferramenta, que vai além da tecnologia, composta por todo o seu ecossistema, seu espírito de comunidade, de compartilhamento, de pessoas que fazem do Python aquilo que precisam para resolver seus problemas, criar novas tecnologias e tirar grandes idéias do papel.
Abaixo deixo alguns vídeos interessantes para complementar o que já foi explanado, o primeiro é uma palestra do professor Raymond Hettinger, mostrando como deixar seu código mais bonito, legível e Pythonico, o segundo e terceiro são do criador da linguagem, Guido, contando a história do Python e o mais recente sobre novidades e futuro da linguagem, são materiais extensos porém valem a pena o esforço.
Nos próximos artigos começaremos a aprender o básico da linguagem até chegarmos ao nosso primeiro projeto, então continuem com a gente, compartilhem e curtam o Vila do Silício e até a próxima!
https://www.youtube.com/watch?v=ugqu10JV7dk