SlideShare uma empresa Scribd logo
1 de 19
Breve história da linguagem Python
Giancarlo Lima da Silva
Seminário para a disciplina de Paradigmas de Linguagens de Programação
Tecnologia em Análise e Desenvolvimento de Sistemas – 2014.1
O que é Python?
Os primórdios da linguagem
A linguagem hoje
Linha do tempo do Python
Quem é Guido van Rossum?
Entrevista com Guido van Rossum
Python é uma linguagem moderna, de alto
nível e de propósitos gerais desenvolvido por
Guido van Rossum. Sua implementação foi
iniciada em 1989;
Sua filosofia enfatiza a legibilidade do código
e sua sintaxe permite expressar conceitos
com poucas linhas de código;
The Zen of Python
◦ >> import this
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
A linguagem Python foi desenvolvida por van
Rossum no CWI*, tendo sido inspirada por
outra linguagem, a ABC;
O nome da linguagem veio da mania dos
membros do grupo de van Rossum de dar
aos softwares desenvolvidos nomes de
programas de TV – Monty Python’s Flying
Circus;
*CWI – Sigla holandesa para Centro de Matemática e Ciência da Computação
A associação com a serpente Píton ocorreu por sugestão da
editora O’Reilly, famosa por sempre colocar retratos de
animais silvestres nas capas de seus livros.
Em 21 de fevereiro de 1991 van Rossum
libera a linguagem pela primeira vez em um
newsgroup chamado alt.sources, na versão
0.9.0, licenciada com uma cópia da licença
MIT;
Atualmente existe em duas versões paralelas:
2.7.8 e 3.4.x (fase de transição);
Apesar de sua notoriedade no
desenvolvimento web, Python é utilizada em
diversas outras áreas:
◦ Aplicações desktop;
◦ Computação científica;
◦ Computação gráfica;
◦ Desenvolvimento de games;
◦ Ambiente empresarial (ERP, por exemplo).
Data de lançamento Versão
Dezembro de 1989 Implementação inicial
1990 Lançamento interno no CWI
20 de fevereiro de 1991 0.9.0 (lançado em alt.sources)
Fevereiro de 1991 0.9.1
Outono de 1991 0.9.2
24 de dezembro de 1991 0.9.4
02 de janeiro de 1992 0.9.5 (somente para Macintosh)
06 de abril de 1992 0.9.6
1992 (mês desconhecido) 0.9.7 beta
09 de janeiro de 1993 0.9.8
29 de julho de 1993 0.9.9
Data de lançamento Versão
26 de janeiro de 1994 1.0.0
15 de fevereiro de 1994 1.0.2
04 de maio de 1994 1.0.3
14 de julho de 1994 1.0.4
11 de outubro de 1994 1.1
10 de novembro de 1994 1.1.1
13 de abril de 1995 1.2
13 de outubro de 1995 1.3
25 de outubro de 1996 1.4
03 de janeiro de 1998 1.5
31 de outubro de 1998 1.5.1
Data de lançamento Versão
13 de abril de 1999 1.5.2
05 de setembro de 2000 1.6
16 de outubro de 2000 2.0
17 de abril de 2001 2.1
21 de dezembro de 2001 2.2
29 de julho de 2003 2.3
30 de novembro de 2004 2.4
16 de setembro de 2006 2.5
01 de outubro de 2008 2.6
03 de dezembro de 2008 3.0
• Nascido em 31 de janeiro de 1956;
• País: Holanda/Países Baixos
• Recebeu diploma de mestrado na
Universidade de Amsterdã em 1982;
• Trabalhou no Instituto de
Matemática e Ciência da
Computação (CWI) da Alemanha, no
Instituto Nacional de Padrões e
Tecnologia (NIST) nos EUA e na
Corporação para Iniciativas
Nacionais de Pesquisa (CNRI) nos
EUA.
Considerado pela comunidade Python como um Ditador
Benevolente Vitalício: sempre supervisiona o processo de
desenvolvimento do Python e dá a última palavra sempre que
necessário.
Definições para a linguagem
Python: Computer Programming
for Everybody
• Uma linguagem fácil e intuitiva,
mas ao mesmo tempo tão
poderosa quanto as maiores
competidoras;
• Código aberto, para que qualquer
um possa contribuir para o
desenvolvimento;
• Código que fosse tão inteligível
quanto inglês;
• Adequada para tarefas diárias,
permitindo um tempo de
desenvolvimento mais curto.
Quais as diferenças entre programar uma
linguagem de programação e programar um
software “comum”?
◦ Preocupação com o público-alvo (obviamente,
programadores);
◦ Uma linguagem é a dependência básica de todos os
outros softwares, o que torna difícil fazer mudanças
em uma linguagem.
Como se faz para depurar uma linguagem de
programação?
◦ Não se depura. =P
◦ Metodologias ágeis não fazem sentido ao se
projetar e desenvolver uma linguagem de
programação, pois poucas pessoas irão usá-la até
que ela esteja minimamente estável
Quando você criou a linguagem fazia ideia de
que tipo de programadores iria atrair?
◦ De início, profissionais usuários de sistemas UNIX
ou UNIX-like;
◦ “Python bridges the gap between C and shell
programming”: Python era originalmente uma
linguagem de script;
◦ O uso gradual do Python como ferramenta de
ensino dos princípios de programação em escolas e
faculdades foi, para Guido, um golpe de sorte;
◦ Esse tipo de uso foi favorecido por características
que o Python herdou da linguagem ABC.
Como reconhecer um bom programador?
◦ Leva tempo para reconhecer um bom programador.
Não é possível fazer isso em “uma entrevista de
uma hora”;
◦ Geralmente os bons programadores são
reconhecidos na rotina de trabalho;
◦ Características incluem criatividade, rápido
aprendizado e capacidade de escrever código sem
precisar que o código passe por muitas
revisões/correções;
O restante da
entrevista pode ser
encontrado no livro
Masterminds of
Programming, da
editora O’Reilly
Seminário - Guido van Rossum: Breve história da linguagem Python

Mais conteúdo relacionado

Mais procurados

Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto WordLeinylson Fontinele
 
Aula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoAula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoInstituto CENTEC
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Faculdade Mater Christi
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Leinylson Fontinele
 
Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos iiCarlos Melo
 
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaEstrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaLeinylson Fontinele
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoLeinylson Fontinele
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisLeandro Júnior
 
Aula: Tipos de Interface
Aula: Tipos de InterfaceAula: Tipos de Interface
Aula: Tipos de InterfaceJanynne Gomes
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Cibele Kanegae
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalRodrigo Kiyoshi Saito
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Leinylson Fontinele
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 

Mais procurados (20)

Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto Word
 
Arquitetura de Redes de Computadores
 Arquitetura de Redes de Computadores Arquitetura de Redes de Computadores
Arquitetura de Redes de Computadores
 
Aula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoAula 2 - Lógica de Programação
Aula 2 - Lógica de Programação
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
 
Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos ii
 
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaEstrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na prática
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - Apresentação
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Aula: Tipos de Interface
Aula: Tipos de InterfaceAula: Tipos de Interface
Aula: Tipos de Interface
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Aula 6 - SAM - Imagens
Aula 6 - SAM - ImagensAula 6 - SAM - Imagens
Aula 6 - SAM - Imagens
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra Relacional
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 

Destaque

Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Aprendendo python 2a edição
Aprendendo python   2a ediçãoAprendendo python   2a edição
Aprendendo python 2a ediçãoCAVN/UFPB III
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programaçãoGivanaldo Rocha
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Djangofabiocerqueira
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreÁlvaro Justen
 
Python no Celular
Python no CelularPython no Celular
Python no Celulariuridiniz
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaÁlvaro Justen
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem luaRafael Sanches
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem PythonAlex Tercete
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoBernardo Fontes
 

Destaque (20)

Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Aprendendo python 2a edição
Aprendendo python   2a ediçãoAprendendo python   2a edição
Aprendendo python 2a edição
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programação
 
REST com Python
REST com PythonREST com Python
REST com Python
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Django
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware Livre
 
Ensinando OO com Python
Ensinando OO com PythonEnsinando OO com Python
Ensinando OO com Python
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira Pythônica
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
Linguagem lua
Linguagem luaLinguagem lua
Linguagem lua
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem lua
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
Python 04 - Programação Estruturada
Python 04 - Programação EstruturadaPython 04 - Programação Estruturada
Python 04 - Programação Estruturada
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazo
 

Semelhante a Seminário - Guido van Rossum: Breve história da linguagem Python

Primeiros passos em Python - Tchelinux Uruguaiana 2011
Primeiros passos em Python - Tchelinux Uruguaiana 2011Primeiros passos em Python - Tchelinux Uruguaiana 2011
Primeiros passos em Python - Tchelinux Uruguaiana 2011Jerônimo Medina Madruga
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/DjangoÁtila Bezerra
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador PragmaticoLeonardo Fernandes
 
V Pylestra - introdução ao python
V Pylestra - introdução ao pythonV Pylestra - introdução ao python
V Pylestra - introdução ao pythonSilvio Roberto
 
Introdução ao Python: Desbloqueando o Poder da Programação
Introdução ao Python: Desbloqueando o Poder da ProgramaçãoIntrodução ao Python: Desbloqueando o Poder da Programação
Introdução ao Python: Desbloqueando o Poder da ProgramaçãoMarcelo Fabiano N. de Oliveira
 
Tudo que você sempre quis saber sobre Software Livre mas não tinha coragem de...
Tudo que você sempre quis saber sobre Software Livre mas não tinha coragem de...Tudo que você sempre quis saber sobre Software Livre mas não tinha coragem de...
Tudo que você sempre quis saber sobre Software Livre mas não tinha coragem de...Jerônimo Medina Madruga
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
Fundamentos em C# com Clean Code
Fundamentos em C# com Clean CodeFundamentos em C# com Clean Code
Fundamentos em C# com Clean CodeJuliano Sales
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o pythonRodrigo Lira
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileCloves da Rocha
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem pythonBruno Maspoli
 
Introdução ao python
Introdução ao pythonIntrodução ao python
Introdução ao pythonMaria Silveira
 

Semelhante a Seminário - Guido van Rossum: Breve história da linguagem Python (20)

Primeiros passos em Python - Tchelinux Uruguaiana 2011
Primeiros passos em Python - Tchelinux Uruguaiana 2011Primeiros passos em Python - Tchelinux Uruguaiana 2011
Primeiros passos em Python - Tchelinux Uruguaiana 2011
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Programação RAD com Python
Programação RAD com PythonProgramação RAD com Python
Programação RAD com Python
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
 
Slide
SlideSlide
Slide
 
V Pylestra - introdução ao python
V Pylestra - introdução ao pythonV Pylestra - introdução ao python
V Pylestra - introdução ao python
 
Introdução ao Python: Desbloqueando o Poder da Programação
Introdução ao Python: Desbloqueando o Poder da ProgramaçãoIntrodução ao Python: Desbloqueando o Poder da Programação
Introdução ao Python: Desbloqueando o Poder da Programação
 
Tudo que você sempre quis saber sobre Software Livre mas não tinha coragem de...
Tudo que você sempre quis saber sobre Software Livre mas não tinha coragem de...Tudo que você sempre quis saber sobre Software Livre mas não tinha coragem de...
Tudo que você sempre quis saber sobre Software Livre mas não tinha coragem de...
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Painel: Batalha de Programador
Painel: Batalha de ProgramadorPainel: Batalha de Programador
Painel: Batalha de Programador
 
Fundamentos em C# com Clean Code
Fundamentos em C# com Clean CodeFundamentos em C# com Clean Code
Fundamentos em C# com Clean Code
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Python Zope Plone - Ftec
Python Zope Plone - FtecPython Zope Plone - Ftec
Python Zope Plone - Ftec
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
 
Introdução ao python
Introdução ao pythonIntrodução ao python
Introdução ao python
 

Mais de Giancarlo Silva

[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPressGiancarlo Silva
 
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...Giancarlo Silva
 
Seminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsSeminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsGiancarlo Silva
 
Seminário - Enterprise Resource Planning (ERP)
Seminário - Enterprise Resource Planning (ERP)Seminário - Enterprise Resource Planning (ERP)
Seminário - Enterprise Resource Planning (ERP)Giancarlo Silva
 
Seminário - Comcast, conformação de pacotes e neutralidade da rede
Seminário - Comcast, conformação de pacotes e neutralidade da redeSeminário - Comcast, conformação de pacotes e neutralidade da rede
Seminário - Comcast, conformação de pacotes e neutralidade da redeGiancarlo Silva
 
Seminário - A Nationwide economiza milhões de dólares tornando-se verde
Seminário - A Nationwide economiza milhões de dólares tornando-se verdeSeminário - A Nationwide economiza milhões de dólares tornando-se verde
Seminário - A Nationwide economiza milhões de dólares tornando-se verdeGiancarlo Silva
 
WordPress: De blogs pessoais a grandes portais - Parte 2
WordPress: De blogs pessoais a grandes portais - Parte 2WordPress: De blogs pessoais a grandes portais - Parte 2
WordPress: De blogs pessoais a grandes portais - Parte 2Giancarlo Silva
 
WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1Giancarlo Silva
 

Mais de Giancarlo Silva (8)

[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
 
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
 
Seminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsSeminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web apps
 
Seminário - Enterprise Resource Planning (ERP)
Seminário - Enterprise Resource Planning (ERP)Seminário - Enterprise Resource Planning (ERP)
Seminário - Enterprise Resource Planning (ERP)
 
Seminário - Comcast, conformação de pacotes e neutralidade da rede
Seminário - Comcast, conformação de pacotes e neutralidade da redeSeminário - Comcast, conformação de pacotes e neutralidade da rede
Seminário - Comcast, conformação de pacotes e neutralidade da rede
 
Seminário - A Nationwide economiza milhões de dólares tornando-se verde
Seminário - A Nationwide economiza milhões de dólares tornando-se verdeSeminário - A Nationwide economiza milhões de dólares tornando-se verde
Seminário - A Nationwide economiza milhões de dólares tornando-se verde
 
WordPress: De blogs pessoais a grandes portais - Parte 2
WordPress: De blogs pessoais a grandes portais - Parte 2WordPress: De blogs pessoais a grandes portais - Parte 2
WordPress: De blogs pessoais a grandes portais - Parte 2
 
WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Certificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdfCertificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdfLarissa Souza
 
Apresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdfApresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdfCarlos Gomes
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfRodolpho Concurde
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)Alessandro Almeida
 
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdfConcurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdfGuilhermeRodrigues896381
 

Último (6)

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Certificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdfCertificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdf
 
Apresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdfApresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdf
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdfConcurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
 

Seminário - Guido van Rossum: Breve história da linguagem Python

  • 1. Breve história da linguagem Python Giancarlo Lima da Silva Seminário para a disciplina de Paradigmas de Linguagens de Programação Tecnologia em Análise e Desenvolvimento de Sistemas – 2014.1
  • 2. O que é Python? Os primórdios da linguagem A linguagem hoje Linha do tempo do Python Quem é Guido van Rossum? Entrevista com Guido van Rossum
  • 3. Python é uma linguagem moderna, de alto nível e de propósitos gerais desenvolvido por Guido van Rossum. Sua implementação foi iniciada em 1989; Sua filosofia enfatiza a legibilidade do código e sua sintaxe permite expressar conceitos com poucas linhas de código;
  • 4. The Zen of Python ◦ >> import this Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
  • 5. A linguagem Python foi desenvolvida por van Rossum no CWI*, tendo sido inspirada por outra linguagem, a ABC; O nome da linguagem veio da mania dos membros do grupo de van Rossum de dar aos softwares desenvolvidos nomes de programas de TV – Monty Python’s Flying Circus; *CWI – Sigla holandesa para Centro de Matemática e Ciência da Computação
  • 6. A associação com a serpente Píton ocorreu por sugestão da editora O’Reilly, famosa por sempre colocar retratos de animais silvestres nas capas de seus livros.
  • 7. Em 21 de fevereiro de 1991 van Rossum libera a linguagem pela primeira vez em um newsgroup chamado alt.sources, na versão 0.9.0, licenciada com uma cópia da licença MIT;
  • 8. Atualmente existe em duas versões paralelas: 2.7.8 e 3.4.x (fase de transição); Apesar de sua notoriedade no desenvolvimento web, Python é utilizada em diversas outras áreas: ◦ Aplicações desktop; ◦ Computação científica; ◦ Computação gráfica; ◦ Desenvolvimento de games; ◦ Ambiente empresarial (ERP, por exemplo).
  • 9. Data de lançamento Versão Dezembro de 1989 Implementação inicial 1990 Lançamento interno no CWI 20 de fevereiro de 1991 0.9.0 (lançado em alt.sources) Fevereiro de 1991 0.9.1 Outono de 1991 0.9.2 24 de dezembro de 1991 0.9.4 02 de janeiro de 1992 0.9.5 (somente para Macintosh) 06 de abril de 1992 0.9.6 1992 (mês desconhecido) 0.9.7 beta 09 de janeiro de 1993 0.9.8 29 de julho de 1993 0.9.9
  • 10. Data de lançamento Versão 26 de janeiro de 1994 1.0.0 15 de fevereiro de 1994 1.0.2 04 de maio de 1994 1.0.3 14 de julho de 1994 1.0.4 11 de outubro de 1994 1.1 10 de novembro de 1994 1.1.1 13 de abril de 1995 1.2 13 de outubro de 1995 1.3 25 de outubro de 1996 1.4 03 de janeiro de 1998 1.5 31 de outubro de 1998 1.5.1
  • 11. Data de lançamento Versão 13 de abril de 1999 1.5.2 05 de setembro de 2000 1.6 16 de outubro de 2000 2.0 17 de abril de 2001 2.1 21 de dezembro de 2001 2.2 29 de julho de 2003 2.3 30 de novembro de 2004 2.4 16 de setembro de 2006 2.5 01 de outubro de 2008 2.6 03 de dezembro de 2008 3.0
  • 12. • Nascido em 31 de janeiro de 1956; • País: Holanda/Países Baixos • Recebeu diploma de mestrado na Universidade de Amsterdã em 1982; • Trabalhou no Instituto de Matemática e Ciência da Computação (CWI) da Alemanha, no Instituto Nacional de Padrões e Tecnologia (NIST) nos EUA e na Corporação para Iniciativas Nacionais de Pesquisa (CNRI) nos EUA. Considerado pela comunidade Python como um Ditador Benevolente Vitalício: sempre supervisiona o processo de desenvolvimento do Python e dá a última palavra sempre que necessário.
  • 13. Definições para a linguagem Python: Computer Programming for Everybody • Uma linguagem fácil e intuitiva, mas ao mesmo tempo tão poderosa quanto as maiores competidoras; • Código aberto, para que qualquer um possa contribuir para o desenvolvimento; • Código que fosse tão inteligível quanto inglês; • Adequada para tarefas diárias, permitindo um tempo de desenvolvimento mais curto.
  • 14. Quais as diferenças entre programar uma linguagem de programação e programar um software “comum”? ◦ Preocupação com o público-alvo (obviamente, programadores); ◦ Uma linguagem é a dependência básica de todos os outros softwares, o que torna difícil fazer mudanças em uma linguagem.
  • 15. Como se faz para depurar uma linguagem de programação? ◦ Não se depura. =P ◦ Metodologias ágeis não fazem sentido ao se projetar e desenvolver uma linguagem de programação, pois poucas pessoas irão usá-la até que ela esteja minimamente estável
  • 16. Quando você criou a linguagem fazia ideia de que tipo de programadores iria atrair? ◦ De início, profissionais usuários de sistemas UNIX ou UNIX-like; ◦ “Python bridges the gap between C and shell programming”: Python era originalmente uma linguagem de script; ◦ O uso gradual do Python como ferramenta de ensino dos princípios de programação em escolas e faculdades foi, para Guido, um golpe de sorte; ◦ Esse tipo de uso foi favorecido por características que o Python herdou da linguagem ABC.
  • 17. Como reconhecer um bom programador? ◦ Leva tempo para reconhecer um bom programador. Não é possível fazer isso em “uma entrevista de uma hora”; ◦ Geralmente os bons programadores são reconhecidos na rotina de trabalho; ◦ Características incluem criatividade, rápido aprendizado e capacidade de escrever código sem precisar que o código passe por muitas revisões/correções;
  • 18. O restante da entrevista pode ser encontrado no livro Masterminds of Programming, da editora O’Reilly