El motor de Javascript Spidermonkey
En uno de los proyectos en GSyC/LibreSoft nos ha tocado aprender SpiderMonkey y extenderlo. Es una tecnología muy interesante: el motor de Javascript en C que se incluye dentro de Mozilla/Firefox. Se ha diseñado como una librería por lo que es muy sencillo incorporarlo a una aplicación, la cual desde ese momento puede ser extendida utilizando Javascript. Esta idea básica es la misma por ejemplo que la que permite extender Emacs con LISP. En GNOME muchas veces hemos hablado de opciones para tener un lenguaje de “scripting” y una librería ligera como SpiderMonkey podría ser una opción estupenda, aunque seguro que a más de uno el extender las aplicaciones o hacer “scripting” en Javascript le provocan sarpullidos
(y creo tiene más que ver con problemas en las implementaciones de los navegadores que por el lenguaje en si).
Extender el modelo de objetos de SpiderMonkey para ampliar la API disponible desde Javascript, por ejemplo llamando a métodos nativos en C, es una funcionalidad soportada por lo que por ejemplo, si quisieras desde tu navegador manejar tu iPod bastaría con que extendieras SpiderMonkey con un objeto que representara a la iPod y por ejemplo, un par de funciones para parar e iniciar el iPod, que llamaran a métodos nativos en una librería en C que fuera capaz de manejar la iPod (sólo es una idea, seguro que se te ocurren otras cosas).
Pensando en Javascript recordé una demostración de SGI que habían implementado gran parte de las interfaces gráficas de gestión de un sistema operativo en Javascript y que te permitía desde el navegador gestionar todo el sistema (configurar la red, añadir usuarios …). De eso hace ya al menos cuatro o cinco años. ¿Encontrará el estándar Javascript nuevos horizontes en el ciberespacio? ¿Acabarás programando en Javascript?

