Perguntas Frequentes

Quem vem de outra linguagem, já tem muito bem definido os processos e ferramentas que utilizam para desenvolver software. Quando eu digo que programo em Python, as reações são sempre muito similiares. Tudo começa com um sonoro:

- Nossa! Em Python?

E em seguida começa uma série de perguntas sobre a linguagem. Eu listei algumas delas aqui.

Python é compilada?

Não!

Python é uma linguagem interpretada. Você pode também escrever bibliotecas Python utilizando C ou C++ [1], isso não é muito comum, mas necessário em alguns casos.

Provavelmente, se você está acostumado com linguagens compiladas, uma das preocupações que você terá será em como distribuir a sua aplicação sem ceder o código-fonte.

Acho que essa não é uma preocupaçãoa muito relevante, a não ser que você esteja fazendo alguma aplicação para desktop, que será distribuída de forma orgânica e que você não terá controle sobre quem irá instalar a sua aplicação, você consegue resolver isso de forma jurídica, através de contratos.

Se sua aplicação, rodar em um servidor - uma aplicações web -, por exemplo, você pode limitar o acesso do seu cliente aos servidores. Hoje em dia, boa parte das linguagens modernas são interpretadas. Não vejo isso como um grande problema.

Qual IDE utilizar?

Digo mais uma vez que Python é uma linguagem extremamente simples e isso facilita um bocado na hora de programar e dar manutenção nos projetos.

Por isso, não há uma real necessidade de uma IDE complexa e cheia de recursos para programar em Python. Na verdade, você ṕode programar em Python utilizando qualquer dispositívo em que seja possível bater meia dúzia de teclas.

Certa vez, esqueci o meu editor de texto aberto, minha gatinha passou sobre o teclado e quando fui ver, ela havia feito um “Hello World” em Python.

Eu particularmente, utilizo o Vim [2], há uma infinidade de editores bons. Vejo muitos programadores Python utilizando o Atom e o Sublime.

Existem também IDEs comerciais e cheia de recursos para quem está acostumado como Visual Studio (que inclusive tem uma versão que suporta Python [3]), Netbeans [4] e Eclipse [5], como o PyCharm [6], que acredito eu, seja a IDE mais completa para desenvolvimento Python.

Só roda no Linux?

Não!

Eu não sei onde nem quando surgiu esse mito de que Python é uma linguagem exclusiva para ambientes Linux, mas é apenas lenda urbana.

Até um tempo atrás, dependendo do que você fosse fazer, era muito melhor utilizar um sistema operacional Unix-like. Instalar uma biblioteca compilada no Windows era um suplício. Mas até esse tipo de biblioteca já está mais fácil de instalar hoje em dia.

Temos também ferramentas como o Docker, que utilizando o conceito de containers, permite que tenhamos um ambiente Linux dentro do Windows, Mac e o próprio Linux de forma muito mais simples do que se utilizassemos virtualização. É uma excelente prática para manter a compatibilidade com o ambiente em que o seu software irá rodar.

Nota

Docker é uma ferramenta poderosíssima e tem ganhado bastante destaque nas comunidades open sources.

Recomendo muito que estudem e apliquem em seus projetos. Existem excelentes ferramentas de orquestração como o Docker Compose que facilitam e muito essa tarefa.

Dá pra desenvolver Web em Python?

Dá e como dá! Python é excelente para desenvolver Web, dos projetos que eu participei utilizando Python, eram em sua grande maioria, projetos web.

Existe um set imenso de Frameworks [7] que nos ajudam nessa tarefa. Entre os mais populares estão o Django [8] e o Flask [9].

Padrão de Codificação

Assim como a maioria das linguagens, Python também possui um padrão de codigicação ela está é descrina na PEP8 [10]. Haverá um capítulo desse livro para falar a respeito disso.

Existem algumas coisas que para programadores de outras linguagens como Java podem aparecer absurdas. Mas como tempo, você não só se acostuma, mas consegue ver que aquele padrão torna seu código muito mais legível.

Footnotes

[1]Extending Python with C or C++
[2]Configurações do meu Vim
[3]Ferramentas Python para Visual Studio
[4]Python support in NetBeans (em inglês)
[5]PyDev (em inglês)
[6]PyCharm (em inglês)
[7]Web Frameworks for Python (em inglês)
[8]Django - The web framework for perfectionists with deadlines. (em inglês)
[9]Flask Web development, one drop at a time. (em inglês)
[10]PEP 8 – Style Guide for Python Code