No dia 20 de fevereiro de 1991, Guido van Rossum publicou na lista alt.sources a primeira versão da linguagem de programação Python, na qual trabalhou desde dezembro de 1989 como parte de um projeto para criar uma linguagem de script destinada à resolução de tarefas de administração de sistemas no sistema operacional Amoeba, que fosse de nível superior ao C, mas, ao contrário do Bourne shell, proporcionasse um acesso mais conveniente às chamadas de sistema do OS.
O nome do projeto foi escolhido em homenagem ao grupo de comédia Monty Python. A primeira versão implementou suporte para classes com herança, tratamento de exceções, um sistema de módulos e os tipos básicos list, dict e str. A implementação de módulos e exceções foi emprestada da linguagem Modula-3, enquanto o estilo de codificação baseado em indentação foi influenciado pela linguagem ABC, na qual Guido havia participado anteriormente.
Durante o desenvolvimento do Python, Guido seguiu os seguintes princípios:
- Princípios que economizaram tempo durante o desenvolvimento:
- Empréstimo de ideias úteis de outros projetos.
- Busca pela simplicidade, mas sem excessiva simplificação (princípio de Einstein: "Tudo deve ser expresso da forma mais simples possível, mas não mais simples").
- Seguir a filosofia UNUX, segundo a qual programas realizam uma única funcionalidade, mas fazem isso bem.
- Não se preocupar excessivamente com desempenho, otimizações podem ser adicionadas conforme necessário, quando forem necessárias.
- Não tentar lutar contra o que já está estabelecido, mas fluir com a corrente.
- Evitar o perfeccionismo, geralmente o nível "satisfeito o suficiente" é adequado.
- Às vezes, é possível cortar algumas arestas, especialmente se algo puder ser feito mais tarde.
- Os demais princípios:
- A implementação não deve estar vinculada a uma plataforma específica. Alguns recursos podem não estar disponíveis sempre, mas a funcionalidade básica deve funcionar em qualquer lugar.
- Não sobrecarregar os usuários com detalhes que poderiam ser processados pela máquina.
- Apoiar e promover código independente de plataforma, mas sem restringir o acesso às funcionalidades e peculiaridades das plataformas.
- Grandes sistemas complexos devem fornecer vários níveis para expansão.
- Os erros não devem ser fatais e não devem passar despercebidos — o código do usuário deve ser capaz de interceptar e tratar erros.
- Os erros no código do usuário não devem afetar a funcionalidade da máquina virtual e não devem levar a um comportamento indefinido do interpretador e a falhas de processos.
Fonte: opennet.ru
