Seção 2 - Introdução a Python

Explore o universo do Python! Aqui você pode ver desde conceitos básicos até aplicações avançadas.
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Seção 2 - Introdução a Python

Mensagem por bernardino »

Bem-vindo à seção dois. Aqui, aprenderemos um pouco sobre a história do Python, as diferentes versões e implementações do Python e o impacto que o Python teve na programação moderna. Vamos iniciar.

Python - uma ferramenta, não um réptil

O que é Python?

Python é uma linguagem de programação amplamente usada, interpretada, orientada a objeto e de alto nível com semântica dinâmica, usada para programação de uso geral.

E embora você possa conhecer a píton como uma cobra grande, o nome da linguagem de programação Python vem de uma antiga série de comédia da BBC chamada Monty Python's Flying Circus.

No auge do sucesso, a equipe de Monty Python estava realizando seus esboços para viver audiências em todo o mundo, inclusive no Hollywood Bowl.

Como Monty Python é considerado um dos dois principais elementos essenciais para um programador (o outro é pizza), o criador do Python nomeou a linguagem em homenagem ao programa de TV.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Re: Seção 2 - Introdução a Python

Mensagem por bernardino »

Quem criou Python?

Um dos recursos surpreendentes do Python é o fato de que ele é realmente o trabalho de uma pessoa. Normalmente, novas linguagens de programação são desenvolvidas e publicadas por grandes empresas que empregam muitos profissionais e, devido às regras de direitos autorais, é muito difícil nomear qualquer uma das pessoas envolvidas no projeto. Python é uma exceção.
Guido van Rossum.png
Guido van Rossum.png (422.16 KiB) Exibido 34 vezes
Não há muitos idiomas cujos autores sejam conhecidos pelo nome. Python foi criada por Guido van Rossum, nascida em 1956 em Haarlem, na Holanda. Claro, Guido van Rossum não desenvolveu e evoluiu todos os componentes do Python...

A velocidade com que o Python se espalhou pelo mundo é resultado do trabalho contínuo de milhares (muitas vezes anônimos) programadores, testadores, usuários (muitos deles não são especialistas em TI) e entusiastas, mas é preciso dizer que os a primeira ideia (a semente da qual Python brotou) veio à tona - o de Guido.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Re: Seção 2 - Introdução a Python

Mensagem por bernardino »

Um projeto de programação de hobby

As circunstâncias em que o Python foi criado são um pouco intrigantes. De acordo com Guido van Rossum:

Em dezembro de 1989, eu estava procurando por um projeto de programação "hobby" que me mantivesse ocupado durante a semana por volta do Natal. Meu escritório (...) ficava fechado, mas eu tinha um computador em casa e não muito mais. Decidi escrever um intérprete para a nova linguagem de script em que tenho pensado ultimamente: um descendente da ABC que agradaria a hackers Unix/C. Eu escolhi o Python como um título de trabalho para o projeto, por ser um pouco irreverente (e um grande fã de Circo Voador de Monty Python). Guido van Rossum

Objetivos do Python

Em 1999, Guido van Rossum definiu seus objetivos para o Python:
  • uma linguagem fácil e intuitiva, tão eficiente quanto a dos grandes concorrentes;
  • código aberto, para que qualquer pessoa possa contribuir com seu desenvolvimento;
  • código tão compreensível quanto o simples inglês;
  • adequado para tarefas diárias, permitindo tempos de desenvolvimento curtos.
Cerca de 20 anos depois, fica claro que todas essas intenções foram cumpridas. Algumas fontes dizem que Python é a linguagem de programação mais popular do mundo, enquanto outras afirmam que é a segunda ou a terceira.

De qualquer forma, ele ainda ocupa uma posição alta entre os dez primeiros da Popularidade de Linguagem de Programação PYPL e do Índice da Comunidade de Programação TIOBE.

Python não é mais uma linguagem jovem. É maduro e confiável. Não é de admirar. É uma estrela no firmamento de programação, e o tempo gasto aprendendo Python é um investimento muito bom.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Re: Seção 2 - Introdução a Python

Mensagem por bernardino »

O que torna o Python tão especial?

Por que Python?

Como é que os programadores, novos e antigos, experientes e iniciantes, querem usá-lo? Como aconteceu que as grandes empresas adotaram o Python e implementaram seus principais produtos usando-o?

Há muitas razões - listamos algumas delas já, mas vamos enumerá-las novamente de uma forma mais prática:
Python Facil.png
Python Facil.png (55.4 KiB) Exibido 33 vezes
  • É fácil de aprender - o tempo necessário para aprender Python é mais curto do que para muitas outras linguagens; isso significa que é possível iniciar a programação real mais rapidamente;
  • É fácil de ensinar - a carga de trabalho de ensino é menor do que a necessária em outros idiomas; isso significa que o professor pode colocar mais ênfase nas técnicas de programação geral (independentes do idioma), não desperdiçando energia em truques exóticos, estranhas exceções e regras incompreensíveis;
  • É fácil de usar para escrever novos softwares - muitas vezes é possível escrever código mais rápido ao usar Python;
  • É fácil de entender - também é mais fácil entender o código de outra pessoa com mais rapidez, se for escrito em Python;
  • É fácil de obter, instalar e implantar – Python é gratuito, aberto e multiplataforma; nem todas as linguagens podem se orgulhar disso.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Re: Seção 2 - Introdução a Python

Mensagem por bernardino »

Rivais do Python?

O Python tem dois concorrentes diretos, com propriedades e predisposições comparáveis. São eles:
  • Perl - uma linguagem de script criada originalmente por Larry Wall;
  • Ruby - uma linguagem de script criada por Yukihiro Matsumoto.
O primeiro é mais tradicional e mais conservador do que o Python, e se assemelha a algumas das linguagens antigas derivadas da linguagem de programação clássica C.

Em contrapartida, o último é mais inovador e mais cheio de novas ideias do que o Python. O próprio Python está em algum lugar entre essas duas criações.

A Internet está cheia de fóruns com discussões infinitas sobre a superioridade de um desses três sobre os outros, caso você queira saber mais sobre cada um deles.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Re: Seção 2 - Introdução a Python

Mensagem por bernardino »

Onde podemos ver Python em ação?

Vemos isso todos os dias e quase em todos os lugares. É amplamente utilizado para implementar serviços de Internet complexos, como mecanismos de pesquisa, armazenamento em nuvem e ferramentas, mídias sociais e assim por diante. Sempre que você usa qualquer um desses serviços, você está muito próximo do Python, embora não saiba.

Muitas ferramentas de desenvolvimento são implementadas em Python. Cada vez mais aplicativos de uso diário estão sendo escritos em Python. Muitos cientistas abandonaram ferramentas proprietárias caras e mudaram para o Python. Muitos testadores de projeto de TI começaram a usar o Python para realizar procedimentos de teste repetíveis. A lista é longa.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Re: Seção 2 - Introdução a Python

Mensagem por bernardino »

Por que não Python?

Apesar da crescente popularidade do Python, ainda há alguns nichos nos quais o Python está ausente ou é raramente visto:
  • programação de baixo nível (às vezes chamada de programação "próxima ao metal"): se você quiser implementar um driver ou mecanismo gráfico extremamente eficaz, não usará Python;
  • aplicativos para dispositivos móveis: embora esse território ainda esteja esperando para ser conquistado pelo Python, provavelmente acontecerá algum dia.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Re: Seção 2 - Introdução a Python

Mensagem por bernardino »

Há mais de um python

Python 2 vs. Python 3

Existem dois tipos principais de Python, chamados Python 2 e Python 3.

Python 2 é uma versão mais antiga do Python original. Seu desenvolvimento foi intencionalmente interrompido, embora isso não signifique que não há atualizações para ele. Pelo contrário, as atualizações são emitidas regularmente, mas não pretendem modificar a linguagem de forma significativa. Eles preferem corrigir bugs e falhas de segurança recém-descobertos. O caminho de desenvolvimento do Python 2 já chegou a um impasse, mas o próprio Python 2 ainda está vivo.

Python 3 é a versão mais recente (ou para ser mais preciso, a atual) da linguagem. Ela está seguindo seu próprio caminho evolutivo, criando seus próprios padrões e hábitos.

Essas duas versões do Python não são compatíveis entre si. Os scripts Python 2 não serão executados em um ambiente Python 3 e vice-versa. Se você quiser que o código Python 2 antigo seja executado por um intérprete Python 3, a única solução possível é reescrevê-lo, não do zero, é claro, pois grandes partes do código podem permanecer intocadas, mas você precisa revisar todo o código para encontrar todas as incompatibilidades possíveis. Infelizmente, esse processo não pode ser totalmente automatizado.

É muito difícil, muito demorado, muito caro e muito arriscado migrar uma aplicação antiga do Python 2 para uma nova plataforma, e é até possível que a reescrita do código introduza novos bugs nela. É mais fácil e mais sensato deixar esses sistemas em paz e melhorar o intérprete atual, em vez de tentar trabalhar dentro do código-fonte que já está em funcionamento.

O Python 3 não é apenas uma versão melhor do Python 2 - é uma linguagem completamente diferente, embora muito semelhante ao seu antecessor. Quando você os observa à distância, eles parecem ser os mesmos, mas quando você olha de perto, você percebe muitas diferenças.

Se você estiver modificando uma solução Python antiga, é muito provável que ela tenha sido codificada em Python 2. Essa é a razão pela qual o Python 2 ainda está em uso. Há muitos aplicativos Python 2 para descartá-lo completamente.

Observação

Se você vai começar um novo projeto Python, deve usar o Python 3, e esta é a versão do Python que será usada durante este curso.

É importante lembrar que pode haver diferenças menores ou maiores entre as versões subsequentes do Python 3 (por exemplo, o Python 3.6 introduziu chaves de dicionário ordenadas por padrão na implementação do CPython) - a boa notícia é que todas as versões mais recentes do Python 3 são compatíveis com as versões anteriores do Python 3. Sempre que significativo e importante, sempre tentaremos destacar essas diferenças no curso.

Todos os exemplos de código que você encontrará durante a leitura foram testados em Python 3.4, Python 3.6, Python 3.7, Python 3.8 e Python 3.9.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 682
Registrado em: 28 Ago 2020, 15:11

Re: Seção 2 - Introdução a Python

Mensagem por bernardino »

Implementações de Python

Além de Python 2 e Python 3, há mais de uma versão de cada.

Seguindo a página wiki do Python, uma implementação do Python se refere a "um programa ou ambiente, que oferece suporte para a execução de programas escritos na linguagem Python, conforme representado pela implementação de referência do CPython".

A implementação tradicional do Python, chamada CPython, é a versão de referência da linguagem de computação Python de Guido van Rossum, e na maioria das vezes é chamada apenas de "Python". Quando você ouve o nome CPython, ele provavelmente é usado para diferenciá-lo de outras implementações alternativas não tradicionais.

Mas, primeiro, as coisas. Existem Pythons mantidos por pessoas reunidas em torno do PSF (Python Software Foundation), uma comunidade que tem como objetivo desenvolver, melhorar, expandir e popularizar o Python e seu ambiente. O presidente do PSF é o próprio Guido von Rossum e, por essa razão, esses Pythons são chamados de canônicos. Eles também são considerados Pythons de referência, pois qualquer outra implementação da linguagem deve seguir todos os padrões estabelecidos pelo PSF.

Guido van Rossum usou a linguagem de programação "C" para implementar a primeira versão de sua linguagem, e essa decisão ainda está em vigor. Todos os Pythons provenientes do PSF são escritos na linguagem "C". Há muitas razões para essa abordagem. Uma delas (provavelmente a mais importante) é que, graças a ela, o Python pode ser facilmente portado e migrado para todas as plataformas com a capacidade de compilar e executar programas de linguagem "C" (praticamente todas as plataformas têm esse recurso, o que abre muitas expansões oportunidades para o Python).

É por isso que a implementação do PSF é conhecida como CPython. Este é o Python mais influente entre todos os Pythons do mundo.

Saiba mais sobre os membros da família Python e algumas das implementações alternativas mais populares do Python.

Cython é uma das possíveis soluções para a mais dolorosa das características da Python - a falta de eficiência. Cálculos matemáticos grandes e complexos podem ser facilmente codificados em Python (muito mais fácil do que em "C" ou em qualquer outra linguagem tradicional), mas a execução de código resultante pode ser extremamente demorada.

Como essas duas contradições são reconciliadas? Uma solução é escrever suas ideias matemáticas usando Python, e quando você tiver certeza absoluta de que seu código está correto e produz resultados válidos, você pode convert~e-lo em "C". Certamente, "C" será executado muito mais rápido do que em Python puro.

Isso é o que o Cython se destina a fazer para converter automaticamente o código Python (limpo e claro, mas não muito rápido) em código "C" (complicado e falante, mas ágil).

Outra versão do Python é chamada Jython.

"J" é para "Java". Imagine um Python escrito em Java em vez de C. Isso é útil, por exemplo, se você desenvolver sistemas grandes e complexos escritos inteiramente em Java e quiser adicionar alguma flexibilidade Python a eles. O CPython tradicional pode ser dificil de integrar a esse ambiente, pois C e Java vivem em mundos completamente diferentes e não compartilham muitas ideias comuns.

O Jython pode se comunicar com a infraestrutura Java atual com mais eficiência. É por isso que alguns projetos acham útil e necessário.

Observação: a implementação atual do Jython segue os padrões do Python 2. Até o momento, não há nenhum Jython em conformidade com o Python 3.

O logotipo do PyPy é um jogo de quebra-cabeça. Você pode resolver o probema? Isso significa: um Python dentro de um Python. Em outras palavras, ele representa um ambiente Python escrito em uma linguagem semlhante a Python chamada RPython (Python restrito). Na verdade, é um subconjunto do Python.

O código fonte do PyPy não é executado na maneira de interpretação, mas em vez disso, é traduzido para a linguagem de programação C e executado separadamente.

Isso é útil porque se você quiser testar qualquer novo recurso que você possa ser (mas não precise ser) introduzido na implementação principal do Python, é mais fácil verificar isso com o PyPy do que com o Cpython. É por isso que o PyPy é mais uma ferramenta para as pesoas que desenvolvem o Python do que para o restante dos usuários.

Isso não torna o PyPy menos importante ou menos sério do que o CPython, é claro.

Além disso, o PyPy é compatível com a linguagem Python 3.

Há muito mais Pythons diferentes no mundo. Você os encontrará se olhar.

O MicroPython é uma implementação eficiente de software de código aberto do Python 3, que é otimizada para ser executada em microcomputadores. Ele inclui um pequeno subconjunto de biblioteca padrão Python, mas é amplamente embalado com um grande número de recursos, como prompt interativo ou números inteiros de precisão arbitrária, bem como módulos que dão ao programador acesso ao hardware de nível inferior.

Originalmente criado por Damien George, um programador australiano que, no ano de 2013, realizou uma campanha bem-sucedida no Kickstarter e lançou a primeira versão do MicroPython com uma placa de desenvolvimento baseada em STM32F4 chamada pyboard.

Em 2017, o MicroPython foi usado para criar o CircuitPython, outra liguagem de programação de código aberto executada no hardware do computador, que é um derivado da linguagem MicroPython.

Continuar a leitura: Seção 3 - Download e instalação do Python
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Responder