BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Facebook lança nova versão do Reason, trazendo uma nova sintaxe

Facebook lança nova versão do Reason, trazendo uma nova sintaxe

Reason atinge a versão 3 e introduz nova sintaxe e muitas correções, se tornando a tentativa do Facebook de trazer segurança e velocidade da OCaml para desenvolvedores de JavaScript,

Uma das mudanças mais visíveis na sintaxe do Reason é o uso da sintaxe de aplicação/abstração JavaScript em vez de Ocaml. Isso significa que no Reason 3 você chamaria uma função de dois parâmetros, colocando parênteses em torno deles, como você faz em JavaScript:

myFunction(arg1, arg2) // novo, sintaxe C-like
myFunction arg1 arg2   // antigo, sintaxe OCaml-like

Outras mudanças importantes são as seguintes:

  • Nova sintaxe para declarar o tipo de um objeto em Javascript, usando {. }, ex.:
type payload = {.  // Não precisa chamar o no need to call Js.t aqui
	  "name": string,
	  "age": int
};
  • Suporte ampliado para type punning com parâmetros marcados e nova sintaxe usando "~" em vez de "::". É assim que você declara e chama uma função com o parâmetro marcados:
	let addCoordinates = (~x, ~y) => {
		  /* use x e y aqui */
	};
	...
	addCoordinates(~x=5, ~y=6);

Compara a nova implementação com a antiga:

let addCoordinates x::x y::y => {
  /* use x e y aqui */
};
...
addCoordinates x::5 y::6;

Além disso, type punning (que, no exemplo acima, permite escrever ~x em vez do mais tedioso ~x como x) pode ser usado junto com tipos de anotações, que não haviam sido suportadas anteriormente:

let add = (~first: int, ~second: int) : int => first + second;
  • Concatenação de String agora pode ser feito usando o operador "++" ao invés do "^".
  • Lógicas de negação agora será pelo operador "!" ao invés do "not"

Os desenvolvedores que possuem uma base de código Reason existente não devem se preocupar com a extensão das mudanças de sintaxe, que foram principalmente impulsionadas pela idéia de torná-lo mais "natural" para desenvolvedores de JavaScript. Na verdade, o Reason 3 vem com um script de migração que promete facilitar a transição.

Outra nova característica promissora do ecossistema Reason é a disponibilidade de uma API oficial para acesso programático ao Parser Reason, refmt, que já possui várias ferramentas como o Klipse, reason-tools, a documentação no site do Reason, etc.

Reason é a tentativa do Facebook de trazer um sistema de tipos, o sistema tipo OCaml, para o ambiente JavaScript. Ele usa o BuckleScript no seu núcleo e fornece uma sintaxe orientada para os programadores JavaScript, que poderiam achar a sintaxe OCaml um pouco estranha.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT