Qual é a melhor IDE para Django?
Há tempos que venho mantendo o IMHO ligado a 100% quando este assunto é tocado por alguém pessoalmente ou na comunidade, mas enfim, resolvi tira-lo do OFF para este artigo, já que a sensação na realidade é de saco cheio com esse assunto.
Longe de querer evangelizar pessoas a usarem o gVim [1] (veja também a lista de editores para Python [2]), a minha intenção aqui é alertar quanto à ilusão que se tem com IDEs e editores, focando em seus recursos preguiçosos no lugar de em suas ferramentas para produtividade real.
Há uma visão distorcida generalizada quanto à palavra produtividade. A máxima foi evoluída por ferramentas consideradas "produtivas", como Delphi, Visual Basic, Access e outras ferramentas menos populares onde a competição sempre foi oferecer mais e mais recursos prontos, movimentos de mouse, ferramentas visuais e code-templates.
Ocorre que à época que essas ferramentas foram criadas as alternativas eram Clipper, DataFlex, FoxPro e até mesmo Cobol, e na febre do marketing da mudança do ambiente console para ambiente gráfico, foi criada a ilusão de que tudo que é visual é mais rápido e produtivo que em modo texto.
Doce ilusão.
Uma ferramenta como o Delphi, com milhares de itens no menu e seus complementos é tão fácil de operar quanto o painel colorido e piscante de um Boeing 747 na cabina do piloto. E o pior: o avião está caindo.
Obviamente, não há comparações entre uma ferramenta exageradamente visual a alguns recursos de editor. Mas a premissa é a mesma, com dosagens diferentes.
Mas vamos supor que você goste de autocomplete, um dos recursos mais cosiderados quando se procura um editor.
A cada vez que você precisar digitar um import, basta digitar os primeiros caracteres e o editor irá exibir uma caixa de seleção com alternativas com o mesmo prefixo e você irá escolher uma das opções.
Isso reserva pelo menos quatro reflexões (reserve pelo menos 1 minuto para cada ponto abaixo):
A quantidade de vezes que você pressionou uma tecla é realmente menor que a necessária para digitar a expressão manualmente?
O trabalho de levar o braço até o mouse de forma a escolher a opção desejada é realmente menor que o trabalho de digitar a expressão manualmente?
Se fosse em uma situação em um editor sem esses recursos (no servidor, por exemplo), você conseguiria digitar essa expressão sem dificuldade?
A memória, processador e leitura no HD de forma a indexar, localizar e exibir as alternativas é tão curta que compense a espera?
Refletiu?
Agora leia este meu caso: todas as vezes que eu precisava escrever um signal, eu copiava o bloco de codigo com uma linha de comentário, 2 imports e algumas linhas com um signal qualquer de algum arquivo já pronto e fazia as modificações. Consequência: eu nunca sabia fazer isso sozinho, eu não me lembrava da lógica de funcionamento dos signals, e simplismente não sabia onde no código do framework estariam os signals de models, o que atrapalhava meu raciocínio sobre como os signals funcionam.
Tomei a seguinte medida: parei de fazer isso, nas primeiras vezes eu escrevi algumas coisas erradas mas fui acertando mais e mais até isso se tornar uma tarefa rotineira e então eu consegui ter uma visão ampla de como os signals funcionam e como eles estão modularizados.
Parece bobo, mas é assim mesmo que funciona. E cá entre nós: você acha mesmo que procurar um arquivo, abrí-lo e copiar um bloco de codigo semelhante ao que eu precisava era mais produtivo e mais rápido do que digitar manualmente?
DRY fala das coisas que devem ser feitas de forma reutilizável, não do seu hábito em copiar essas coisas e espalhar códigos semelhantes e mal pensados pela aplicação. E DRY também não se trata de ter preguiça de pensar, na verdade DRY existe para distribuir as coisas de forma clara de forma que você possa pensar mais amplamente, mas sem se esquecer da essência.
Agora, para finalizar: qual é o editor ou IDE ideal para se trabalhar com Django?
Isso - claro - vai depender de seu gosto pessoal, mas ao instalá-lo, desabilite todos os recursos criados para preguiçosos e use o que ele tem de melhor: teclas de atalho, abas, buscas por regex, integrações com software de versionamento e o que mais tiver. Faz bem para você.
E também não é demais ressaltar: com um raciocínio rápido e bom conhecimento em profundidade, sua produtividade estará relacionada à rapidez que você consegue criar a solução e não na rapidez que consegue escrever uma gambiarra ;)
| [1] | http://www.vim.org/ |
| [2] | http://www.pythonbrasil.com.br/moin.cgi/IdesPython |
Marinho Brandão
comentou há 3 months, 3 weeks:
Eu uso o Komodo Edit. É um IDE muito bom, gratuito (há uma versão paga com mais funcionalidades), e serve não só para Python como para outras linguagens. A razão porque o uso é principalmente pela versatilidade de poder usar o mesmo IDE tanto em linux como em mac, e poder usar para programar em Python, PHP e Perl. Tem code completion e tudo.
Só para Python, muitos usam o Eric IDE. Pode ser outra opção.