Contenido

Dojo es el framework Javascript más rápido

31 mar

+ 13

Hoy Ajaxian, publica un artículo que yo quería haber escrito hace unas semanas. TaskSpeed es una aplicación que usar SlickSpeed para testear los principales frameworks JS en acciones DOM básicas. Los resultados obtenidos han declarado a Dojo como el framework JS más rápido, seguido de MooTools 1.2.1 y jQuery 1.3.2.

frameworks_speed_test
(Ver Imagen)

Estos resultados puedes comprobarlos directamente en el propio test.Es interesante ver como estos resultados son similares a los obtenidos en el Framework Speed Test, una aplicación que monté con la ayuda de todos los que me ayudaron a montar los ficheros de pruebas de cada uno de los frameworks.

frameworks_speed_test3
(Ver Imagen)

framework_speed_test2
(Ver Imagen)

En todos los test, vemos que sorprendentemente jQuery es excesivamente lento y Ext.js impresionantemente rápido. En las pruebas que realicé tenía miedo de lo contrario, ya que al usar el selector CSS (Sizzle) podría beneficiar a jQuery en estos puntos. Lamentablemente esto no le ha servido para nada, principalmente por la generación de DOM que lo hace de una forma diferente a los demás.

jQuery

La función html() de jQuery, genera los elementos DOM y los injecta en el elemento seleccionado, algo más laborioso que los innerHTML que hacen los demás frameworks. Esto no debe servir de excusa, ya que en una versión con innerHTML que monté para igualar los frameworks jQuery no llegaba a despuntar frente a los otros, aunque si que mejoraba algo.

Ext.js

Por otro lado en Ext.js, me ha sido imposible encontrar algo que permita hacer un fireEvent(), bueno miento, monté un sistema que funcionaba, pero era el proceso más lento de los testeados y no me parecía justo implementarlo, así que aparece como Error, pero no es que se haya producido un fallo, sinó es que no está desarrollado.

También me parece interesante destacar los 500kb necesarios para ejecutar Ext.js.(Es un merge de 2 ficheros del framework)

Bueno, si consigo añadir Dojo sería interesante verlo frente a frente a Ext.js.

Proyecto

El proyecto está disponible en GitHub.

Agradecimientos

  1. Jota y Jose Antonio por aguantarme en la infinidad de mails que hemos cruzado.
  2. John Resig, por contestar a un mail sobre la optimización de las pruebas de JS.
  3. Paul Bakaus, por la ayuda ofrecida en la optimización.
  4. JuanPe, Kike, Jordi y Luigi por debatir conmigo los resultados.
  5. A todos vosotros por leerme cada día. ;)
  • ¿es solo la velocidad la que buscamos en un buen framework?

    esta velocidad ¿el usuario final llega a percibirlas?

    Dojo ademas de ser rapido ¿que cosas hace que lo puedan hacer atractivo?

  • Seria bueno tambien hacer incapie en el tamaño en Kb de cada Framework.

  • @anieto Conseguiras dojo, hombre de poca fe ;). Tengo que cambiarlo un poquito para adaptarlo a la version 1.3. Espero tener mas suerte con la parte de los eventos en el test que no la tengo fina.

    @inyaka Respecto a la velocidad del usuario final. Totalmente de acuerdo. Yo personalmente no percibo diferencias de milisegundos.

    A mi personalmente me parece que dojo esta un paso por delante de los demas. No hablo la velocidad de los selectores CSS sino al proyecto en si. dojo + dijit + dojox nos dan una librería totalmente opensource muy bien pensada y diseñada. Ext me pacece muy bonito (algunas demos impresionan) pero a diferncia de dojo detras de Ext hay una sola persona (recordemos el sonado cambio de licencia),

    jquery es impresionante. Muy facil de usar y muy potente. Tiene una coleccion de plugins muy grande pero a mi parecer cada uno de su padre y de su madre. Muchos plugins son proyectos personales que nadie te asegura que van a perdurar y que van a ser compatibles con futuras versiones de jquery. Ya se que existe jquery ui pero es muy pobre en comparacion con ext o dojo.

    Respecto a mootools, yui, prototype pues no las conozco lo suficiente como para hacer una valoración

    Pero una cosa si que tengo claro. El mejor framework es el que domina uno mismo. Los frameworks por si solos no hacen nada. Son las personas las que hacen cosas.

    Un saludo, Gonzalo

  • Solo puedo decir que ole, a los de dojo.

    Personalmente nunca lo use, pero he visto parte de su libreria, y es de lo mejorcito que hay, y encima es eficiente, tendre que hecharle un ojo y aprender a usarla.

  • 1 segundo mas un segundo menos, no debe ser un criterio para implementar o no un framework, personalmente prefiero jQuery y lo hago porque tiene la mejor comunidad y esta mas popularizado que cualquier otro, lo que da tranquilidad.

    Ademas, de jQuery me gusta que es un punto medio, no es tan cerrado como Ext js, me permite crear mis propios pluggins fácilmente y si necesito alguno tengo mucho de donde escojer.

  • Aprovecho para preguntar.

    http://www.dhtmlx.com/
    Esto es un framework que podría ser comparado con los demás, es que se me parece mucho a extjs.

    Si me podéis sacar de la duda, es que me hubiera gustado verlo en la comparativa.

  • Buenas, yo he trabajado hasta hace poco con ExtJS (hasta hace un mes realmente). Este fin de semana intentaré pasar el script del otro post que publicaste.

    Un saludo! :)

  • Respecto a los 500 kb de ExtJs, puedes bajar mucho el tamaño si te construyes tu mismo el framework.
    http://extjs.com/products/extjs/build/ aunque solo el nucleo, ya ocupa sus 120kb. Desconozco el tamaño de las otras librerías

  • Y a quien le importan 80 milisengundos de mierda? No digo que dojo sea malo ni nada de eso (aunque use jquery) pero creo que esto no es noticia.
    Cuando quise aprender dude entre jquery, dojo, mootools, extJS, prototype, YUI y alguna más.

    PD:Me da pena no haber aprendido mootools, me molan las vacas xD.

  • ala mela jquery no me gusta prefiero el prototype pero -.- el extjs esta buenaso -.- 1 segundo menos un segundo mas ese ta loco son varios segundos tarupido -.-” jquery te da todo ala meno cual es el chiste :s

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.