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.
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:
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.
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.
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.