Por que python não é a linguagem de programação do futuro

35

lentidão, problemas de tempo de execução, e problemas de desenvolvimento de aplicativos móveis condenam seu futuro

A comunidade de programação levou algumas décadas para apreciar python. Mas desde o início dos anos 2010, ele vem crescendo — e eventualmente superando C, C#, Java e JavaScript em popularidade.

Mas até quando essa tendência vai continuar? Quando python eventualmente será substituído por outras línguas, e por quê?

Colocar uma data exata de validade em Python seria tanta especulação, que poderia muito bem passar como Ficção Científica. Em vez disso, avaliarei as virtudes que estão impulsionando a popularidade de Python agora, e os pontos fracos que a quebrarão no futuro.

O que torna Python popular agora

O sucesso do Python se reflete nas tendências stack overflow , que medem a contagem de tags em postagens na plataforma. Dado o tamanho do StackOverflow, este é um bom indicador para a popularidade do idioma.

Instantâneo de tags em várias linguagens de programação no StackOverflow.

Embora r tenha sido planalto ao longo dos últimos anos, e muitas outras línguas estão em um declínio constante, o crescimento de Python parece imbatível. Quase 14% de todas as perguntas do StackOverflow são marcadas como “python”, e a tendência está subindo. E há várias razões para isso.

É velho.

Python existe desde os anos noventa. Isso não significa apenas que teve muito tempo para crescer. Também adquiriu uma grande e solidária comunidade.

Então, se você tiver algum problema enquanto estiver codificando no Python, as chances são altas de que você será capaz de resolvê-lo com uma única pesquisa no Google. Simplesmente porque alguém já terá encontrado o seu problema e escrito algo útil sobre ele.

É amigável para iniciantes.

Não é apenas o fato de que ele existe há décadas, dando aos programadores tempo para fazer tutoriais brilhantes. Mais do que isso, a sintaxe de Python é muito legível para humanos.

Para começar, não há necessidade de especificar o tipo de dados. Você acabou de declarar uma variável; Python entenderá pelo contexto se é um inteiro, um valor flutuante, um booleano ou outra coisa. Esta é uma grande vantagem para iniciantes. Se você já teve que programar em C++, você sabe o quão frustrante é o seu programa não vai compilar porque você trocou um carro alegórico por um inteiro.

E se você já teve que ler código Python e C++ lado a lado, você saberá o quão compreensível python é. Embora o C++ tenha sido projetado com o inglês em mente, é uma leitura bastante esburacada em comparação com o código Python.

É versátil.

Desde que o Python existe há tanto tempo, os desenvolvedores fizeram um pacote para todos os propósitos. Hoje em dia, você pode encontrar um pacote para quase tudo.

Quer triturar números, vetores e matrizes? NumPy é o seu cara.
Quer fazer cálculos para tecnologia e engenharia? Use SciPy.
Quer fazer sucesso em manipulação e análise de dados? Dê uma chance ao Pandas.
Quer começar com Inteligência Artificial? Por que não usar Scikit-Learn?

Qualquer tarefa computacional que você está tentando gerenciar, as chances são de que há um pacote Python para ele lá fora. Isso faz com que o Python fique por dentro dos desenvolvimentos recentes, pode ser visto a partir do aumento no Machine Learning nos últimos anos.

As desvantagens do Python — e se elas serão fatais

Com base nas elaborações anteriores, você pode imaginar que python permanecerá em cima de sh*t por idades que virão. Mas como toda tecnologia, python tem suas fraquezas. Vou passar pelas falhas mais importantes, uma a uma, e avaliar se são fatais ou não.

velocidade

Python é lento. Tipo, muito lento. Em média, você precisará de cerca de 2 a 10 vezes mais tempo para completar uma tarefa com Python do que com qualquer outro idioma.

Há várias razões para isso. Uma delas é que é digitado dinamicamente — lembre-se que você não precisa especificar tipos de dados como em outros idiomas. Isso significa que muita memória precisa ser usada, pois o programa precisa reservar espaço suficiente para cada variável que ela funciona em qualquer caso. E muito uso de memória se traduz em muito tempo de computação.

Outra razão é que o Python só pode executar uma tarefa de cada vez. Isso é uma consequência de tipos de dados flexíveis — o Python precisa garantir que cada variável tenha apenas um tipo de dados, e processos paralelos podem estragar isso.

Em comparação, seu navegador web médio pode executar uma dúzia de tópicos diferentes ao mesmo tempo. E há outras teorias por aí, também.

Publicações Relacionadas

Mas no final do dia, nenhum dos problemas de velocidade importa. Computadores e servidores ficaram tão baratos que estamos falando de frações de segundos. E o usuário final realmente não se importa se seu aplicativo carrega em 0,001 ou 0,01 segundos.

âmbito

Originalmente, Python era dinamicamente escopo. Isso basicamente significa que, para avaliar uma expressão, um compilador primeiro pesquisa o bloco atual e, em seguida, sucessivamente todas as funções de chamada.

O problema com o escopo dinâmico é que toda expressão precisa ser testada em todos os contextos possíveis — o que é tedioso. É por isso que a maioria das linguagens de programação modernas usam escopo estático.

Python tentou fazer a transição para o escopo estático, mas estragou tudo. Normalmente, os escopos internos — por exemplo, funções dentro das funções — seriam capazes de ver e alterar escopos externos. Em Python, os escopos internos só podem ver escopos externos, mas não alterá-los. Isso leva a muita confusão.

Lambdas

Apesar de toda a flexibilidade dentro do Python, o uso de Lambdas é bastante restritivo. Lambdas só pode ser expressões em Python, e não ser declarações.

Por outro lado, declarações e declarações variáveis são sempre declarações. Isso significa que lambdas não podem ser usados para eles.

Essa distinção entre expressões e afirmações é bastante arbitrária, e não ocorre em outras línguas.

Espaços brancos

Em Python, você usa espaços brancos e recuos para indicar diferentes níveis de código. Isso torna-o opticamente atraente e intuitivo de entender.

Outras línguas, por exemplo C++, dependem mais de aparelhos e ponto e vírgula. Embora isso possa não ser visualmente atraente e amigável para iniciantes, torna o código muito mais mantenedor. Para projetos maiores, isso é muito mais útil.

Línguas mais novas como Haskell resolvem este problema: eles dependem de espaços brancos, mas oferecem uma sintaxe alternativa para aqueles que desejam ficar sem.

Desenvolvimento Móvel

Como estamos testemunhando a mudança do desktop para o smartphone, é claro que precisamos de linguagens robustas para construir software móvel.

Mas poucos aplicativos móveis estão sendo desenvolvidos com python. Isso não significa que não possa ser feito — há um pacote Python chamado Kivy para este fim.

Mas python não foi feito com o celular em mente. Assim, mesmo que possa produzir resultados passáveis para tarefas básicas, sua melhor aposta é usar um idioma que foi criado para o desenvolvimento de aplicativos móveis. Algumas estruturas de programação amplamente utilizadas para dispositivos móveis incluem React Native, Flutter, Iconic e Cordova.

Para ficar claro, laptops e computadores desktop devem estar por perto por muitos anos. Mas como o mobile superou o tráfego de desktop por muito tempo, é seguro dizer que aprender Python não é suficiente para se tornar um desenvolvedor experiente.

Erros de tempo de execução

Um script Python não é compilado primeiro e depois executado. Em vez disso, ele compila toda vez que você executá-lo, de modo que qualquer erro de codificação se manifesta no tempo de execução. Isso leva ao baixo desempenho, ao consumo de tempo e à necessidade de muitos testes. Tipo, muitos testes.

Isso é ótimo para iniciantes, já que os testes ensinam muito. Mas para desenvolvedores experientes, ter que depurar um programa complexo em Python faz com que eles desajarem. Essa falta de desempenho é o maior fator que define um timetamp no Python.

O que poderia substituir Python no futuro — e quando

Há alguns novos concorrentes no mercado de linguagens de programação:

  • Rust oferece o mesmo tipo de segurança que python tem — nenhuma variável pode ser substituída acidentalmente. Mas resolve o problema de desempenho com o conceito de propriedade e empréstimo. É também a linguagem de programação mais amada dos últimos anos, de acordo com o StackOverflow Insights.
  • Ir é ótimo para iniciantes como Python. E é tão simples que é ainda mais fácil manter o código. Ponto divertido: os desenvolvedores de go estão entre os programadores mais bem pagos do mercado.
  • Julia é uma linguagem muito nova que compete de frente com Python. Ele preenche a lacuna de cálculos técnicos em larga escala: Geralmente, um teria usado Python ou Matlab, e corrigido tudo com bibliotecas C++, que são necessárias em grande escala. Agora, pode-se usar Julia em vez de malabarismo com duas línguas.

Enquanto há outras línguas no mercado, Rust, Go e Julia são as que consertam patches fracos de Python. Todas essas linguagens se destacam em tecnologias ainda por vir, principalmente em Inteligência Artificial. Embora sua participação de mercado ainda seja pequena, como refletido no número de tags StackOverflow, a tendência para todas elas é clara: para cima.

Instantâneo de tags em várias linguagens de programação no StackOverflow.

Dada a popularidade onipresente do Python no momento, certamente levará meia década, talvez até um todo, para qualquer uma dessas novas línguas substituí-lo.

você pode gostar também