criando em 1989 por Guido van Rossum
python 3.0 (2008) não é backward compatible com o 2.0
2.7 é a ultima versão da familia 2.0
Guido deixou de ser o ditador benevolente vitalicio do python em 2018 por causa deste PEP 572
CPython é a “padrão”
micropython - para sistemas embarcadso
IronPython - para o .NET
JPython - converte para bytecode do Java
pypy - JIT compiler (compila so funcoes em metodos muito usados em tempo de execução)
pypy normalmente esta de 1 a 2 números abaixo a subversão do CPython pypy3 está na versão 3.6.9
O ambiente de execução do CPython nao permite paralelismo (interno - automático) por causa do GIL- global interpreter lock
não há paralelização automática -esse comando esta demorando muito então já começe o outro
o programador pode explicitamente criar codigo que explicitamente roda em threads (start/synchronize/etc) mas provavelmente ele não roda realmente me threads https://realpython.com/intro-to-python-threading/
ha uma paralelismo em batch - outro Python sera inicializado e eles se comunicam usando pipes mas não ha memoria compartilhada multiprocessing e concurrent.futures
esses podem criar um “modelo de memoria compartilhada” para o programador mas nao é realmente compartilhada no baixo nivel
para obter paralelismo de threads (dentro do mesmo processo) é preciso que o codigo tenha sido escrito em C. Isso é o caso para o numpy, pandas, etc. Uma funçao do numpy pode rodar varios threads em paralelo.