domingo, 20 de junio de 2010

Chrome OS y su relación con JavaScript y el Motor V8

Como podemos darnos cuenta la mayoría de los usuarios pasan la mayor parte de su tiempo en la web, tomando como punto de referencia el que los navegadores web han dejado hace mucho tiempo de ser herramientas únicamente para navegar por Internet.

Hoy en día los navegadores nos ofrecen capacidades que más allá del simple hecho de la generación de contenido, ofreciéndonos la capacidad de crear nuestras propias aplicaciones, pero ofrecer estas capacidades trae con sigo cuestionamientos como: ¿Cuál es el lenguaje que hace posible tales capacidades?. Entonces en este punto donde entraremos en la materia del papel que desempeña JavaScript en el Sistema Operativo Chrome, para ser más exactos el papel que juega en el navegador google Chrome.

JavaScript:
Los principales funciones a las que este lenguaje estaba orientado en sus orígenes era a la realización de operaciones de utilidad mínimas en la parte del cliente en muchas páginas web, como por ejemplo: comprobación de datos en los formularios, manejo de pequeñas animaciones, lanzar procedimientos auxiliares en procesos como autenticaciones, etc. Pero en los últimos anos las capacidades de JavaScript han ido en aumento dando como resultado que sea uno de los lenguajes de programación de más demandan en las aplicaciones web, siendo el propio google Chrome el que basa aplicaciones como:

  • Google Maps
  • Gmail
  • Google Docs

Haciendo uso del este lenguaje de programación en sus aplicaciones ha hecho una garantía el éxito que han tenido, bueno la mayoría de nosotros (los que hacemos uso de una cuenta de gmail) somos testigos de la eficiencia que posee esta aplicación en contraposición con otros que ofrecen servicios similares. Pero la unión que existe entre JavaScript y la interfaz de peticiones XMLHttpRequest, hace posible que cada evento que un usuario realice dentro del navegador tenga como consecuencia realizar peticiones de información a servidores web.

Dicha unión (JavaScript con XMLHttpRequest) hace que los programas antes mencionados logren sin tener que recargar toda la página nuevamente, presentar o actualizar solamente la parte de la información que el usuario esta visualizando (en google map actualizando únicamente la parte de la imagen que el usuario está visualizando, en gmail actualizando la bandeja de entrada, en google docs guardando el documento que se está editando).

Pero JavaScript posee problemas en el tiempo que tarda en ejecutarse, lo que hace que en algunos navegadores tarde demasiado en presentar alguna tipo respuesta, pero para contrarrestar este problema dentro del nuevo 'Google Chrome', Google ha incorporado la que puede ser considerada la Máquina Virtual de este Sistema Operativo vía web.

El Motor V8 de JavaScript:
Como habia dicho entonces Chrome hace uso de este motor que toma el codigo en Javascript lo compila produciendo codigo maquina que finalmente es ejucutado directamente por el procesador, lograndose con esto una mayor rapidez.

V8 no solamente compila en codigo, sino que proporciona capacidades agregadas como:
  • Gestion de la ubicacion de la ubicacion de la memoria para los objetos.
  • Y tambien proporcian la funcionalidad de recolector de basura (garbace collector) de todos aquellos ojetos que ya no se necesitan.
Detalles tecnicos de este motor son:
  • V8 es el motor JavaScript de software libre de Google.
  • V8 está escrito en C++ y se utiliza en Google Chrome, el navegador de software libre de Google.
  • V8 implementa ECMAScript según se especifica en ECMA-262, 3ª edición y se puede ejecutar en sistemas Windows XP y Vista, Mac OS X 10.5 (Leopard) y Linux que utilicen procesadores IA-32 o ARM.
  • V8 se puede ejecutar de forma independiente o insertado en cualquier aplicación C++.

2 comentarios:

  1. :O gran post! tengo una duda con respecto como compila v8 el javascript, debido a que no genera un código intermedio, debe ser algún tipo de máquina virtual, entonces ¿Qué tanta es su portabilidad como para implementarlo en otros sistemas navegadores web?

    ResponderEliminar
  2. Respondiendo a tus preguntas. Si V8 esta integrado dentro de google Chrome y es considerado como una tipo de maquina virtual para este sistema en donde javascript es compilado directamente a instrucciones maquina (0 y 1) para que sea ejecutado por el CPU con mayor rapidez.

    ResponderEliminar