Em que tipo de aplicações eu usaria Python?
Python é uma linguagem de uso geral que pode ser empregada em vários tipos de problemas. A biblioteca padrão inclui módulos para processamento de texto e expressões regulares, protocolos de rede (HTTP, FTP, SMTP, POP, XML-RPC, IMAP), acesso aos serviços do sistema operacional, criptografia, interface gráfica etc. Além da biblioteca padrão, existe uma grande variade de extensões adicionais para todo tipo de aplicação.
Python é tipicamente usado em aplicações web e como linguagem de scripting para administração de sistemas. A facilidade de integração com C faz de Python uma linguagem embutida atrativa em aplicações de maior porte. A possibilidade de uso de componentes COM faz de Python uma alternativa mais agradável (e barata) ao Visual Basic. Finalmente, com o uso de ferramentas como o freeze ou Py2Exe é possível distribuir aplicações Python stand-alone, sem que o usuário tenha que instalar o interpretador Python separadamente.
Praticamente tudo o que se faria com qualquer linguagem de programação, seja ela interpretada ou compilada pode-se se fazer com python: protótipos de sistemas, automatizar tarefas repetitivas como manipulação de texto, cópia de arquivos e outros. Pode-se também criar programas que funcionam no modo texto, tanto interativos como servidores (ou daemons). Pode-se fazer programas em modo gráfico usando a interface nativa do seu sistema, ou então utilizando Tk, GTk, Qt, wxWidgets e tantas outras.
Em que tipo de aplicações eu não usaria Python?
Em teoria pode-se fazer qualquer coisa com a linguagem (é Turing completa , mas na prática, devido à recursos de CPU, implementação e uso de memória isso nem sempre é possível. Aplicações que exigem manipulações de baixo-nível são mais complicadas de se fazer (por exemplo, troca de contexto em um Sistema Operacional), rotinas relacionadas a controladores de dispositivos que exigem respostas muito rápidas são pouco adequados também de se fazer em Python, para isso é melhor utilizar uma linguagem compilada como C/C++ ou então reescrever partes críticas como módulos em C de um programa principal em Python.
O Python também não é muito bom quando se trata de threads. Se sua aplicação precisa de ter muitos deles ou precisa de certas funções como prioridades entre eles, provavelmente você não poderá contar com o Python em seu estado atual. Deve ser lembrado, porém, que existe suporte a threads e em muitos casos ele é suficiente (por exemplo, para delegar a um thread a GUI e a outro o trabalho duro).
- Miguceamma and JeffMalm curtiram esta postagem