Workshop ReasonML: feedback e fontes

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.

meetup1-março2018
meetup2-março2018
meetup3-março2018
meetup4-março2018
meetup5-março2018
SG
Como lembrete, ReasonML é uma linguagem desenvolvida pelas equipes do Facebook e em particular pelo criador do React. É uma espécie de garfo de OCaml mas simplificado e adaptado às necessidades e hábitos dos desenvolvedores JavaScript. O Facebook também o usa para seu sistema de mensagens.
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.