Referi no último post, que Python tem evoluído de acordo com o feedback da comunidade e queria explicar este ponto porque é interessante.
Ao contrário de outras linguagens que não ouvem o que a comunidade diz, o desenvolvimento do Python é fortemente influenciado pela comunidade num processo em que qualquer pessoa pode submeter propostas de alteração da linguagem (chamados "Python Enhancement Proposals") que depois são votadas e eventualmente aceites para implementação.
Neste site http://www.python.org/dev/peps/ podem ver a lista de PEP's e o seu estado.
Blog em português onde relato a minha aprendizagem de Python. Sendo um blog, ele deve ser lido de baixo para cima e é escrito orientado a uma audiência com alguns conhecimentos de programação. Não tentando ser uma fonte exaustiva de conhecimento sobre Python, pode, no entanto, servir como crash course a esta linguagem.
Thursday, April 23, 2009
Tuesday, April 14, 2009
Instalação, implementação de referência
Quando falamos de uma linguagem é necessário distingui-la da sua implementação. Existem várias implementações da linguagem Python (interpretadores/compiladores) de Python. A implementação de referência é aquela que está disponível em python.org e foi escrita em C. Excepto quando explicitamente referido, todo os exemplos presentes neste blog devem ser executados pela referida implementação. Este ponto é importante porque apesar de existirem outras implementações interessantes, estas podem não ter o mesmo nível de compatibilidade que a implementação de referência, chamada CPython.
A instalação de CPython é trivial tanto em windows como em Linux. Em windows o procedimento a executar consiste em ir ao site http://www.python.org/ e fazer o download do instalador para este S.O.. Em linux, é comum encontrar-se o pacote de python nos sistemas de gestão de pacotes. Se não existir, podem encontrar o código fonte no referido site e instruções para o compilar.
Ainda no site referido podem ver que existem (à data) duas versões diferentes disponíveis: 2.6.1 e 3.0.1 . Estas diferenças devem-se ao facto de o Python ser uma linguagem que tem vindo a evoluir de acordo com o feedback da comunidade. Algumas features foram introduzidas e outras retiradas na versão 3.x. Sendo que aconselho a aprendizagem da versão 2.6 e depois consultar as diferenças para a versão 3. Além disso, existem ainda muitas bibliotecas que não estão preparadas para serem executadas com a semântica da versão 3 e, como tal, não vão funcionar.
Muito honestamente não sei ainda quais são as diferenças em concreto, só espero que sejam pequenos pormenores em vez de ter de aprender 2 linguagens completamente diferentes (o que tenho lido é que são, de facto, pequenas diferenças).
A instalação de CPython é trivial tanto em windows como em Linux. Em windows o procedimento a executar consiste em ir ao site http://www.python.org/ e fazer o download do instalador para este S.O.. Em linux, é comum encontrar-se o pacote de python nos sistemas de gestão de pacotes. Se não existir, podem encontrar o código fonte no referido site e instruções para o compilar.
Ainda no site referido podem ver que existem (à data) duas versões diferentes disponíveis: 2.6.1 e 3.0.1 . Estas diferenças devem-se ao facto de o Python ser uma linguagem que tem vindo a evoluir de acordo com o feedback da comunidade. Algumas features foram introduzidas e outras retiradas na versão 3.x. Sendo que aconselho a aprendizagem da versão 2.6 e depois consultar as diferenças para a versão 3. Além disso, existem ainda muitas bibliotecas que não estão preparadas para serem executadas com a semântica da versão 3 e, como tal, não vão funcionar.
Muito honestamente não sei ainda quais são as diferenças em concreto, só espero que sejam pequenos pormenores em vez de ter de aprender 2 linguagens completamente diferentes (o que tenho lido é que são, de facto, pequenas diferenças).
Wednesday, April 8, 2009
Mas
Tinha de escolher uma linguagem de muito alto nível. Lisp estava fora de questão:falta-lhe standardização e bibliotecas decentes para problemas comuns.
A linguagem de eleição tinha de ter as seguintes características:
Obviamente aconselho vivamente estas apresentações para quem já sabe programar e quer ter uma ideia do que é Python pois ele explica a filosofia por detrás da linguagem e contrasta algumas das suas características com Java e C++.
A linguagem de eleição tinha de ter as seguintes características:
- Existência de implementações para Windows e Linux.
- Suporte a programação orientada a objectos.
- Gestão automática de memória.
- Expressiva
- Boas APIS/bibliotecas standard.
- Grande comunidade de utilizadores e recursos facilmente acessíveis.
Obviamente aconselho vivamente estas apresentações para quem já sabe programar e quer ter uma ideia do que é Python pois ele explica a filosofia por detrás da linguagem e contrasta algumas das suas características com Java e C++.
Thursday, April 2, 2009
Motivação
Precisava de uma linguagem produtiva. Por produtiva entenda-se uma linguagem expressiva e com boas bibliotecas standard. A expressividade é importante porque sou preguiçoso. Prefiro escrever pouco (código) e fazer muito do que o contrário. A existencia de bibliotecas standard é essencial para não ter de perder o meu tempo a programar estruturas de dados básicas. Esta necessidade tournou-se óbvia perante mim quando, num determinado projecto pessoal, cheguei à conclusão que teria de escrever uma quantidade de código que não era compatível com o tempo que tinha (tamos a falar de um projecto pessoal). Mesmo em Java, teria que escrever uma quantidade de código absurda para a simplicidade da tarefa. Decidi que estava na altura de adicionar uma boa linguagem de muito alto nível à colecção de linguagens em que me sinto verdadeiramente à vontade (c,c++,java).
Subscribe to:
Comments (Atom)