Comparativa entre los distintos motores ECMAScript

31 May 2011

Introducción

Cuando nos referimos a Javascript, solemos referirnos en realidad al estándar ECMAScript. Este lenguaje puede a su vez ser interpretado por diferentes motores dando como lugar a la funcionalidad programada en nuestros scripts.

De este modo, un motor ECMAScript es un programa que ejecuta código escrito en sus versiones estándares como, por ejemplo, Javascript. Así pues, hay que recalcar que Javascript es una implementación del primero utilizada principalmente en el lado cliente, como parte de un entorno/navegador web.

El hecho de que existan diferentes intérpretes o motores, puede ser crucial a la hora de afrontar un desarrollo ya que, teniendo en cuenta la plataforma final en la que se desea correr nuestro código, tendremos que asumir las características de cada uno de ello.

La siguiente tabla trata de ofrecer un resúmen de los principales motores disponibles a día de hoy junto a la versión ECMA que implementan, el sistema operativo o plataforma sobre la que se despliegan y una breve relación tanto de sus características más destacadas así como los principales fabricantes o productos que lo utilizan.

Para una relación más detallada puede consultarse el artículo «List of ECMAScript engines» de Wikipedia y los correspondientes enlaces a cada uno de los mencionados.

Tabla comparativa de los distintos motores ECMAScript

Nombre ECMA OS Puntos fuertes Quién lo usa
V8 es5 windows/unix, .NET Mejora de rendimiento para cuellos de botella; eliminado de código basura, API propia, Debugg Node.js, Google Chrome, akshell
jscript es3 windows/unix, x86/sparc Integración con ActiveX y VBScript. Buen msscript debugger Windows Script Host, IE8-
jscript.NET es3 .NET Integración con ActiveX, .NET CLR, contruido según el paradigma de clases; tipado opcional; compilador estricto.
Chakra es5 windows 7, x86/x64/arm Eliminado de código basura Internet Exporer 9+
SpiderMonkey es5 es6 windows/unix Extensiones propias. Manipulación directa de XML (E4X) Mozilla/Netscape
Adobe, CouchDB, MongoDb,…
Rhino es5 java Integración con la plataforma Java; E4X, debugger ringojs, narwhaljs, Sun’s lively kernel
Narcissus es5 es6 igual que servidor
Nitro/JavaScriptCore/SquirrelFish/KJS es5 windows/unix Apple’s Safari ,WebKit internal engine
Carakan/Futhark/Linear B/Linear A es3 windows/unix Opera web browser
inscript es3 macos iCab web browser, early WebKit
RemObjects Script es3 .NET
IronJS es3 .NET
jurassic es5 .NET
tamarin es4 windows/unix Buenas herramientas de desarrollo Adobe Flash platform, Mozilla/Netscape products
jint es3 .NET
ecmascript-net es3 .NET optimización de la cola de llamadas
dmdscript es3 windows/unix Estamento Goto
besen es5 windows/unix Eliminación de código basura; inferencia de tipos Varios / Juegos
simple script engine es3 windows/unix Localización de memoria basado en regiones hv3 web browser

Consideraciones

Como curiosidad, cabe destacar que a día de hoy, la mayoría de motores aún continúan funcionando bajo la versión 3 del estándar. Aquellos que ya ofrecen la 5, suelen, además, adelantar algunas de las funcionalidades de la futura versión 6: patrones de módulos, proxies, etc. Es interesante observar como Tamarin implementa la malograda versión 4 defendida casi en exclusiva por Adobe y Mozilla.

Si atendemos a los casos de uso, encontramos con que la opción preferida por los desarrolladores es el SpiderMonkey mientras que el V8 de Google va ganando poco a poco terreno gracias fundamentalmente a Node.js y a la progresiva expansión del navegador Chrome.

En cuanto a modernidad e innovación, de entre los grandes fabricantes se descuelga Opera con un estándar aún anclado en la ya vieja versión 3 mientras que SpiderMonkey de nuevo se posiciona a la cabeza implementando ya funcionalidades de la sexta revisión (en este caso, el uso del Proxy).

Conclusión

Esta tabla, meramente informativa y de naturaleza cambiante, tiene que ser tenida únicamente como una referencia de lo que el panorama actual ofrece en cuanto al estado de los diferentes intérpretes. Una pequeña guía que no deja de ser interesante para saber con qué estándar debemos trabajar si nos dirigimos a una plataforma concreta.

Más:

Aún no tenemos debug!
Ningún marciano se ha comunicado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *