Porque é que o Python não é adequado como linguagem de desenvolvimento de aplicações móveis?
tl;dr versão: PSF fez a migração para Python 3 como prioridade para a comunidade, o que matou as inovações pitônicas durante 2006-2016, que foi o momento determinante na história das tecnologias Web modernas & Mobile Technologies.
Aqui está a verdadeira resposta. O lançamento do Python 3 foi a causa raiz deste problema.
Python 3 foi lançado em 2006 e não descolou' não descolou tão rapidamente como a PSF esperava. A fim de superar a gravidade do Python 2.7 eles tiveram que matar deliberadamente Python 2 usando numerosas estratégias, a estratégia principal é parar de adicionar novas funcionalidades ao Python 2.7 (a.k.a simplesmente abandonando a linguagem de tipagem dinâmica mais popular do mundo daquela época)
No contraste, havia várias comunidades que continuavam a re-portar novas funcionalidades Python 3 para Python 2.7, o que atrasou ainda mais a adaptação do Python 3. Então eles têm que pressionar o kill switch declarando como Python 2.7 como legado apesar das consequências, você tem que lembrar que Python 2 estava tendo o mais moderno conjunto de funcionalidades daquela época comparado com C, C++, Perl, Java, etc. Não havia nada legado sobre ele.
O período de transição de 10 anos foi um grande pesadelo no pior dos casos, comunidades (esp proprietários de bibliotecas) foram forçados a manter seu código compatível tanto com 2 & 3, o que causou o custo do teste para o sky-rocket, isso impactou os desenvolvedores' liberdade de pensamento, livre fluxo de idéias, etc. O que antes era uma linguagem simples e elegante de repente se tornou uma responsabilidade porque se "esperava" que você escrevesse tanto em Python 2 & 3. Produtividade foi a coisa original que tornou Python popular, o que não foi a experiência durante a transição.
No total de 10 anos os Pytonistas não estavam codificando em Python 2 nem em Python 3 havia um código entre as linguagens (Python X) cheio de hodgepodge hacks aqui e ali sem documentação clara, havia diretrizes oficiais suficientes para portar para Python 3 mas não para manter o código em Python 2 & 3 já que eles genuinamente não esperavam que tal problema surgisse.
Portar de 2 -> 3 foi fácil para um usuário final, mas como um dono de biblioteca manter para 2 & 3 foi um pesadelo. Muitas bibliotecas foram simplesmente abandonadas.
A experiência de aprendizagem de Python via internet foi sempre baixa, questões de Googling levavam a posts em blogs e Stackoverflow que tinha snippets para Python 2. Todo conhecimento arquivado (mesmo tão simples como 'ordenar uma dita') teve que ser reescrito mais uma vez para Python 3 e etiquetado com versões Python apropriadas. Esta parte causou grande confusão para iniciantes e tornou o JavaScript como uma possível primeira linguagem. A maioria das respostas do Stack overflow deixou de funcionar de repente desde que foram escritas originalmente para Python 2. Novas respostas não foram escritas, pois muitas vezes fazer a mesma pergunta para o Python 3 fará com que a pergunta seja rejeitada, bloqueada & apagada ou marcada como duplicada por moderadores menos informados que não estavam cientes deste problema específico do Python, também o Stackoverflow não foi projetado para conversar sobre questões de múltiplas versões de uma mesma linguagem de programação.
Great tools like WxPython, PyQT, PySide became old & oblivious because 'Python 3' foi subitamente imposto como prioridade. (Imagine você como desenvolvedor de código aberto, de repente a PSF/comunidade declara seu trabalho como depreciado, você pode perder o espírito, você não se importaria muito, foi o que aconteceu com 100s de bibliotecas, grandes bibliotecas foram declaradas legadas até mesmo pensando que estavam funcionando bem, só porque a PSF queria empurrar Python3. Não foi realmente para matar bibliotecas 100s só porque o autor não tinha tempo/interesse em portar(a.k.a manter em 2&3)
A experiência de portar para Python 3 não foi tão fácil como você imagina ou a PSF pensou. Para um desenvolvedor pode estar simplesmente mudando para 2 para 3. Mas para um dono de biblioteca é tudo sobre 'manter' 2 e 3 ao mesmo tempo, com custo adicional de teste.
Então, todos testemunharam que durante 2006 a 2016 não houve inovação ou coisas inovadoras acontecendo no mundo Python's, eles estavam ocupados em resolver a transição Python 3 (porting & maintaining) e liberar pequenas funcionalidades por mal conseguirem manter as cabeças na água. No entanto, todos nós sabíamos que 2006-2016 foi o momento decisivo da tecnologia web e tecnologias móveis.
JavaScript começou a dominar todos os lugares com frameworks revolucionários e novas formas de fazer as coisas (como IO sem bloqueio, tomadas web, etc) enquanto a comunidade Python estava a dar a volta por cima na limpeza da confusão. Python 3 é bom, mas mal programado. É por isso que Python não't tem uma estrutura de plataforma cruzada adequada para mobile.
Enquanto C# tem Xamarin, JS tem Cordova & Titanium, até Lua tem Corona, mas Python equivalente Kivy e PyQT continuam a empatar. No entanto, Python terá um forte futuro na aprendizagem da máquina, PNL, estatística e computação científica. Então, para repetir o ponto que Python perdeu o que mereceu de 2006-2016, mas vai dominar o que realmente merece de 2016-2026, infelizmente o desenvolvimento móvel (front-end) não é um deles.
Artigos semelhantes
- O que é mais difícil, o desenvolvimento de aplicações web ou móveis? O que é mais difícil, web ou desenvolvimento de aplicações móveis?
- Qual é a diferença entre linguagem de máquina, linguagem de montagem e linguagem de alto nível em computadores?
- Que linguagem de programação é melhor para o desenvolvimento de aplicações móveis em 2020?
- Qual é a melhor linguagem de programação para o desenvolvimento de aplicações móveis híbridas?