Na noite de terça-feira, uma nova edição do Encontro Js-Star.Paris nas instalações da JS-Republic, como todos os meses, foi uma oportunidade de partilha entre os membros da comunidade JavaScript. Esta edição foi dedicada à linguagem RazãoML.
Caso tenha curiosidade em testar o Workshop em casa, você encontra abaixo o link para acessar as fontes do projeto com as explicações dos exercícios:
https://github.com/js-republic/reason-ml-workshop
Você notará que existem dois ramos,
master
et solution
, o primeiro permite realizar a oficina e o segundo contém a oficina totalmente corrigida.
O que achamos do ReasonML?
A preparação para este workshop foi muito gratificante. Aliás, foi a primeira vez que desenvolvemos com essa linguagem. Aqui está o que aprendemos:
A abordagem do ReasonML pode ser muito frustrante.
Assim como o OCaml e outras linguagens do mesmo tipo, o ReasonML impõe um rigor importante. Claramente, quando você desenvolve com o ReasonML, você gasta 15 minutos corrigindo problemas de sintaxe, tipo e compilador. No final, você gasta apenas um minuto em sua página da web, porque quase tudo funciona perfeitamente. Essa abordagem pode confundir muitos desenvolvedores acostumados a usar JavaScript “puro”. Em vez disso, eles tendem a desenvolver rapidamente, testar no navegador, ver se ele trava, corrigir e recomeçar. Passamos mais tempo pensando, menos depurando com ReasonML 😉
Ferramentas ainda precisam evoluir
Atualmente a melhor maneira de desenvolver em ReasonML é usar Visual Studio Code com a Plugin ReasonML e o compilador ao lado. Mesmo que já devamos reconhecer que há um grande trabalho feito, ainda há um longo caminho a percorrer neste assunto. Quando surge um erro de sintaxe (como costuma acontecer ao aprender um novo idioma), o compilador geralmente responde a você Error: 3096:
na linha afetada, enquanto o Visual Studio Code destaca a linha errada para você como incorreta. BuckleScriptName, o projeto que gerencia a compilação ReasonML -> JavaScript, também pode causar problemas, especialmente quando você mesmo precisa criar assinaturas de função para se comunicar com uma API JavaScript.
A sombra de OCaml é onipresente
Como dito acima, o ReasonML é de certa forma um “fork” do OCaml com uma sintaxe retrabalhada para atender às necessidades de desenvolvimento web e JavaScript. No entanto, é comum encontrar arquivos “.ml”, extensões do OCaml, ao procurar a implementação da API nativa ou ao pesquisar as ferramentas da comunidade. Tipicamente bs brincadeira é um bom exemplo. Não tenha medo de ler OCaml.
Abstrações e digitação oferecem poder incomparável
As potenciais frustrações citadas até agora não são inúteis. De fato, uma vez que passamos pelas dores de cabeça do aumento da competência, saboreamos o poder das verificações de digitação feitas pelo compilador (um pouco como no TypeScript). Adoramos essas abstrações que fazem você desaparecer todos os erros devido a null
ou undefined
. Temos grande prazer em escrever código elegante. Que eu saiba, apenas ELM oferece o mesmo nível de linguagem no mundo JavaScript com interesse da comunidade equivalente.