Sobre o Wren

Descobre o que torna o Wren único


O Wren é uma linguagem de scripting pequena, rápida, concorrente e baseada em classes. Pensa em Smalltalk num pacote do tamanho do Lua, com um toque de Erlang, tudo embrulhado numa sintaxe moderna e familiar.

  • Pequena. A VM tem menos de 4 000 pontos e vírgulas de C legível e comentado com carinho.

  • Rápida. Um compilador inteligente, de uma única passagem, produz bytecode compacto e eficiente.

  • Baseada em classes. As classes e os objetos estão em primeiro plano.

  • Concorrente. As fibras leves fazem parte da própria linguagem.

  • Scripting. Pode ser incorporada, não tem dependências, tem uma pequena biblioteca padrão e uma API C fácil de usar.

A VM

O coração do Wren é a VM. A máquina virtual do Wren é o núcleo da linguagem e executa todo o código-fonte em Wren. É apenas uma biblioteca, não uma aplicação autónoma. Foi concebida para ser incorporada numa aplicação anfitriã maior.

Encontras o Wren incorporado em projetos como:

  • TIC-80 - um computador imaginário para criar, jogar e partilhar jogos minúsculos (parecido com o PICO8).
  • DOME - um framework multiplataforma para criar jogos.
  • luxe - um motor de jogos multiplataforma para desenvolvimento rápido.
  • Wren Console - um REPL e uma CLI do Wren escritos em grande parte no próprio Wren.

Podes até incorporar o Wren nos teus próprios projetos. Para efeitos do Exercism, a aplicação anfitriã que vamos usar é o Wren Console, o que nos permite correr e testar os nossos scripts de Wren a partir do terminal.

Porquê o Wren?

O Wren foi criado originalmente por Bob Nystrom, o autor de Crafting Interpreters. Já tem várias linguagens no currículo, mas explica em concreto o que levou à criação do Wren:

Há algumas linguagens de scripting usadas para incorporar em aplicações. A Lua é a principal. O TCL já foi. Há também o Guile, cada vez mais o JavaScript, e algumas aplicações incorporam Python. Sou um antigo programador de jogos, por isso, quando penso em “scripting”, tendo a pensar em “scripting de jogos”.

A Lua é simpática: é pequena, simples e rápida. Mas, e não digo isto como crítica, também é estranha se estiveres habituado a linguagens como C++ e Java. A sintaxe é diferente. A semântica, sobretudo o modelo de objetos, é invulgar. Toda a gente se habitua a índices que começam em 1, mas coisas como as metatables mostram bem que os objetos foram acrescentados à Lua à posteriori.

Acho que há espaço para uma linguagem tão simples como a Lua, mas que seja natural para quem vem da programação orientada a objetos. O Wren é a minha tentativa de fazer isso.

Experimentar

Podes experimentá-lo rapidamente no teu navegador (sem instalares nada). Se quiseres experimentar o Wren com uma interface apelativa, dá uma vista de olhos ao Wren Playground.