O tempo de execução do JavaScript é de thread único, o que o torna impossível para operações críticas de desempenho. Embora você possa implementar multi-threading em seu código, ainda há a necessidade de uma linguagem de programação que aproveite o multithreading por padrão.
O que é Clio?
É aqui que entra o Clio . De acordo com o documentação , a linguagem de programação Clio fornece suporte pronto para uso com vários núcleos. Isso significa que ele pode ser executado na nuvem e em clusters sem problemas.
Além disso, o Clio compila seu código em JavaScript, portanto, se sua máquina pode executar JavaScript, ela é definitivamente capaz de executar o código Clio sem problemas.
Primeiros passos com Clio
Executando o código Clio
Clio tem um instalador , mas não funciona corretamente no momento . Por esse motivo, usaremos o compilador online para este artigo.
Criação do aplicativo “Hello World”
No Clio Playground, escreva o seguinte trecho de código:
export fn main: console.log"Olá, mundo!"
Na linha 1, crie o método main . Assim como outras linguagens de programação, Clio requer um método main . No final, usaremos a palavra-chave export para exportar esta função. Isso o torna capaz de ser executado.
Agora, execute o código. Este será o resultado:
Ótimo! Nosso código funciona. Vamos agora aprender os fundamentos do Clio.
Declarando constantes em Clio
Para declarar uma constante, você deve usar a seguinte sintaxe:
=>
Você pode declarar uma string, assim:
"LogRocket"=> websiteName
Isso atribui o valor “LogRocket” à variável com o nome websiteName .
Da mesma forma, você pode declarar um inteiro e um booleano:
9=> numeroNove 10> 3=> resultado
Primeiro, criamos uma variável com o nome numberNine e atribuímos a ela o valor 9 . Então, criamos uma variável chamada resultado . O número 10 é maior que 3? Em seguida, atribua a ele o valor false .
Para exibir essas constantes na linha de comando, escreva o seguinte código:
export fn main: 9=> numeroNove 10> 3=> resultado "LogRocket"=> websiteName console.log numberNine resultado console.log console.log websiteName console.log f"O nome do site é: {websiteName}"
Nas linhas 5 a 7, exibimos os valores das variáveis que declaramos anteriormente e, em seguida, exibimos uma string e acrescentamos o valor de websiteName no final. Este será o resultado:
Ótimo! Nosso código funciona.
Declarando funções no Clio
Para declarar uma função, use a seguinte sintaxe:
fn
Por exemplo, este trecho de código multiplica dois números e retorna um valor:
fn multiplica a b: a * b
Aqui, declaramos uma função chamada multiply que recebe dois argumentos, a e b , e então multiplicamos a e b e retorna o resultado.
Você pode até usar console.log em suas funções.
fn multiplica a b: console.log a * b
Isso desconecta o resultado de a * b .
Para chamar essas funções, escreva o seguinte código:
fn multiplica a b: a * b export fn main: multiplique 4 8-> console.log
Agora, vamos usar nossa função multiplicar e registrar o resultado no console. Aprenderemos sobre a sintaxe do piping ( → ) mais tarde. Execute o código. Este será o resultado:
Se a sua função não retornar um valor, você pode utilizar o seguinte snippet:
fn multiplica a b: console.log a * b export fn main: multiplique 4 12
Isso invoca a função multiply , que fará logout do resultado no console.
Esta é a saída do código:
Voila! O resultado saiu conforme o esperado. Na próxima seção, aprenderemos sobre as instruções if e else .
Comparações entre vários valores
Esta é a sintaxe para instruções if/else .
se: else if : senão:
Como exemplo, vejamos o seguinte trecho de código:
fn é igual a a b: se a> b: console.log f"{a} é maior que {b}" else if a=b: console.log f"{a} é igual a {b}" senão: console.log f"{a} é menor que {b}" export fn main: é igual a 40 10 é igual a 10 40 é igual a 10 10
Observe que primeiro criamos uma função chamada equals , que recebe dois argumentos, e depois comparamos se a é maior que b . Em caso afirmativo, envie uma mensagem adequada. Em seguida, execute uma instrução else if para verificar se a e b são iguais. Caso contrário, informe ao usuário que a é menor que b .
Finalmente, execute a função equals com conjuntos de dados diferentes. Este será o resultado:
Ótimo! Nosso código funciona. Agora vamos nos aprofundar em tópicos mais avançados.
Mergulhando cada vez mais no Clio
Usando fluxos
Anteriormente, usávamos a sintaxe de piping ( → ). Nesta seção, aprenderemos sobre a sintaxe dos fluxos.
O operador de tubulação é usado para transferir os resultados de uma função para outra função.
Observe o seguinte snippet:
fn isBigger a b: a> b export fn main: isBigger 10 20-> console.log
Isso cria uma função chamada isBigger que informa se o primeiro número é maior do que o segundo número. Vá em frente e execute a função isBigger . O resultado de isBigger ( false ) é então transferido para o método console.log . Como resultado, false é exibido na tela
Você também pode encadear várias chamadas de função. Este código primeiro cria três funções, invoca a função add e transfere o resultado deste método para o método square . Finalmente, ele transfere o resultado de square para console.log .
Observe que você pode até aplicar sintaxe de piping com recuo para tornar seu código mais legível.
fn add a b: a + b fn quadrado a: a * a fn subtrair a b: a-b export fn main: adicione 5 5-> quadrado-> console.log quadrado 5 -> subtrair 100 -> console.log
Declaração de matrizes no Clio
Para declarar uma matriz e imprimi-la, use a seguinte sintaxe:
[]=> console.log
Por exemplo:
export fn main: ["LogRocket""FreeCodeCamp""YouTube"]=> sites [2 3 4]=> inteiros [true false false]=> booleanValues sites console.log console.log inteiros console.log booleanValues
Vamos criar uma matriz chamada sites que possui valores de string, criar uma matriz chamada inteiros , que recebe inteiros e, em seguida, criar uma matriz chamada booleanValues , que contém valores booleanos.
Ótimo! Agora vamos aprender como mapear valores em uma matriz.
Matrizes de mapeamento
No Clio, para mapear funções para matrizes, temos que usar os símbolos → e * . Este trecho de código imprime todos os itens da matriz:
export fn main: ["LogRocket""FreeCodeCamp""YouTube"]=> sites sites-> * console.log
Observe que isso usa o * para dizer ao Clio para aplicar a função em cada item do array. Na linha 4, efetuamos logout dos itens no console. Aqui está o resultado.
Vamos brincar mais com a sintaxe do piping. Podemos até adicionar várias funções, como:
fn add a b: a + b fn quadrado a: a * a export fn main: [2 3 4]=> inteiros inteiros-> * quadrado -> adicionar 1 -> console.log
Aqui, criamos duas funções chamadas a e b e uma matriz inteiros , e informamos ao Clio que a função será executada a cada item na matriz.
A partir da linha 10, aplicamos o método square nos itens e, em seguida, transferimos o resultado do método square para a função add . Isso aumentará o resultado.
Declaração de mapas de hash
Eles são semelhantes aos objetos JavaScript. Para declarar um mapa hash, use a seguinte sintaxe:
#: : =>
Por exemplo:
export fn main: # nome:"Hussain"idade: 19=> informações informações de console.log console.log information.name console.log information.age
Este bloco de código cria um mapa hash chamado informações que possui duas propriedades: nome e idade . Em seguida, ele efetua logout do valor do objeto information e de suas propriedades individuais. É assim que se parece:
Agora terminamos esta seção.
Conclusão
Embora o Clio ainda esteja em beta no momento em que este livro foi escrito, ele tem um uso de sintaxe decente que incentiva o código limpo. Além disso, o fato de ele suportar operações multithread por padrão significa que ele será um candidato viável para aplicativos de desempenho crítico no futuro.
Clio parece ser uma linguagem de programação promissora e espero que a equipe de desenvolvimento lance uma compilação estável em um futuro próximo para que possa ser usada em ambientes de produção.
Muito obrigado por ler!
A postagem Introdução ao Clio lang: Envie JS de desempenho crítico com facilidade apareceu primeiro no LogRocket Blog .