Descubra o que torna o Wren único
Wren é uma linguagem de script concorrente, pequena, rápida e baseada em classes. Pense em Smalltalk num pacote do tamanho do Lua, com um toque de Erlang e embalado numa sintaxe moderna e familiar.
Pequena. A VM tem menos de 4.000 pontos e vírgulas de C legível e carinhosamente comentado.
Rápida. Um compilador inteligente, de uma única passada, produz bytecode enxuto e eficiente.
Baseada em classes. Classes e objetos estão no centro de tudo.
Concorrente. Fibras leves já fazem parte da linguagem.
Script. Embutível, sem dependências, com uma pequena biblioteca padrão e uma API em 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 um aplicativo independente. Ela foi projetada para ser embutida numa aplicação hospedeira maior.
Você encontra o Wren embutido em projetos como:
Você pode até embutir o Wren nos seus próprios projetos. Para os fins do Exercism, a aplicação hospedeira que vamos usar é o Wren Console, o que nos permite rodar e testar nossos scripts Wren pelo terminal.
O Wren foi criado originalmente por Bob Nystrom, famoso pelo livro Crafting Interpreters. Ele já tem mais de algumas linguagens no currículo, mas explica especificamente o que levou à criação do Wren:
Existem algumas linguagens de script usadas para embutir em aplicações. Lua é a principal. TCL já foi. Há também Guile, cada vez mais JavaScript, e algumas aplicações embutem Python. Sou ex-desenvolvedor de jogos, então quando penso em "script", costumo pensar em "script de jogos".
Lua é legal: é pequena, simples e rápida. Mas (e não digo isso como crítica) também é estranha se você está acostumado com linguagens como C++ e Java. A sintaxe é diferente. A semântica, especialmente o modelo de objetos, é incomum. Qualquer um se acostuma com indexação começando em 1, mas coisas como metatables mostram mesmo que os objetos foram encaixados no Lua depois, meio que na marra.
Acho que há espaço para uma linguagem tão simples quanto Lua, mas que pareça natural para quem tem experiência com orientação a objetos. O Wren é minha tentativa de fazer isso.
Você pode experimentar rapidinho direto no navegador (sem instalar nada). Se quiser brincar com o Wren dentro de uma interface elegante, dê uma olhada no Wren Playground.