![O próximo desafio de TI tem tudo a ver com velocidade e autoatendimento](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706252863_O-proximo-desafio-de-TI-tem-tudo-a-ver-com-150x150.jpg)
O próximo desafio de TI tem tudo a ver com velocidade e autoatendimento
26 de janeiro de 2024![Featued image for: 2022 a Golden Year as JavaScript Moves to the Edge](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706257835_2022-e-um-ano-dourado-a-medida-que-o-JavaScript-150x150.jpg)
2022 é um ano dourado à medida que o JavaScript avança para o limite
26 de janeiro de 2024Como o Python evolui? Stack Overflow explorou o assunto em seu podcast, com Pablo Galindo Salgado — um dos principais desenvolvedores do Python e uma das cinco pessoas no conselho diretor do Python.
Salgado também foi o gerente de lançamento dos dois últimos grandes lançamentos, Python 3.10 (em outubro de 2021) e 3.11 (outubro de 2022), que ele brinca no podcast “parece muito chamativo, mas é só a pessoa que aperta os botões para obter os binários fora, que não é o trabalho mais na moda, mas alguém precisa fazer e de vez em quando é bom…
“A propósito, uma vez quebramos o GitHub.”
Python 3.11 foi finalmente lançado. Na equipe de lançamento do CPython, nos esforçamos muito para tornar a 3.11 a melhor versão possível do Python. Melhores tracebacks, Python mais rápido, grupos de exceções e exceto*, melhorias de digitação e muito mais. Obtenha aqui: https://t.co/WNlHRrD8Gg pic.twitter.com/WHpc86TTwd
—Pablo Galindo Salgado (@pyblogsal) 24 de outubro de 2022
O que transparece na palestra é uma paixão pela língua que acontece em vários níveis. Tudo começa com os desenvolvedores e o comitê que mantêm e expandem a linguagem para sua comunidade leal. No entanto, essa mesma comunidade também está a ajudar a desenvolver a linguagem, não apenas aplicando-a a novos domínios de problemas, mas também colaborando em processos abertos para identificar as suas novas funcionalidades mais necessárias. Python está ajustando a linguagem para aplicações de ciência de dados e IA, e procurando maneiras de evitar impactos no desempenho do Global Interpreter Lock do Python.
Mas embora o futuro possa reservar um Python mais rápido e com melhor desempenho, é esta comunidade de usuários apaixonados e comprometidos que ajudará a fazer isso acontecer…
Mudança e Compatibilidade
A mudança está sempre acontecendo. Como desenvolvedor principal, Salgado ajudou a implementar o novo analisador e o compilador Python. A versão 3.12 do Python incluiu melhorias para as strings literais formatadas do Python (ou “f-strings”, as strings especiais com variáveis que são substituídas por valores em tempo de execução). E Salgado disse ao Dice.com em janeiro que os objetivos de longo prazo incluem a compatibilidade do WebAssembly e a melhoria do sistema de digitação do Python, sua interface de usuário e suas mensagens de erro.
Mas outro objetivo de longo prazo é manter a compatibilidade com versões anteriores. Em um podcast anterior do Stack Overflow, Salgado admitiu que o número de pessoas que ainda usam Python 2 “não é zero… Mas fico feliz em dizer que é muito, muito pouco. Acho que está na casa das dezenas…”
A quebra de compatibilidade retroativa do Python com o Python 2 permanece uma memória persistente – que ainda paira sobre seus esforços para mudar o Global Interpreter Lock do Python. “Sabemos o que aconteceu do Python 2 ao Python 3”, disse Salgado mais tarde na entrevista. “Aprendemos essa lição e não queremos repeti-la nem um pouco, e isso é muito importante para nós”.
Interface com IA
Galindo foi questionado sobre empresas interessadas em aplicar IA generativa e grandes modelos de linguagem – e se ele vê isso levando a novos frameworks Python ou recursos de linguagem. Mas ele respondeu com uma observação sincera sobre a equipe principal. “Temos sido muito ruins em prever qual seria a grande novidade em Python.” Quer se trate de desenvolvimento web e da estrutura web Django, ciência de dados ou (hoje) IA generativa, “estamos sempre um pouco atrasados”.
O Python responde parcialmente concentrando-se na flexibilidade, diz Salgado. “Tentamos disponibilizar todos os fluxos de trabalho possíveis, ou tantos quanto possível, com Python.” Por exemplo, Salgado diz que viu frameworks de IA – escritos em linguagens compiladas rápidas como Rust, C++ ou Swift – que ainda possuem uma camada de Python no topo para interação. É essa flexibilidade que “permite que você continue e lhe dá esse impulso como desenvolvedor” – e, claro, a camada Python no topo permite iterações rápidas e a fácil interatividade de uma linguagem interpretada. “Você faz um pequeno experimento e algo acontece e você pode ter feedback instantâneo – e então você pode mudar as coisas, e não precisa esperar pela compilação e tudo mais.”
Salgado acredita que as comunidades que trabalham em IA com grandes bases de código apreciam os benefícios da sintaxe opcional de “dica” do Python para indicar tipos de variáveis (e a forma como ela permite ferramentas de verificação de tipo). Os físicos apreciam a modificação da sintaxe que lhes permite alertar as ferramentas de verificação de tipo sobre o uso de matrizes multidimensionais de formato estranho, diz ele no podcast.
Salgado também lembrou quando o Python adicionou seu operador de multiplicação de matrizes. É um símbolo @ independente que significa uma operação matemática popular em que o valor nas colunas de uma matriz é multiplicado pelos valores das linhas em outra matriz em um processo que, em última análise, cria uma terceira matriz. Salgado lembrou disso como um momento em que “na verdade mudamos a linguagem para ajudar essas comunidades… isso era principalmente para o pessoal da ciência de dados”, onde esta operação é muito utilizada.
Em entrevista ao Dice.com em janeiro, Salgado destacou o operador de multiplicação de matrizes como um bom exemplo de como a linguagem evolui. Como disse Salgado em 2021, “Python é desenvolvido abertamente, principalmente por voluntários. Como resultado, quaisquer problemas devem ser resolvidos através de uma parceria entre a comunidade, a equipe principal de desenvolvimento e o Conselho Diretor do Python.
“Às vezes isso torna as coisas um pouco mais desafiadoras porque não há um esforço coordenado para abordar alguns desses desafios. Por outro lado, muitos membros da equipe principal de desenvolvimento e da comunidade Python em geral estão interessados nesses problemas e estão ativos na investigação de diferentes soluções…
“O facto de o desenvolvimento ser feito de forma aberta, principalmente por voluntários, cria alguns desafios, mas também permite que qualquer pessoa dê o seu contributo e participe. Isso muitas vezes resulta em soluções muito melhores do que aquelas que seriam alcançadas por um conjunto muito controlador de desenvolvedores, todos com experiências semelhantes.”
Sobre esse bloqueio global de intérprete
Os podcasters tiveram que perguntar sobre o incômodo Global Interpreter Lock do Python, que impede o processamento paralelo (então, na melhor das hipóteses, diz Salgado, “os threads estão alternando entre si, mas você nunca pode ter dois threads executando código Python ao mesmo tempo”. ) Mas os principais desenvolvedores do Python estão abordando isso – explorando uma opcional bloqueio de limitação de thread – especificamente porque eles perceberam uma necessidade dentro de sua comunidade de usuários. “No momento, sentimos que no mundo da ciência de dados, e especialmente no mundo da IA, existem todas essas bibliotecas superparalelas em C++ e elas não podem realmente aproveitar todo o poder da coisa por causa dessa restrição.” Portanto, para comunidades de IA/ciência de dados, “isso permitirá que eles aproveitem esses fluxos de trabalho paralelos quando talvez você não tenha muita comunicação nos threads ou esteja aproveitando o poder bruto real das bibliotecas C++”.
As pessoas abordaram o problema, mas é difícil. (“Obviamente você pode resolver isso, mas isso significa que agora o Python tem o dobro do comprimento, então isso provavelmente não é aceitável.”) Mas a comunidade de usuários do Python se recuperou novamente, quando no ano passado Sam Gross, engenheiro de software da Meta AI, realmente implementou uma versão de prova de conceito da linguagem de referência CPython do Python sem o Global Interpreter Lock – e “de uma forma que não tem tanto impacto no desempenho”, diz Salgado.
Salgado descreve a possibilidade como “uma coisa muito impactante… e especialmente para as pessoas que trabalham com inteligência artificial e ciência de dados, porque lhes permitirá aproveitar esses fluxos de trabalho paralelos quando você não tem muita comunicação nos threads, talvez, ou você está aproveitando o poder bruto real das bibliotecas C++.”
Quando questionado sobre como o Python pode acompanhar as tendências e atividades (além de adicionar novos recursos), Salgado diz que eles estão mais focados em manter a produtividade dos desenvolvedores — e “No momento, acho que para nós o que é mais importante é que o Python não não atrapalhe.” Ele reconhece o Global Interpreter Lock como um caso “quando isso acontece, infelizmente…”
Um futuro emocionante
Então, quando os entrevistadores encerraram perguntando o que há de interessante no futuro do Python, Salgado revisitou a possibilidade de mudar o Global Interpreter Lock. “Gostaria de pensar que existe um mundo onde isso pode realmente acontecer, só porque tem bloqueado muitos fluxos de trabalho possíveis”.
Mas esse não é o único esforço para acelerar o Python. Salgado também ficou entusiasmado com a equipe de Guido von Rossum na Microsoft e seu trabalho para acelerar a implementação de referência CPython do Python (a implementação padrão e mais amplamente usada). “Não será tão rápido quanto C++, então se alguém estiver pensando isso, será uma verificação da realidade… Mas a velocidade livre é importante… você não precisa mexer em nada e então você obtém velocidade livre! “
Há muito tempo, o documento seminal Zen of Python entoava que “Deve haver uma – e de preferência apenas uma – maneira óbvia de fazer isso.” Então, os entrevistadores perguntam se isso cria uma tensão para a comunidade gestora da língua – ou um medo de introduzir múltiplo maneiras de fazer as coisas?
Declarando-se culpado, Salgado admite que o Python quebra essa regra mais claramente com a formatação de stream. “Acho que temos seis maneiras de fazer isso!” Mas ele acrescenta que, no mundo real, “é impossível ser onisciente e saber a melhor maneira de fazer isso”. Então, quando se trata de encontrar uma maneira de fazer isso, Salgado tem uma resposta pronta.
“Eu modificaria a frase para dizer que deve haver apenas um muito bom maneira de fazer isso.”
A postagem Como o Python está evoluindo apareceu pela primeira vez no The New Stack.