paint-brush
Por que você deve aprender a linguagem de programação Leopor@kaylej
5,611 leituras
5,611 leituras

Por que você deve aprender a linguagem de programação Leo

por Kaylej4m2023/01/03
Read on Terminal Reader

Muito longo; Para ler

Aprender uma nova linguagem de programação é comum para desenvolvedores experientes. O programador médio pode se atualizar em 3 a 4 semanas e muitas vezes pode aprender de 2 a 3 novos idiomas em um ano. Leo merece sua atenção? Quão promissor é isso? Vamos descobrir.
featured image - Por que você deve aprender a linguagem de programação Leo
Kaylej HackerNoon profile picture

Aprender uma nova linguagem de programação é comum para desenvolvedores experientes. O programador médio pode se atualizar em 3 a 4 semanas e muitas vezes pode aprender de 2 a 3 novos idiomas em um ano. Leo merece sua atenção? Quão promissor é isso? Vamos descobrir.


A linguagem Leo é muito parecida com Rust

Leo é uma linguagem de programação de tipo estático construída para o blockchain Aleo. Você pode criar aplicativos privados em um blockchain descentralizado totalmente privado usando-o, basicamente Solidity, mas para Aleo.


Vamos comparar a sintaxe das operações matemáticas mais simples:


Um exemplo de um programa simples para Leo:


O mesmo para ferrugem:


Como podemos ver, ambas as linguagens têm quase a mesma sintaxe, mas diferem significativamente na estrutura de entrada-saída. Enquanto no Leo podemos integrar variáveis de um arquivo de entrada separado, no Rust você não pode fazer isso por padrão (você só pode fazer isso se descrever o arquivo de importação manualmente). Isso se deve à estrutura da blockchain Aleo - ela é focada no anonimato e os desenvolvedores acham que as entradas devem ser descritas em um arquivo separado. Experimente você mesmo:


https://play.leo-lang.org/ <- compilador online para Leo


https://play.rust-lang.org/ <- compilador online para Rust


Vamos dar uma olhada rápida no básico de Leão:


Leo suporta as palavras-chave let e const para definir variáveis.


let define uma variável de programa dedicada.

const define uma variável de programa constante.


As variáveis constantes não definem uma variável em um sistema de restrição. Seu valor é restrito no esquema ao computar com a variável alocada. variáveis constantes não podem ser alteradas. Eles têm a mesma funcionalidade do Rust.



Os cálculos são expressos em termos de circuitos aritméticos R1CS. Assim, o cálculo de uma variável selecionada sempre resulta em outra variável selecionada.


Variabilidade

Todas as variáveis no Leo são imutáveis - elas não podem ser alteradas após a atribuição, assim como no Rust. Todas as variáveis no Leo são modificáveis - elas podem ser alteradas após a atribuição. A funcionalidade variável não é preservada em diferentes áreas porque as variáveis Leo são passadas por valor.


Digitação estática

Leo é uma linguagem de tipagem estática, o que significa que devemos conhecer o tipo de cada variável antes de executar o esquema.


Tipos explícitos são obrigatórios.

Não há valor indefinido ou nulo em Leo. Ao atribuir uma nova variável, o tipo do valor deve ser explícito. Uma exceção a esta regra é se a nova variável herdar seu tipo de uma variável anterior.


passagem de valor

As variáveis em Leo são sempre passadas por valor, o que significa que são sempre copiadas quando usadas como entrada para uma função ou em atribuições.


valores booleanos

Leo suporta tuplas tradicionais ou valores booleanos. Adicionar um tipo booleano explícito para valores booleanos em instruções é opcional.



inteiros

Leo suporta inteiros com sinal i8 , i16 , i32 , i64 , i128 e inteiros sem sinal u8 , u16 , u32 , u64 , u128


Inteiros com comprimentos de bits maiores criam mais restrições no esquema, o que pode diminuir o tempo de cálculo.


Pelo exposto, podemos concluir que aprender Leo não levará muito tempo para os desenvolvedores Rust. No entanto, a pergunta para os desenvolvedores da Aleo é: "Como podemos encorajar os desenvolvedores a mudar de Rust para Leo?" Como construtores experientes estão em demanda, o projeto coloca altos riscos em jogo. Existe um programa de bolsas da Aleo para esse fim:


Programa de Subsídios para Desenvolvedores Excepcionais

A fim de incentivar desenvolvedores qualificados a ingressarem na Aleo, o projeto lançou um programa de subsídios:


https://www.aleo.org/post/community-grants-program


Os desenvolvedores podem pedir até US$ 100.000 por seu trabalho. No entanto, quanto maior a quantia de dinheiro solicitada, maior o nível de trabalho exigido. Aqui está um exemplo de alguns dos vencedores do programa de subsídios:


Pine Street Labs: https://www.aleo.org/post/aleo-grants-pine-street-labs - basicamente é um construtor de software de carteira.


Parceria com a Forte: https://www.aleo.org/post/aleo-announces-partnership-with-forte - desenvolvimento de jogos (não é realmente um beneficiário de subsídios, pois não é uma startup)



Agora vamos comparar a renda média de um desenvolvedor Rust avançado:


Vamos dar uma olhada em Indeed.com :



Em média, um desenvolvedor Rust de nível médio pode ganhar até $ 150.000 por ano (exemplos Blockchain e Web2). Quanto mais (ou menos) do que pode ser ganho na Leo? Ninguém sabe, mas certamente você pode esperar um salário alto, já que o mercado de trabalho do desenvolvedor Leo obviamente não é o mais competitivo. A maioria dos desenvolvedores que conheço se sente à vontade para criar suas próprias coisas, como coleções NFT ou DAOs, e você também pode. Você ainda pode ganhar enquanto trabalha por conta própria. Mais precisamente, não é nada competitivo - você pode se tornar um dos primeiros programadores de Leo agora mesmo!


Onde começar? Aprender o Leo não é a tarefa mais difícil, porque os entusiastas do projeto atual já estão fazendo um ótimo trabalho preparando materiais educativos para o Leo! Basta visitar o canal oficial Aleo Discord para procurar traduções em qualquer idioma: https://discord.gg/aleohq


Além disso, você pode começar a aprender com os documentos oficiais do Leo: https://developer.aleo.org/leo/language


Boa sorte em seus empreendimentos!