Je construis un site Web public où les utilisateurs partagent des données et des scripts pour exécuter certaines données. Les scripts sont exécutés côté serveur dans une sorte de bac à sable sans autre interaction ce cycle: mon programme Perl lit dans une base de données un script créé par l'utilisateur, ajoute les données à traiter dans le script (c'est-à-dire: un document JSON) puis appelle l'interpréteur, il renvoie la réponse (un document JSON ou du texte brut), je l'enregistre dans la base de données avec mon script perl. Le script devrait pouvoir avoir moi-même un accès aux fonctions intégrées ajoutées au langage de script, mais rien de plus.
J'ai donc trébuché sur node.js en tant qu'interprète javascript, et il y a environ une heure avec le V8 de Google (le v8 a-t-il du sens pour ce genre de chose?). CoffeeScript m'est également venu à l'esprit, car il a l'air bien et c'est toujours Javascript.
Je pense que javascript est assez répandu et plus "sandboxeable" car il n'a pas d'appels OS ou quoi que ce soit à distance non sécurisé (je pense).
par ailleurs, j'écris le système sur Perl et Php pour le front-end.
Pour améliorer la question: je choisis Javascript parce que je pense qu'il est suffisamment sûr et simple à implémenter avec node.js, mais quelles sont les autres alternatives pour réaliser ce genre de tâche? Lua? Python? Je ne peux tout simplement pas trouver d'informations sur la façon d'exécuter correctement un interpréteur en bac à sable.