Comecei a aprender Python e gostaria de ter um pouco mais de contexto sobre a linguagem.
Sei que, em muitos casos, Python é uma linguagem lenta em relação ao C ou C ++. Portanto, o Python provavelmente não é a melhor escolha para aplicativos que precisam ser executados o mais rápido possível.
Fora isso, parece que o Python é uma ótima linguagem de uso geral fácil de ler e escrever. As bibliotecas disponíveis oferecem uma enorme quantidade de funcionalidades. Fora dos aplicativos críticos de desempenho, onde é uma má escolha usar o Python (e por que)?
Respostas:
Software destinado a destinos incorporados com recursos limitados. A maioria dos processadores neste planeta não pode executar o Python devido a recursos insuficientes ou ninguém portou uma versão para essa arquitetura. A maioria dos processadores, mesmo agora, possui menos de um megabyte de memória.
fonte
Os dois lugares que me lembram são coisas que exigem muita concorrência, para as quais eu usaria Erlang. Ou computação numérica de serviço pesado, que provavelmente tentaria usar o Fortran.
fonte
Como o Python é uma linguagem de tipo dinâmico, sem verificação em tempo de compilação, será difícil refatorar um grande projeto Python que não possui testes de unidade extensos.
Portanto, se você tem um projeto grande que precisa ser mantido e modificado por um longo tempo e sua equipe não está comprometida em criar testes automatizados para tudo, é melhor usar Java ou C #.
fonte
Se o foco principal for o desenvolvimento da GUI do Windows, recomendo o CPython, pois há uma falta de bons designers de formulários (em comparação ao uso do .Net).
No entanto, o IronPython é executado no .Net e você tem dois IDEs com designers de formulários para escolher: Visual Studio e SharpDevelop. De fato, as Ferramentas Python para Visual Studio podem ser usadas para CPython e IronPython, o que é bastante interessante, embora eu ainda não tenha tentado ...
fonte
Isso realmente depende do que você quer dizer com "má escolha".
Se você quer dizer aplicações em que o uso do Python é muito difícil, existem relativamente poucas: a principal que vem à mente e ainda não foi mencionada é o código que requer altos níveis de correção em idiomas com sistemas de tipos sofisticados (Haskell, linguagens de tipo dependente ) são melhores opções.
Se você quer dizer aplicativos em que o Python está abaixo do ideal (ou seja, há melhores opções), existem mais, mas também são mais subjetivos. Por exemplo, em minha experiência reconhecidamente limitada, trabalhar em compiladores e intérpretes é muito mais fácil com tipos de dados algébricos, correspondência de padrões e recursos mais funcionais do que o Python. No entanto, listar exaustivamente aplicativos como esse é impossível, pois eles variam por pessoa.
fonte
É ideal para criar scripts rapidamente, por causa de sua capacidade expressiva e grande variedade de bibliotecas de suporte.
A verificação dinâmica de tipos e a falta de declaração explícita de variáveis a tornam uma má escolha para grandes projetos que envolvem centenas de milhares ou mesmo milhões de linhas de código. O mesmo vale para sistemas de missão crítica ou de segurança. Em um sistema aviônico, por exemplo, seria completamente inaceitável que um sistema falhasse devido a um erro que poderia ter sido detectado em tempo de compilação.
fonte
Bem, assim como você, também estou começando com o Python. Mas para mim no contexto de aprendizado de máquina e ciência de dados.
Também acabei de adquirir todo o conhecimento novo sobre Java 8 e suas novas bibliotecas orientadas a fluxo.
Eu realmente amei a sensação fluida das novas bibliotecas de fluxo Java 8 e o quão perto eu estava devido às bibliotecas Apache spark. Quando entrei no Python, esperava o mesmo e mais.
Eu vi mais. Mas muito menos. Má documentação, embora houvesse bastante; sem fluidez e, na verdade, fiquei adivinhando se um método reinava em um novo objeto ou se opera sobre ele; nada perto de um mapa / reduzir etc. Fiquei surpreso ao ficar desapontado.
Desde o início, no entanto, eu não tinha grandes expectativas de como seria fácil aprender o idioma. Eu estava certo: inconsistente, pouco intuitivo, difícil de aprender. Mas essa foi apenas a minha experiência de ser muito bom em tudo o que o Java gosta.
fonte