Comparativa entre los distintos motores ECMAScript

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

NombreECMAOSPuntos fuertesQuién lo usa
V8 es5windows/unix, .NETMejora de rendimiento para cuellos de botella; eliminado de código basura, API propia, DebuggNode.js, Google Chrome, akshell
jscript es3windows/unix, x86/sparcIntegración con ActiveX y VBScript. Buen msscript debuggerWindows Script Host, IE8-
jscript.NET es3.NETIntegración con ActiveX, .NET CLR, contruido según el paradigma de clases; tipado opcional; compilador estricto.
Chakra es5windows 7, x86/x64/armEliminado de código basuraInternet Exporer 9+
SpiderMonkey es5 es6windows/unixExtensiones propias. Manipulación directa de XML (E4X)Mozilla/Netscape
Adobe, CouchDB, MongoDb,…
Rhino es5javaIntegración con la plataforma Java; E4X, debuggerringojs, narwhaljs, Sun’s lively kernel
Narcissus es5 es6igual que servidor
Nitro/JavaScriptCore/SquirrelFish/KJS es5windows/unixApple’s Safari ,WebKit internal engine
Carakan/Futhark/Linear B/Linear A es3windows/unixOpera web browser
inscript es3macosiCab web browser, early WebKit
RemObjects Script es3.NET
IronJS es3.NET
jurassic es5.NET
tamarin es4windows/unixBuenas herramientas de desarrollo AdobeFlash platform, Mozilla/Netscape products
jint es3.NET
ecmascript-net es3.NEToptimización de la cola de llamadas
dmdscript es3windows/unixEstamento Goto
besen es5windows/unixEliminación de código basura; inferencia de tiposVarios / Juegos
simple script engine es3windows/unixLocalización de memoria basado en regioneshv3 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.

Acerca de Carlos Benítez

Programador Web y arquitecto Javascript. Experto en jQuery, accesibilidad y usabilidad. Fundador de www.etnassoft.com.
Esta entrada fue publicada en Javascript y etiquetada , , , , . Guarda el enlace permanente. Sígueme en Twitter

Últimos libros gratuitos añadidos a OpenLibra

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 necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Licencia Creative Commons 3.0

®Copyright 2011. Cotenido web bajo licencia Creative Commons 3.0

Códigos bajo licencias MIT y GPL. Ver página de licencias para más información