Estoy creando un sitio web público donde los usuarios comparten datos y scripts para ejecutar algunos datos. Los scripts se ejecutan en el servidor en algún tipo de sandbox sin otra interacción este ciclo: mi programa Perl lee de una base de datos un script creado por el usuario, agrega los datos que se procesarán en el script (es decir, un documento JSON) y luego llama al intérprete. devuelve la respuesta (un documento JSON o texto sin formato), lo guardo en la base de datos con mi script perl. El script debería poder tener acceso a las funciones integradas agregadas al lenguaje de script por mí mismo, pero nada más.
Así que me topé con node.js como intérprete de JavaScript, y hace aproximadamente una hora con el V8 de Google (¿tiene sentido v8 para este tipo de cosas?). También me vino a la mente CoffeeScript, ya que se ve bien y sigue siendo Javascript.
Creo que javascript está lo suficientemente extendido y es más "sandboxeable" ya que no tiene llamadas al sistema operativo ni nada remotamente inseguro (creo).
Por cierto, estoy escribiendo el sistema en Perl y Php para el front-end.
Para mejorar la pregunta: estoy eligiendo Javascript porque creo que es lo suficientemente seguro y simple de implementar con node.js, pero ¿qué otras alternativas hay para lograr este tipo de tarea? Lua? ¿Pitón? Simplemente no puedo encontrar información sobre cómo ejecutar un intérprete de espacio aislado de manera adecuada.