Python utiliza a duck typing (tipagem dinâmica), que nada mais é do que definir um tipo para a variável, com as operações que podem ser aplicadas, antes mesmo de ela ter sido criada, com base em conhecimento prévio do programa. Esta tarefa é executada pelo interpretador. Tipagem dinâmica significa que o próprio interpretador do Python infere o tipo dos dados que uma variável recebe, sem a necessidade que você, o usuário da linguagem diga de que tipo determinada variável é.
Assim como Python hoje existem inúmeras linguagens no mercado que são fortemente tipadas.
Referenciando especificamente o Python para explicar a questão: Tipagem forte significa que o interpretador do Python avalia as expressões (evaluate) e não faz coerções automáticas entre tipos não compatíveis (conversões de valores), ou seja, não mistura os tipos. Uma string não se mistura com um inteiro
- É uma linguagem de alto nível: Devido ao alto nível de abstração da linguagem Python e sintaxe simples, é uma linguagem fácil de aprender dispensando preocupações com detalhes de baixo nível como o gerenciamento da memória.
- É uma linguagem interpretada: Os códigos fonte em Python são transformados em uma linguagem intermediária que será interpretada para a linguagem de máquina dinamicamente durante a execução do programa ao contrário das linguagens compiladas, onde os códigos fontes são transformados diretamente em linguagem de máquina e de maneira estática.
- É uma linguagem de tipagem dinâmica e forte: Como uma linguagem de tipagem dinâmica, o interpretador de Python é responsável por deduzir o tipo das variáveis, ou seja, não é necessário declarar o tipo das variáveis como em C, onde os tipos são estáticos.
A princípio, o Python é uma das linguagens de programação mais populares por aí, e sites inteiros – como Instagram, Reddit e Mozilla – foram construídos sobre ele. As principais vantagens são legibilidade, fluxo lógico e o uso de bibliotecas para realizar mais trabalhos com menos código. Como o Python é modular e extensível, ele pode combinar fortemente com a Internet das Coisas (IoT, sigla em inglês). Assim, vamos analisar os prós e contras do Python quando usados em sistemas de IoT. Diferentemente das linguagens de alto nível, como C++ ou Java, o Python é customizado para implementar a lógica de negócios diretamente no nível do dispositivo. Assim, isso reduz a quantidade de dados a serem tratados.
Esteja você desenvolvendo soluções de IoT do zero ou interagindo com sensores, atuadores e dispositivos secundários, o Python entende suas necessidades. É fácil aprender, depurar e o código pode ser transportado livremente de uma máquina para outra. Um dos maiores benefícios do Python é o suporte a bibliotecas externas versáteis, incluindo bibliotecas da IoT. O Pycharm, um IDE popular para Python, permite adicionar uma biblioteca com muita facilidade se você tiver um arquivo de rascunho externo que pode variar do Amazon Redshift ao JSON e XML.
Se você estiver trabalhando com aplicativos móveis, o Python é lento e inconveniente. Por exemplo, a Alexa Skills usa JavaScript/Node.js. De acordo com o Google Developers, toda a programação do Google Assistant é escrita em Node.js, Go, C++ e Java.
Limites de velocidade Como cada linha do Python deve ser interpretada separadamente, pode causar uma execução lenta. Problemas com o banco de dados Por fim, os bancos de dados usados no Python precisam ser importados um por um, o que pode ser uma fonte de dor de cabeça para o desenvolvimento avançado de aplicativos.
Portanto, o Python é uma linguagem muito importante no desenvolvimento da IoT, uma vez que possui usos incríveis no Raspberry Pi e funciona com bibliotecas neurais e de IA avançadas. No entanto, atualmente, ele é usado apenas como uma linguagem de programação de backup por redes populares de IoT, como Amazon e Google. Assim, é provável que isso mude no futuro, já que o Python tem muitos usos devido à sua simplicidade