10 motivos para aprender a programar em Python

Mais um post de continuação sobre desenvolvimento web com software livre, hoje abordarei o Python.

Porém, o post de hoje será mais objetivo. Apresentarei o Python para vocês dando 10 motivos para aprender a programar com esta maravilhosa linguagem de programação:

1. Livre e de código aberto

Não poderia deixar de mencionar isto como o primeiro item da lista. Python está sob a licença Python Software Foundation License, que é similiar a GPL com excessão de que pode-se distribuir os binários da linguagem sem necessitar anexar os fontes;

2. Multiplataforma

Por ser uma linguagem interpretada, Python roda em qualquer sistema que possua o seu interpretador. Além disso há “dialetos” Python como o já famoso Jython, uma forma de escrever Python em Java;

3. Alto Nível

Python é uma linguagem de alto nível, de desenvolvimento rápido (RAD – Rapid Application Development) e que segue técnicas de DRY (Don’t Repeat Yourself) e KISS (Keep It Simple Stupid), é inteligível como o Inglês e sempre evita o implícito;

4. Orientada a Objetos

A orientação a objetos no Python é explícita e muito divertida. Aliás, tudo para o Python são objetos e pacotes (inclusive tipos “primitivos”), mas nada que impeça que você programe de uma forma estruturada ou funcional. Isto tecnicamente faz do Python uma linguagem multiparadigma;

5. Tipagem dinâmica forte

Isso quer dizer que você pode atribuir a uma variável qualquer tipo de valor e em qualquer momento do seu código fonte. Porém, Python não permite que você tente concatenar uma string com um valor inteiro, por exemplo;

6. Sintaxe

A sintaxe do Python é uma das suas mais fundamentais características. Em Python um bloco de código (por exemplo um if) é feito através de indentações. Isso força o desenvolvedor a endentar seu código fonte e garante uma boa legibilidade.

Além de reduzir o uso de caracteres “esotéricos” como ->, ::, :=, {, }, etc. com Python você é capaz de escrever um for que testa uma determinada sequência e monta uma lista com (acredite) uma linha apenas;

7. Frameworks

Além de multiplataforma e multiparadigma, com o Python você é capaz de desenvolver para qualquer tipo de ambiente, seja desktop, web ou móvel. Para isso o Python conta com excelentes frameworks que auxiliam desde o desenvolvimento web, até o desenvolvimento de jogos ou algorítmos científicos de cálculos avançados;

8. Mercado

Contando com usuários ilustres como o Youtube, EVE Online, Firaxis Games e Google, o Python vem ganhando mercado gradativamente e entre os entendidos do assunto já virou uma linguagem bastante cultuada mas pouco aplicada nas empresas brasileiras;

9. Documentação

Este é outro ponto forte da linguagem. No site da comunidade brasileira você tem uma lista de fontes de estudos que é só um aperitivo do imenso conteúdo que você pode encontrar na Web;

10. Divertido

Acredite ou não, Python é extremamente divertido. Posso afirmar com toda a convicção que esta linguagem reacendeu a minha paixão pelo mundo da programação, infelizmente apagada pelos anos de PHP e pelas aulas de Delphi na faculdade.

Você tem outros motivos para aprender a programar em Python? Compartilhe conosco abaixo!

Klaus Peter Laube

Mais artigos deste autor »

Tecnólogo em Análise e Desenvolvimento de Sistemas pelo Centro Universitário de Jaraguá do Sul (UNERJ). Desenvolvedor Web de longa data, apaixonado por Python e defensor dos padrões Web. Escreve quando pode no http://www.klauslaube.com.br.


17 Comentários

Jackson Caset
1

Já esta na minha lista de metas para esse ano. Qual o editor que vc esta utilizando?
Baixei o plugin pydev para o Aptana, mas ainda não testei. Gostaria da tua opinião.
Abraço

Klaus Peter Laube
2

Também utilizo o PyDEV, só que com o Eclipse. Para mim é um excelente recurso e facilita muito inclusive no desbravamento da linguagem. Inclusive o uso para desenvolver em Django e ele acessa recursos da framework sem problemas…
Há desenvolvedores que dizem que “programar de verdade” é usar editores mais focados, como Komodo, TextMate, SCITe. Ou ainda mais “hardcore” como Vim e Emacs. Mas sinceramente, o PyDEV me permite um desenvolvimento fácil e rápido, e com o uso do Eclipse sou capaz de ter um auxílio em diversas linguagens sem precisar utilizar outro editor.

caetano
3

tipagem forte?
vc diz isso?
class str2(str):
def __add__(self,vlr):
if type(vlr) == int:
return str.__add__(self,str(vlr))
else:
return str.__add__(self,vlr)
n = str2(“caetano”)
print “>>>”, n + 2
>>> caetano2

Cleiton Mittmann
5

Realmente o python é muito divertido, sem falar que ele é power…Ele esta fazendo meus dias encostado nessa cama mais emocionantes…=]
E Klaus, eu ainda estou tendo pesadelos a noite por causa daquelas aulas de delphi…

Chris Benseler
6

Especificamente ser tipado é muito bom, ao meu ver (item 5).
Mas acho péssimo qualquer linguagem que use a identação como divisor de bloco de códigos… (item 6)

José Macedo
7

Tirando os itens 6 e 7, eu diria que vc estava descrevendo o PHP, com a exceção de que a documentação do PHP é MUITOOOO melhor do que a de Python..
Mas não vou comparar linguagens.. hehehe até pq a próxima coisa que quero fazer no mundo da programação é aprender Python! Só ouço dizer muito bem… principalmente para rotinas pesadas!

Cristian Stroparo
8

Não concordo com “com a exceção de que a documentação do PHP é MUITOOOO melhor do que a de Python..” Já li muito de ambas, e sinceramente, acho as duas muito boas, nenhuma melhor que a outra, e se fosse pra escolher, iria com o Python, mas puramente por gosto e por ter o feeling que seu conteúdo é muito mais completo e o conteúdo é melhor disposto nos links/seções e também de forma mais coesa e mais acessível (eu acesso com menos clicks o que eu quero no site/doc do Python).

Carlos
9

Klaus, qd vc diz “Livre e de código aberto”, quer dizer que o que o programador desenvolver em python tb ficará aberto pra outros? Ou seja, meu aplicativo desenvolvido no python ficará aberto pra quem quiser ver ou copiar?

Edson
11

Olá, eu sei um pouco de Python e C++, e queria tentar aplicar o que sei para criar por exemplo apps. Porém, não conheço muito sobre o processo, vou colocar minha dúvidas:
1- Tem algum site em que eu ache explicações de como escrever o programa do app, tipo com algumas dicas?
2- depois que eu escrever, como faço para sei lá, salvar ele num formato de arquivo que possa ser rodado num celular android?
3- E finalmente, se um dia eu quiser colocá-lo na play store, como faço?
Como eu disse, sei pouco ainda, nas aulas tanto do curso técnico quanto da faculdade eu aprendi mais como usar listas, string, então foi uma ênfase no básico.

Klaus Peter Laube
12

Edson,
O Kivy é uma boa porta de entrada no que tange desenvolvimento com GUI, multiplataforma, que rode em Android: https://kivy.org/
A documentação do framework é bem completa, e você poderá responder muitas dessas perguntas dando uma rápida lida.
Obrigado.

Ednelson Amaral
13

Cadê a resposta de Caetano sobre sobre sua própria pergunta respondida por Klaus Peter?
Fiquei curioso. Acredito que para questionar sobre os benefícios de uma linguagem precisa ter um bom conhecimento.
caetano
17 de maio de 2009 às 15:43
——————————————–
Klaus Peter Laube
18 de maio de 2009 às 9:38

Jan Palach
14

De todos os comentários, o do Caetano chamou mais atenção, ele tentou tirar uma com o fato do Python ter tipagem dinamica e forte, mas a única coisa que conseguiu mostrar, é que nao entende sequer o que tipagem dinamica pura e simples quer dizer. Parabéns fera.

Robson
15

Não conheço Python e trabalho como analista de sistemas a mais de 10 anos. Me ajudem a entender qual a vantagem real dele, por favor:
O VB.NET (Visual Basic .Net), por exemplo, também se escreve com as palavras do inglês tal qual se fala e não usa caracteres (sic) “exóticos”. Nele, podemos declarar uma variável como Object e ela poderá receber valores de qualquer tipo, inclusive classes instanciadas. E você também pode trabalhar com variáveis de tipagem definida na declaração (as integer, as short, as string). Porquê? Porque declarar variáveis não tipadas nem sempre é uma vantagem.
Se o sistema precisa escalar em memória, por exemplo, o correto é tipar para conseguir controlar o uso de memória do computador (porque o tipo integer ocupa muito menos blocos de memória que o tipo integer, por exemplo). Por isso, a vantagem real seria ter as duas formas de declarar variáveis disponíveis programador (tipada e não tipada), como ocorre no VB.Net. Ou o Python é tão inteligente que consegue gerenciar memória de forma eficiente mesmo trabalhando com variáveis não tipadas? Duvido muito. Prefiro eu mesmo gerenciar isso.
Outro detalhe: alguma IDE onde se programa Python é tão robusta quanto o Visual Studio? Alguma delas tem algum recurso análogo ao Intellisense, ou seja, suporta deixar o desenvolvedor expiar os valores dessas variáveis (especialmente essas de tipo indefinido)? E quanto ao CodeLens? E todos os outros recursos do Visual Studio (tracking de erros, etc)? PS: acho que existe um “dialeto” (?) do Python dentro do framework .Net e que usa o Visual Studio como IDE principal. Só que existem muito mais empresas trabalhando com VB.Net do que com Python.Net. Então, qual a vantagem real? É open-source também?
Depender de identação para separar blocos é uma desvantagem, assim como não permitir conversão automática entre de string para inteiro (na maioria das vezes). Essas 2 coisas coisas, por exemplo, não são desvantagens no VB.Net ou são parametrizáveis via IDE.
Em suma, todas as vantagens citadas, o VB.Net também tem, e as diferenças não são ecessariamente vantagens – quando não são desvamtagens, ao meu ver. Então, aos que gostam do Python: vocês conhecem VB.Net? Conhecem o framework .NET? O Visual Studio? Qual a vantagem dele sobre o VB.Net, tomando-o como exemplo?
Ao que me parece, o único diferencial do Python é ser open-source. O VB.Net não é, mas está MUITO mais consolidado nas empresas. Ok. E O que mais o Python tem a oferecer? Ou seja, porque valeria a pena usar Python, se trabalhar com uma linguagem open source não for vantagem significativa? Não me impressionei – pelo menos, não ainda.
Abraços.

Klaus Peter Laube
16

Robson,
Muito obrigado pela sua participação. Vamos lá:
– Desconheço o VB.NET, embora conheça alguns profissionais que a utilizem e estão felizes (principalmente com a plataforma .NETe C#). Portanto, antes de mais nada, esse não é um post sobre “vantagens de Python contra o VB”, e sim “motivos para aprender Python”.
– Sobre o gerenciamento de memória: Concordo. Existe um trade-off em relação a performance quando o assunto é tipagem estática ou dinâmica. Acontece que em alguns cenários essa “limitação” pode ser contornada com alguma boa solução de design/arquitetura do sistema. A “motivação” aqui é exatamente deixar com que o interpretador resolva isso para você, deixando o seu código (na minha opinião) mais fácil de manusear. Se formos levar esse argumento ao pé da letra, seria razoável assumir que toda linguagem compilada “é melhor” que a interpretada.
– Você não precisa de um IDE para programar em Python. Mas se você quiser, a opção mais popular hoje é o Pycharm, da JetBrains: https://www.jetbrains.com/pycharm/ – Que inclusive possui soluções para .NET e Visual Studio. Pycharm possui a “versão da comunidade” que é free e open source, e possui a “versão corporativa”. Já usei Pycharm e recomendo.
– Indentação é obrigatória no Python, sim. Mas novamente, não é uma questão de “configurar IDE”. É apenas consistência de escrita de código: Você pode fazer indentação com 2, ou 4 espaços, desde que isso seja coerente dentro do teu módulo Python.
– Vale ressaltar novamente que desconheço VB.NET. Mas a motivações para utilizar Python vão um pouco além de possuir um IDE ou não. Talvez as comparações do site oficial possam ajudar (https://www.python.org/doc/essays/comparisons/). Sobre VB.Net ser “muito mais consolidado nas empresas”, acredito que isso deva variar de acordo com o nicho de mercado que você esteja inserido. Se você está imerso em um ambiente mais corporativo, que dependa das soluções que giram em torno da plataforma Microsoft, é provável que haja um maior número de usuários. No nicho que estou imerso, é muito comum ver Python (e raro ver VB.Net), principalmente falando de Data Science, Machine Learning e Engenharia de Dados em geral. Se formos usar a TIOBE como parâmetro, Python leva ligeira vantagem em relação ao VB.NET: https://www.tiobe.com/tiobe-index/
– A motivação do post não é “largue a sua linguagem atual”, logo, se o VB.NET apresenta os mesmos pontos fortes, ótimo! 🙂
Abaixo eu listo algumas referências mais atuais (já que esse post é de 2009) que talvez possam agregar um pouco mais na sua decisão de experimentar ou não Python:
http://www.bestprogramminglanguagefor.me/why-learn-python
https://www.fullstackpython.com/why-use-python.html
https://medium.com/@anthonypjshaw/why-i-swapped-c-net-for-python-as-my-default-language-and-platform-and-wont-be-going-back-e0063a25e491
https://www.quora.com/What-is-Python-mainly-used-for-in-the-real-world-today-Is-it-beneficial-to-use-Python-for-desktop-apps
http://www.skilledup.com/articles/reasons-to-learn-python
https://www.python.org/about/apps/
Muito obrigado pelo comentário!

Paulo Roberto Costa
17

Com relação ao Delphi:
O contato com outras linguagens me surpreendeu no ponto produtividade, e não posso dizer que positivamente:
Muitos procedimentos que você consegue implementar com meia dúzia de linhas no Delphi, se transfomam em páginas de codificação.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!