Los
Frontend Developers ahora pueden construir aplicaciones muy robustas
usando una variedad de frameworks basados principalmente en
javascript. Javascript ha pasado a ser el estándar debido a su
presencia en todos los navegadores web. Es multiplataforma, lo que
quiere decir que tiene la capacidad de ejecutarse en cualquier
dispositivo: teléfonos, tablets y computadoras. Algunas de las
aplicaciones que usas en tu computador hoy en día ha sido creadas
con javascript y probablemente no has notado la diferencia (ej:
Discord, Atom, Postman, Visual Studio Code, Skype, Musixmatch Lyrics
y muchas otras). Con esto podemos notar que se esta cerrando la
brecha que solía existir entre aplicaciones móviles, web y de
escritorio.
Hace
algunos años
Javascript no era lo suficientemente potente para crear aplicaciones
seguras o estables. En parte debido a la pobre compatibilidad de los
navegadores (en especial IE) que freno su progreso dando paso a
librerías como jQuery para resolver los problemas de compatibilidad
y añadir gran cantidad de funcionalidad (animaciones, manejo de DOM,
http-requests, etc).
Hoy
en día todo eso es cosa del pasado. Se puede crear aplicaciones
enteramente en javascript sin grandes sacrificios. Los frameworks js
actuales tienen gran crédito en el crecimiento de su uso como
lenguaje. Angular, React y Vue son los favoritos y comparten bases
comunes entre ellos. Cada día nace un nuevo framework que copia o le
da un pequeño giro de tuerca a los ya existentes y eso ha causado
cierta saturación, todos tienen una visión diferente de como hacer
las cosas.
En
este articulo nos enfocaremos en los frameworks ya consagrados:
Angular, React y Vue. Solo como referencia tendremos en cuenta a
jQuery (librería). Podemos pensar en los frameworks como algo que
ejecuta y organiza tu código. Mientras que una librería vendría a
ser algo que usas en tu código para realizar alguna tarea.
Se
proveen 4 aplicaciones funcionalmente iguales que pueden dar una idea
de como funciona cada uno. En ninguno de los casos nos hemos
propuesto usar la última
versión disponible de cada framework ya que la aplicación es muy
simple. Para dar una apariencia uniforme todas usan Bootstrap 3.x
(que a su vez tiene como dependencia jQuery).
Se
pueden descargar de los siguientes enlaces:
¿Que
podemos comparar? Pues se pueden comparar muchas cosas pero en
definitiva podríamos recomendar darle un vistazo a cada uno y ver
cual se adapta mas a su estilo de programación, que implementación
le parece mejor. Incluso el tipo de proyecto que necesite crear puede
ser determinante para elegir uno u otro.
Algunas
comparaciones preliminares nos dan algunos números que en realidad
no aportan diferencias radicales:
En
performance están muy cerca uno de otro,.. jQuery suele ser el mas
lento pero solo es significativo si aumentamos la cantidad de
cálculos en la prueba. Es notable que Angular de los 3 frameworks en
la prueba sea el mas completo y pesado. Vue es el mas simple y cómodo
de aprender de todos. Su velocidad es muy comparable a React. Solo se
tomaron en cuenta los mejores tiempos entre múltiples corridas.
En
algunos casos en lugar de darle importancia a la velocidad de
ejecución de la aplicación podría ser mas relevante la velocidad
con que se desarrolla la aplicación. En esta prueba React fue la mas
rápida de crear.
En
otras métricas podemos notar que jQuery es el que obliga a escribir
mas código y por ello tendría mas posibilidades de tener errores y
requerir mayor mantenimiento. Vue brilla en este aspecto con un
código muy limpio y elegante. React y su uso de JSX presenta algunos
retos logísticos.
Hay
algunos puntos fuertes y débiles que podemos mencionar:
ANGULAR:
Lo
bueno:
- Estable, probado, completo, bien estructurado.
- Buena separación de código, plantilla, estilos, etc.
- Tiene a Google como respaldo.
- Gran demanda laboral.
- Uso de Typescript como estándar
Lo
malo:
- Puede pesado o exagerado para proyectos pequeños.
- No se puede implementar gradualmente
- No cuenta con métodos 'computados'
REACT:
Lo
bueno:
- Tiene a Facebook como respaldo.
- Se puede implementar gradualmente.
- Es muy rápido.
- Gran demanda laboral.
Lo
malo:
- JSX requiere adaptación y posiblemente un diseñador que sepa programar.
- Algo complejo en cuanto a flujo de datos.
- Tiene cierta curva de aprendizaje.
- Requiere uso extensivo de librerías de terceros (router, http, etc)
VUE:
Lo
bueno:
- Documentación y Facilidad de aprendizaje
- Compacto y rápido.
- Se puede implementar gradualmente.
- Es un punto medio entre Angular y React. Lo mejor de ambos.
- Es un framework progresivo.
- Tiene un gestor visual de proyectos (Vue UI).
- Tiene soporte para trabajar del lado del servidor y páginas estáticas.
Lo
malo:
- Ninguna empresa importante como respaldo
- Pocas ofertas laborales
- No es un proyecto maduro ya que es el mas reciente de los tres.
- Algunos plugins son difíciles de encontrar (ej: mapas)
Es
importante hacer notar que los resultados de estas pruebas pueden
variar con diferentes versiones de cada framework o con
optimizaciones. Otro punto que no queremos dejar pasar es que
cualquiera de estos frameworks puede usarse para desarrollar
aplicaciones móviles si se usan en conjunto con Ionic, Cordoba,
NativeScript o React Native.
Nuestra
opinión
puede ser subjetiva. Lo que para nosotros es una ventaja para otra
persona puede ser una desventaja y viceversa, al final ninguno de
estos frameworks es radicalmente distinto. La conveniencia de usar
cada uno básicamente depende de gustos personales y el tipo de
proyecto a desarrollar.
COMENTARIOS