Informazioni su Wren

Scopri cosa rende Wren unico


Wren è un piccolo e veloce linguaggio di scripting concorrente basato sulle classi. Immagina Smalltalk in un pacchetto delle dimensioni di Lua, con un pizzico di Erlang, il tutto avvolto in una sintassi familiare e moderna.

  • Piccolo. La VM sta sotto i 4.000 punti e virgola di C leggibile e commentato con amore.

  • Veloce. Un compilatore intelligente a passata singola produce bytecode compatto ed efficiente.

  • Basato sulle classi. Classi e oggetti sono al centro dell'attenzione.

  • Concorrente. Le fibre leggere sono integrate nel linguaggio.

  • Scripting. Incorporabile, senza dipendenze, con una piccola libreria standard e un'API in C facile da usare.

La VM

Il cuore di Wren è la VM. La macchina virtuale di Wren è il nucleo del linguaggio ed esegue tutto il codice sorgente Wren. È solo una libreria, non un'applicazione autonoma. È progettata per essere incorporata in un'applicazione ospite più grande.

Puoi trovare Wren incorporato in progetti come:

  • TIC-80: un computer di fantasia per creare, giocare e condividere piccoli giochi (simile a PICO8).
  • DOME: un framework multipiattaforma per creare giochi.
  • luxe: un motore di gioco multipiattaforma per lo sviluppo rapido di giochi.
  • Wren Console: un REPL e una CLI di Wren, scritti in gran parte in Wren stesso.

Puoi persino incorporare Wren nei tuoi progetti. Ai fini di Exercism, l'applicazione ospite che useremo è Wren Console: ci permette di eseguire e testare i nostri script Wren dal terminale.

Perché Wren?

Wren è stato creato originariamente da Bob Nystrom, noto per Crafting Interpreters. Ha più di qualche linguaggio alle spalle, ma spiega nello specifico cosa ha portato alla creazione di Wren:

Esistono alcuni linguaggi di scripting usati per l'incorporamento nelle applicazioni. Lua è il principale. Un tempo lo era TCL. Ci sono anche Guile, sempre più spesso JavaScript, e alcune applicazioni incorporano Python. Sono un ex sviluppatore di giochi, quindi quando penso allo «scripting», tendo a pensare allo «scripting di gioco».

Lua è carino: è piccolo, semplice e veloce. Ma, e non lo dico come critica, è anche strano se sei abituato a linguaggi come C++ e Java. La sintassi è diversa. La semantica, in particolare il modello a oggetti, è insolita. Chiunque può abituarsi all'indicizzazione che parte da 1, ma cose come le metatable mostrano davvero che gli oggetti sono stati aggiunti a Lua in un secondo momento.

Penso che ci sia spazio per un linguaggio semplice come Lua, ma che risulti naturale a chi viene dalla programmazione orientata agli oggetti. Wren è il mio tentativo di farlo.

Provarlo

Puoi fare una prova veloce direttamente nel tuo browser (senza installare nulla). Se vuoi sperimentare con Wren avvolto in un'interfaccia accattivante, dai un'occhiata a Wren Playground.