Python é hora de abrir espaço. Sobre as perspectivas de Julia

Bom dia, Habr!

O clipe de nossa literatura Python é constantemente reabastecido com livros de vários níveis. No entanto, hoje gostaríamos de apresentar este artigo hoje, cuja autora considera Julia uma alternativa viável e promissora para o Python. Leia, siga os links e não se esqueça de votar.



Se Julia ainda lhe parecer misteriosa, não se preocupe. Foto de Julia Caesar no Unsplash



Não me entenda mal. A popularidade do Python ainda é garantida pelo apoio inabalável da comunidade, que inclui especialistas em ciência da computação, ciência de dados e inteligência artificial.

No entanto, se você tivesse a chance de se sentar em um jantar na companhia dessas pessoas, veria como elas ficaram ultrajadas com as falhas do Python. Essa linguagem não é apenas muito lenta, ela também exige testes extensivos e ainda gera erros de tempo de execução, apesar dos testes anteriores. Isso é suficiente para tornar o Python uma impressão deprimente.

É por isso que mais e mais programadores estão mudando para outros idiomas, entre os quais Julia, Go , merecem menção especial.e Ferrugem. Julia é perfeita para problemas matemáticos e técnicos, Go para tarefas modulares e Rust é indispensável na programação do sistema.

Como a ciência de dados e a inteligência artificial precisam lidar com uma série de problemas matemáticos, Julia é uma dádiva de Deus para eles. Mesmo com um exame muito crítico, verifica-se que Julia tem tantas vantagens que Python não pode se opor.

Zen contra a gula de Julia.

Inventando uma nova linguagem de programação, seus autores se esforçam para preservar os pontos fortes e eliminar as deficiências das linguagens antigas.

Foi nesse sentido que Guido van Rossum atuou no final dos anos 80, criando o Python: ele procurou melhorar o ABC. O último foi perfeito demaispara uma linguagem de programação - e devido a essa rigidez, ficou fácil aprender, mas difícil de usar em projetos reais.

Python, por outro lado, é muito pragmático. Isso é evidente no código Zen do Python , refletindo as intenções de seus criadores:

Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor do que confuso.
Implementado é melhor que aninhado.
Esparso é melhor que denso.
Legibilidade é importante.
Casos especiais não são tão especiais a ponto de violar as regras.
Ao mesmo tempo, praticidade é mais importante que impecabilidade.
[...]


O Python manteve muitos dos benefícios do ABC: por exemplo, legibilidade, simplicidade e clareza para iniciantes. Mas o Python é muito mais confiável que o ABC e muito melhor aplicável na vida real.

Do mesmo modo, os criadores de Julia queriam manter o melhor de outras línguas e se livrar de tudo de ruim. Mas as ambições de Julia estão longe de se limitar a isso: o objetivo não é substituir nenhum idioma, mas superar todos os idiomas.

Aqui está o que os criadores de Julia dizem sobre isso :

: . . C Ruby. Lisp, , Matlab. , Python, R, Perl, , Matlab, , shell. , , . , .


Julia procura combinar todas as vantagens dos idiomas existentes, mas não comprometer, o que exigiria o uso desses idiomas e suas deficiências. Além disso, embora Julia seja uma linguagem jovem, ele já alcançou muitos dos objetivos estabelecidos por seus criadores.

O que os desenvolvedores Julia gostam A

variedade Julia

pode ser usada para qualquer coisa, desde aplicativos simples de aprendizado de máquina a simulações colossais de supercomputadores. O Python também é capaz disso até certo ponto, mas o Python de alguma forma se adaptou a essas tarefas.
Pelo contrário, Julia foi criada apenas para esse trabalho. Desde o princípio.

Velocidade

Os criadores de Julia queriam tornar uma linguagem não inferior em velocidade a C - mas a criação que eles acabaram trabalhando ainda mais rápido. Embora tenha se tornado mais fácil acelerar o Python nos últimos anos, seu desempenho ainda está muito longe de Julia.

Em 2017, Julia chegou ao Petaflop Club , um pequeno clube de idiomas que, com desempenho máximo, pode ser executado em velocidades acima de um petaflop por segundo. Além de Julia, este clube agora inclui apenas C, C ++ e Fortran.

A comunidade

Python, com mais de 30 anos, possui uma comunidade colossal e muito confiável. Dificilmente existe uma pergunta desse tipo no Python, cuja resposta não é encontrada em uma consulta de pesquisa no Google.

Pelo contrário, a comunidade Julia é muito pequena. Sim, isso significa que você precisa cavar muito mais ativamente para encontrar a resposta, mas com essas pesquisas você pode sair para as mesmas pessoas repetidas vezes. E relações de programador profissional tão inestimáveis ​​estão ligadas.

Conversão de código

Para escrever código em Julia, você nem precisa conhecer um único comando nesse idioma. Não apenas você pode usar o código Python e C dentro de Julia, como também pode usar o código Julia dentro de Python !

Desnecessário dizer que, nessa situação, não é difícil corrigir os pontos fracos do seu código Python na Julia. Ou para manter a produtividade enquanto você se familiariza apenas com Julia.

Bibliotecas As



bibliotecas foram e continuam sendo os pontos fortes do Python. fotoSusan Yin no Unsplash

Essa é uma das virtudes mais importantes do Python - possui inúmeras bibliotecas bem suportadas. Julia não tem muitas bibliotecas, e os usuários reclamam que suas bibliotecas (até agora) não são bem suportadas.

Mas, ajustado pelo fato de Julia ser uma linguagem muito jovem, com um conjunto limitado de recursos, o número de bibliotecas existentes é muito impressionante. Além do fato de Julia ser enriquecida com novas bibliotecas, observamos que o idioma pode ser encaixado nas bibliotecas C e Fortran, por exemplo, para processamento de gráficos.

Tipos dinâmicos e estáticos

Python é 100% de digitação dinâmica. Isso significa que o programa em tempo de execução decide, por exemplo, se a variável especificada é um número inteiro ou um número de ponto flutuante.

Apesar de essa prática ser extremamente conveniente para iniciantes, todos os tipos de bugs penetram no programa por causa disso. Como resultado, o código Python precisa ser testado em todos os cenários possíveis, e essa é uma tarefa bastante burra, demorada.

Como os criadores de Julia também procuraram facilitar o aprendizado de seu idioma, Julia suporta totalmente a digitação dinâmica. Mas, diferentemente do Python, Julia também pode introduzir tipos estáticos - na forma em que estão presentes, por exemplo, em C ou Fortran.
Isso pode economizar uma tonelada de tempo. Agora, em vez de procurar desculpas pelo fato de o código não ter sido testado, você pode simplesmente especificar o tipo sempre que apropriado.

Dados: investimos na linguagem enquanto ela é pequena



Número de perguntas marcadas como Julia (esquerda) e Python (direita) no StackOverflow.

Apesar de tudo isso parecer muito otimista, é preciso ter em mente que Julia ainda é apenas um bebê em comparação com Python.

Há um bom indicador: o número de perguntas no StackOverflow: o Python atualmente é mencionado cerca de vinte vezes mais que o Julia!

Isso não indica a impopularidade de Julia. Em vez disso, os programadores precisam de tempo para se acostumarem com o novo idioma.

Julgue por si mesmo - você mesmo escreveria todo o código em um idioma completamente novo? Não, você prefere adiar o novo idioma até experimentá-lo em algum projeto novo. Por esse motivo, existe um atraso entre a saída da linguagem e a sua entrada em prática generalizada; isso acontece com todas as linguagens de programação.

Mas, se você domina Julia agora, e é fácil, considerando a conversão de idiomas suportada em Julia, esse será o seu investimento no futuro. À medida que mais e mais pessoas se mudam para Julia, você ganha a experiência necessária e pode responder às perguntas deles. Além disso, seu código será bastante durável.

Conclusão: pratique Julia e deixe que seja seu hobby

Quarenta anos atrás, a inteligência artificial não passava de um fenômeno de nicho. Nem os investidores nem a indústria acreditavam nisso, e muitas tecnologias de IA pareciam desajeitadas e inconvenientes de usar. Mas aqueles que estudaram IA até então se tornaram gigantes hoje - hoje seus salários são praticamente os mesmos dos atletas de topo.

Da mesma forma, Julia permanece muito nicho no momento. Mas quando ele crescer, aqueles que mudaram para ele com antecedência serão os maiores vencedores.

Não prometo que daqui a dez anos você certamente estará arrecadando dinheiro com uma pá se agora aprender Julia. Mas suas chances de um desenvolvimento desses eventos aumentarão.

Pense nisso: hoje, a maioria dos programadores usa a linguagem Python em seus currículos. Mais alguns anos se passarão e veremos ainda mais programadores piton no mercado de trabalho. Mas, se o crescimento da demanda por Python na empresa diminuir, as perspectivas dos programadores de Python começarão a se deteriorar. A princípio, devagar, mas inevitavelmente.

Por outro lado, você pode realmente se destacar se especificar Julia em seu currículo. Desde então, seremos honestos, mas como você difere de todo o exército de jogadores com quem você tem que competir? Quase nada. Mas programadores com conhecimento de Julia permanecerão especialistas relativamente raros, mesmo no futuro pelos próximos três anos.

Possuindo habilidades de Julia, você não apenas demonstra que seus interesses não se limitam aos requisitos "para o trabalho". Você também mostra que está disposto a aprender e ter uma idéia mais ampla do que significa ser um programador. Em outras palavras, vale a pena lidar com você.
Você - e outros especialistas em Julia - podem se transformar em estrelas no futuro, e você sabe disso. Ou, como disse um dos criadores de Julia em 2012:

, , . , . , 1.0 . , , Julia. 90% , , . , – , – , .

All Articles