Pitão. Uma linguagem que torna mais fácil pensar

Olá, Habr!



Podemos pré-encomendar a tão esperada segunda edição do livro " Simple Python ". A tradução da primeira edição saiu em 2016 e continua entre os mais vendidos até hoje.







Por estarmos convencidos de que Python é a melhor linguagem de programação para iniciantes, bem como para trabalhar com ciência de dados e aprendizado de máquina, hoje oferecemos a você a tradução de várias postagens de cosmovisão do site do Dropbox, onde Guido van Rossum encerrou sua carreira - sobre o significado e a indispensabilidade da linguagem Python.



Nada caracteriza o século 21 mais do que a influência generalizada da programação. Quase tudo o que fazemos, principalmente no trabalho, é feito por meio de um monitor, feito por meio de um monitor, que mostra os resultados de um trabalho computacional colossal, que hoje consideramos natural. Para aqueles 99,7% da raça humana que não estão envolvidos com programação, tudo isso acontece como num passe de mágica. Como observou o grande escritor de ficção científica Arthur Clarke: "Qualquer tecnologia suficientemente avançada é indistinguível da magia".



Claro, isso não é mágica. Mas a programação é um processo complexo e multinível, o tamanho das bases de código em empresas sérias de tecnologia é medido em milhões de linhas de código. Quando você pensa sobre como um sistema real pode ser implementado no nível do código, você pensa sobre a complexa interação de diferentes funções ao longo do tempo. Seu código pode ser mais ou menos complexo no nível da estrutura, mas a complexidade inerente é inerente à tarefa que você está resolvendo e tal complexidade não pode ser reduzida a algo mais simples.



Ser um programador não é apenas gerar ideias, e você não durará muito nesta profissão se não souber como descrever suas ideias em código com precisão cirúrgica. “Estou um pouco cético de que o pensamento sistêmico seja o mais importante neste caso, já que é muito mais fácil delinear uma ideia de um sistema do que pegar essa ideia e transformá-la em código funcional”, diz Guido van Rossum, criador e aposentado The Generous Life Dictator of Python ... A web ainda é JavaScript e o Java roda 2,5 bilhões de telefones Android, mas o Python se tornou o padrão de fato em programação geral e educação.



Quem mais fez para tornar mais fácil para muitas pessoas codificar suas ideias foi Guido van Rossum, que dedicou 30 anos de sua vida à linguagem Python. Além disso, ele o fez com graça despretensiosa e humor silencioso. O nome da linguagem vem do grotesco programa de comédia "Monty Python", e não da cobra birmanesa. Sem mais delongas, a linguagem de programação Python tornou possível simplificar algumas coisas na programação, especialmente para compreensão.



Para entender como van Rossum fez isso, vamos dar uma olhada na história da computação e entrar na era dos mainframes e da linguagem de máquina. "O mainframe é uma máquina de um milhão de dólares, e os salários combinados de todos os seus programadores são apenas alguns centavos em comparação com o custo do mainframe", diz Rossum. Portanto, é lógico que o tempo da máquina fosse considerado uma prioridade mais alta do que o tempo humano. "Mas ao lidar com estações de trabalho desktop e PCs, percebi que é hora de mudar a atitude em relação à relação entre o custo do tempo humano e o tempo da máquina." Van Rossum não se considera o primeiro a notar essa mudança, mas ele realmente a enfatizou ao projetar a linguagem Python.



Essa ideia simples de "máquina para o homem, não homem para a máquina" é a essência de toda a filosofia da linguagem Python. Especificamente, o fato de ser uma linguagem interpretada, e não compilada, implica que o programador veja o efeito do código escrito assim que o escreve, sem ter que recompilá-lo após cada alteração. Hoje, essa prática é muito comum, mas há muitos anos ela era percebida de forma ambígua, pois parecia certo que quanto mais rápido o computador, melhor. A redefinição dessa crença teve um efeito positivo significativo na produtividade do programador.



“Existem muitos problemas de programação comuns que são mais fáceis de resolver em Python”, afirma van Rossum. - "Para aqueles que ainda não são programadores, mas querem se tornar um, o limite para entrar em Python é especialmente baixo." Na verdade, muitos cursos de programação estão começando a se afastar do Java em favor do Python porque é muito mais compreensível para iniciantes. As razões por trás dessa transição são complexas, com muitos fatores, cada um dos quais eliminou algumas arestas. A essência da filosofia está no cerne de todas as melhorias: tudo deve ter um propósito. Quando não há código redundante, é mais fácil se concentrar no que você realmente precisa se concentrar. “Em Python, cada caractere que você digita é importante”, diz van Rossum.



Essa concisão garante que o Python seja fácil de obter resultados tangíveis, e é por isso que a linguagem é amplamente usada. “Também é importante como apresentamos o Python a programadores novatos. Você pode mostrar a uma pessoa pequenos pedaços de código com os quais você pode trabalhar, quase sem entender a terminologia e os conceitos de programação como tais, até que você os entenda ", explica van Rossum," enquanto no menor programa Java você encontrará um monte de símbolos que parecerão ondulações aos olhos não iniciados. "



Com um design de linguagem tão calmo e simples, é mais fácil entender o que está acontecendo no código. “Python parece incrivelmente descritivo para mim”, diz van Rossum. “Quando leio Python, definitivamente percebo sua estrutura como dois níveis, não como um nível. Isso provavelmente ocorre porque o recuo é importante em Python e talvez porque eu apenas gosto de pensar visualmente. "



Claro, o pensamento visual não é peculiar apenas a ele. Todos nós pensamos assim até certo ponto. Mas ele enfatiza especialmente o papel do componente visual na atividade cognitiva. “Se o texto estiver mal formatado, isso pode me enfurecer. Então, a análise do fluxo de texto fica confusa na minha cabeça e, nesse sentido, realmente pode-se argumentar que penso em Python ”, admite van Rossum. "Sou muito melhor em assimilar código se estiver bem formatado." A indentação no código é arbitrária, então mais informações são necessárias para desvendar o significado do código do que se cada indentação tivesse um propósito claro, como em Python. Portanto, é conveniente trabalhar com Python: você precisa digerir menos informações para entender o que está acontecendo.



Python não é apenas legível em termos de tipografia, mas também conceitualmente. Van Rossum acredita que Python talvez seja mais preciso do que outras linguagens de programação para nossa percepção visual das estruturas representadas no código, porque "em Python, a aderência à estrutura é obrigatória".



Clive Thompson, autor de CODERS", Diz que" enquanto me preparava para escrever o livro, conversei com muitos desenvolvedores que estão completamente apaixonados por Python. Quase todo mundo, sem exceção, disse algo como "Python é lindo". Eles gostaram da legibilidade e acharam fácil ter um vislumbre do código Python e entender seu propósito. Esta linguagem, desprovida de colchetes, com linhas dispostas como prateleiras arrumadas, realmente lembra a poesia moderna. " Eles também acham que Python é divertido de escrever, o que é muito mais importante do que pode parecer à primeira vista. Thompson escreve que "quando você conhece um programador, vê à sua frente uma pessoa cujo principal trabalho diário está cheio de fracassos infinitos e frustrações opressivas".



Quando o respeito pelo tempo do programador é embutido em uma linguagem, isso se reflete de uma forma interessante na comunidade linguística. Existe uma filosofia social que vem do Python: o programador é responsável por seu código, sabendo que o está escrevendo para outras pessoas. Há uma tese tácita que o próprio van Rossum promove ativamente em seus textos e palestras: gaste um pouco mais de tempo e torne isso um pouco mais fácil para a pessoa que lerá seu código no futuro. Mostrar seu próprio respeito aos colegas e mostrar que valoriza o tempo deles é uma ética que van Rossum discretamente promove em todo o mundo. “Você escreve código principalmente para se comunicar com outros programadores e, em menor grau, para impor sua vontade ao computador”, diz ele.

A versatilidade da cultura em torno do Python permitiu parte da visão que van Rossum tinha em mente cerca de vinte anos atrás, quando lançou o projeto de curta duração CP4E (Computer Programming For Everyone). “Normalmente não posso me orgulhar de um talento visionário. As pessoas me perguntam o que o futuro reserva para Python, e eu não sei. Mas minha profecia mais importante, considero a tese de que chegará o momento em que aprender programação será conveniente para todos. " Naquela época, os computadores pessoais já existiam há cerca de 20 anos, mas a maioria deles eram máquinas de escrever e calculadoras badaladas. Então van Rossum se perguntou: "Não é loucura que tantas pessoas tenham computadores, mas tão poucas aprendam a programar?"



Desde então, ele tem simplificado a programação constantemente, e esse trabalho pode ser facilmente rastreado até o desenvolvimento do Python, que agora atingiu a versão 3.7. Você, Rossum, continua a acreditar que a programação instila habilidades geralmente úteis, em particular, a capacidade de resolver problemas, seguir cuidadosamente uma direção ou outra e compreender o significado dessa direção. Mas ele também descobriu que “há introduções à programação que são interessantes para as crianças, embora não para todos; portanto, não acho que a programação deva ser incluída no currículo escolar como uma disciplina obrigatória. "



Ao mesmo tempo, hoje já não é tão importante para uma pessoa programar o seu computador, uma vez que surgiram muitos programas já prontos, especialmente na Internet, que permitem lidar intuitivamente com tarefas para as quais as soluções anteriormente exigiam programação.



No entanto, agora há mais e mais pessoas usando Python em uma variedade de disciplinas. “Uma teoria prevalece hoje que explica o sucesso inesperado do Python”, diz van Rossum, “segundo a qual ele teve a sorte de ter uma base sólida em ciência de dados e aprendizado de máquina, e ciência de dados em geral. Depois de desenvolver uma massa crítica de habilidades em Python, é mais fácil trabalhar com o mesmo sistema que seus colegas e concorrentes do que aprender coisas novas. ” Além disso, de acordo com van Rossum, embora Python tenha começado como uma ferramenta comum para programadores, hoje também é uma linguagem para amadores e, de acordo com van Rossum, é o melhor uso para Python.



Um projeto de software de código aberto bem-sucedido como o Python seria fácil para iniciantes aprenderem, mas também teria uso prático na solução de problemas do mundo real que usuários mais avançados precisariam. Assim como ao trabalhar com iniciantes, nos esforçamos para não complicar a linguagem para que eles possam usar toda a sua força mental para aprender as complexidades inerentes ao ambiente de desenvolvimento, ao trabalhar com usuários avançados, a simplicidade da linguagem é útil, pois torna mais fácil para uma pessoa aprender abstrações concorrentes. O desejo de tornar a implementação do Python o mais simples possível se deve em parte ao fato de que ao trabalhar com essa linguagem é fácil mudar de opinião, aprender, repetir. “Escrever um protótipo em Python e colocá-lo em produção geralmente não é tão difícil”, diz van Rossum.“E então você pode se dar ao luxo de jogar fora esse protótipo e implementá-lo com base no que já foi aprendido. A segunda versão também pode ser escrita em Python, mas será muito melhor do que a primeira. "



O apelo implacável do Python se deve em parte ao seu otimismo e à facilidade de recomeçar. "Se você passou muito tempo escrevendo e depurando código, então realmente não quer jogá-lo fora e começar de novo." O co-fundador e CEO da Drpopbox, Drew Houston, escreveu o primeiro protótipo do serviço em Python em uma viagem de ônibus de cinco horas de Boston a Nova York. “Os primeiros protótipos do Dropbox foram em grande parte descartados, muitas vezes”, diz van Rossum.



O que você pode aprender com Python sobre como criar ferramentas mentais de qualidade? Tim Peters, um dos maiores contribuidores do Python, fornece algumas dicas sobre este tópico no aforisticamente escrito “ Zen of Python”, O que explica os princípios que nortearam van Rossum. No contexto deste artigo, os dois seguintes são os mais importantes: “Simples é melhor do que complexo. Complicado é melhor do que complicado. " É praticamente uma receita para o cérebro priorizar suas próprias funções para o uso eficiente de energia.



Para van Rossum, o aspecto social de pensar e criar ferramentas é igualmente importante. O que ele aprendeu com sua odisséia de trinta anos com Python? “Aprendi que era impossível lidar com esse assunto sozinho e foi uma lição difícil para mim. Aprendi que nem sempre você alcança o resultado que almejava, mas talvez o resultado não seja pior ou até melhor do que o que você esperava. "



All Articles