Pythonando
1.71K subscribers
305 photos
7 videos
9 files
728 links
Dicas diárias de python, IA, e softwares comerciais
Download Telegram
————————————————————————————-
————————————————————————————
Acabou de sair uma aula completa sobre Map e Filter com python.
———————————————————————————
última aula já está no ar pessoal
——————————————————————————————
Vídeo completo no canal sobre serialização de dados com pickle em Python
PYTHON É LENTO ? 👇👇
Uma das perguntas que eu mais recebo sobre os iniciantes em python, muitas vezes programadores de outras linguagens que está aprendendo python é mas caio "O python não é muito lento ?" e eu já vou adiantar para você o python realmente não é a linguagem mais performática do mundo, mas calma quando o java estava em alta sempre diziam a mesma coisa "mais java é muito lento... consome muita memória" e o java até hoje é usado em sistemas mega robustos de grandes corporações.

É óbvio que existem alguns problemas que irá exigir alta performance para isso temos linguagens como Assembly, c ou fortran, mas o python não foi criado para ser um linguagem de alta performance e o fato dela não ser a linguagem mais rápida não significa que não devemos usá-la.

O python é uma linguagem de multifunções desde aplicações web, data science a aplicações desktop. Entendermos por que o python é tão abrangente é essencial para sabermos por que ele não é a linguagem mais rápida e porque ele é mais rápido do que muita gente pensa.

O python só consegue rodar em diversos sistemas operacionais por utilizar de uma máquina virtual diferente de linguagens como c ou c++ que são compiladas diretamente para instruções de máquina o python é transformado em bytecode que é uma camada entre o seu código fonte e o código de máquina esse bytecode por fim é interpretado através da maquina virtual python,

que provavelmente você está utilizando o Cpython que é a mvp mais famosa, temos que entender que a uma diferença entre a linguagem de programação python e sua máquina virtual, a linguagem python nada mais é que seus princípios, regras sintáticas, semânticas e léxicas, seu interpretador nada mais é que um código responsável por traduzir seu código escrito em python para instruções de máquina.

se você precisa de um código mais rápido em python é sim possível, e existem algumas formas de fazer isso, podemos utilizar Psyco ou Unladen Swallow mas vou entrar mais em detalhes sobre o Pypy que é uma alternativa para o Cpython o Pypy utiliza da técnica JIT ou just in time, linguagens como c ou c++ são compiladas antes de sua execução o JIT compila um programa em tempo de execução, isso trás a vantagem de linguagens compiladas que é a sua velocidade mas trás também a flexibilidade de linguagens interpretadas e é exatamente isso que o PyPy faz sendo ele capaz de acelerar em até 4.3 vezes seu código quando comparado ao Cpython, Além de muitas vezes o PyPy gastar menos memória que Cpython mas como a própria documentação do Pypy afirma o gasto de memória só será relevante em programas que gastam centenas de MB ou mais o PyPy também tem alta compatibilidade com bibliotecas populares do python como o Django
—————————————————————————————————
Você provavelmente conhece a frase "Write once. Deploy everywhere." que ficou famosa com a JVM, mas sabia que é possível desenvolver para windows, linux e mobile com python ?
Você provavelmente conhece a frase "Write once. Deploy everywhere." que ficou famosa com a JVM, mas sabia que é possível desenvolver para windows, linux e mobile com python ? muitas pessoas não enxergam que o python também está no mundo mobile ou quando enxergam pensam apenas no kivy, mas existem algumas outras formas muito mais simples de desenvolver mobile com python além do kivy
Uma delas é o Beeware um framework que te disponibiliza interfaces ricas e nativas, suporte as bibliotecas python e de código aberto
Uma outra alternativa é o Enalm native, como os próprios desenvolvedores dizem, ele foi feito para ser o react native python, para definir a interface é utilizado uma linguagem baseada em python chamada Enalm, ainda possuem layouts com flex box, gerenciamento próprio de pacotes, depuração remota como no react native.