Comparativa de Frameworks Javascript

Feb 4, 2014

 

Es necesario entender que un framework es una abstracción de código común que provee funcionalidades genéricas que pueden ser utilizadas para desarrollar aplicaciones de manera rápidafácilmodular y sencillaahorrando tiempo y esfuerzo. Entonces, un framework es concreto y también “incompleto”. Concreto porque es, desde un punto de vista simple, un conjunto de componentes; incompleto, porque por sí­ mismos no pueden ser utilizados, ya que guí­an a la solución de problemas de programación recurrentes, pero, por lo general, no son la solución específica completa.

En su mayorí­a, los frameworks javascript proveen componentes para:

  • Compatibilidad. Agregan la posibilidad de escribir código javascript totalmente compatible con todos lo navegadores y motores Javascript más utilizados. Esto aumenta la portabilidad y eliminan el “gran dolor de cabeza” de incompatibilidad entre navegadores y sus motores intérpretes javascript.
  • Comunicación asíncrona (Ajax). Usando este acercamiento, es fácil utilizar XMLHttpRequest para manejar y manipular los datos en los elementos de un sitio bien, aumentando la interactividad y experiencia del usuario.
  • DOM. Maximizan la capacidad de agregar, editar, cambiar, eliminar elementos de manera dinámica agregando librerías que facilitan usar DOM.
  • Validación de Formularios. Permiten de una manera relativamente fácil validar campos dentro de uno o varios formularios. Esto, desde el punto de vista del desarrollador, simplifica y reduce el código para procesar dichos formularios, ya que los datos llegan previamente validados, reduciendo los errores de tipos de datos.
  • Efectos visuales. Utilizando la manipulación de los elementos, se pueden crear efectos visuales y animaciones. Entre los efectos se encuentran: Aparecer y Desaparecer, Redimensionamiento, Move, Aparecer y Desaparecer, y más.
  • Almacenamiento Client-side. En adición provee funciones para leer y escribir cookies. También proveen una abstracción de almacenamiento que permite a las aplicaciones web guardar datos del lado del cliente, persistente y de manera segura.
  • Manejo JSON. Incrementa al máximo el manejo de datos, que pueden ser utilizados para presentar informaciones de manera dinámica y en tiempo de ejecución.
  • Manejo de Eventos. Esta caracteréstica agregada, permite reaccionar de una manera u otra dependiendo de las acciones del usuario.
  • Recibidores de Datos. Permiten utilizar diferentes formatos de datos como XML, HTML, Texto, JSON, ATOM, entre otros.
  • Arrastra y Suelta“. Mejor conocido como Drag and Drop. Es una funcionalidad que brinda la posibilidad de arrastrar elementos dentro de una misma página que interactúe con el resto de los elementos.

Voy a hablar de los 3 frameworks que creo que mas auge tienen a día de hoy:

Angular.js

  • Ventajas: Sintaxis fácil, buena documentación, arquitectura MVC, sistema de inyección de dependencias (patrón IoC), posee un gran soporte para UI-Binding.
  • Inconvenientes: Código poco modular y las vistas no son los suficientemente modulares para la realización de una aplicación empresarial.

BackBone.js

  • Ventajas: Gran comunidad que sigue creciendo y es de gran ayuda, digamos que este framework es una amplicación de Underscore.js, pero este, también es un gran framework.
  • Inconvenientes: Demasiado sencillo, no es lo suficientemente completo en funcionalidad y hace que se tenga que repetir mucho código.

Batman.js

  • Ventajas: Gran integración con Ruby on Rails, si conoces esta sintaxis no tienes problema para entender la sintaxis de Batman. Como consecuencia de los anterior, batman nos proporciona un código claro y simple. Posee una aproximación simple a binding, persistencia y routing.
  • Inconvenientes: No me gustan los singleton, y mucho menos la ejecución de controladores singleton.

 

Cualquiera de los 3 frameworks son muy interesantes, y ninguno es descartable a la hora de desarrollar aplicaciones.