el contexto de las herramientas

Una reflexión sobre los criterios a sopesar para decantarse por un frame js.

Beatriz Milhazes

archivado en: JavaScript / 19 septiembre, 2016

En un debate de la lista de correo de MadridJS, un programador planteaba una serie de dudas que me ha parecido responder también por aquí:

«Resumiendo mis dudas:
  • »¿Para qué tipo de proyecto utilizaríais Angular 1.x? ¿Realmente se le va a dejar de dar soporte después de que muchas empresas grandes hayan empezado a utilizarlo hace relativamente »poco tiempo?
  • »¿Para qué tipo de proyectos utilizaríais React?
  • »React vs Angular 2 vs Polymer
  • »¿Nunca más vamos a utlizar vanillajs tal cual? ¿Vamos a ser dependientes de frameworks para poder realizar nuestro trabajo?»

El tema es muy complejo y sospecho que no existe una sola respuesta correcta. La cantidad de herramientas disponibles para trabajar hoy en día con javaScript es tremenda, algunas son mejores que otras, pero en general creo que todas pueden aportar o restar según el contexto en que vayan a ser utilizadas y podemos dibujar este contexto a partir de algunas preguntas, como las que enumero a continuación a vuelapluma.

1. ¿Qué necesitamos hacer?

Esta es la cuestión más importante que debemos resolver antes de decantarnos por una herramienta u otra. Al igual que no existe un tipo de calzado mejor que otro, sino que las botas están bien para ir a la montaña y las chanclas para ir a la playa, cada framework puede funcionar mejor en un entorno que otro. Por ejemplo, para una aplicación con decenas de pantallas, que solo va por Internet y con un trabajo rest muy intenso, lo mejor podría ser angular 1.*; pero para una aplicación pequeña, que debe ir como un tiro en móviles, quizás lo más sensato sea tirar de polymer, react o backbone, por decir tres opciones. Por lo tanto, lo primero que deberíamos sopesar es qué aporta cada herramienta a la solución de una necesidad concreta de la aplicación que debemos realizar: ¿Hay que mimar el SEO? ¿Hay que trabajar con otras librerías, como D3? ¿Debe funcionar en el explorer >11? ¿Necesita un enfoque modular porque con toda seguridad se escalará en una segunda fase? ¿Hay que hacer tests? Y así un largo etcétera.

2. ¿Qué somos capaces de hacer?

Salvo en los coches de choque, que soy un crack, soy incapaz de manejar cualquier artefacto que vaya sobre cuatro ruedas. Me da igual que tal coche sea mejor que otro, ya que en mis manos cualquiera terminará estrellado sin ni siquiera haberlo arrancado. Algunas herramientas, como Angular (la 1 y la 2), tienen una curva de aprendizaje muy alta y, si no se saben manejar bien, lo más probable es que terminen conduciendo a una muerte anunciada, a un código de mala calidad que tarde o temprano hay que refactorizar por completo. Si no se conoce una herramienta, por lo tanto, hay que excluirla de la ecuación. Y con conocerla entiendo, claro está, haber ido más allá del hola-mundo de un tutorial. En mi trabajo (Vector), por ejemplo, antes de meternos a realizar toda una aplicación solo con polymer, antes nos hemos curtido preparando componentes independientes que encajaban en cualquier framework.

3. ¿Cuánto tiempo tenemos para hacerlo?

En este mundo cada vez más enloquecido, donde aún no han terminado de explicarte un proyecto que ya te están pidiendo una versión beta, el tiempo es fundamental y hay herramientas más ágiles que otras. Por ejemplo, Angular 2 quizás sea mejor que sus versiones anteriores, pero el desarrollo es más lento y pesado y, lo que es peor, no podemos aprovechar aún ni tres líneas de código de proyectos anteriores, ya que acaba de nacer.

4. ¿Cuánto nos pagan por hacerlo?

Es una cuestión relacionada con la anterior. Tal vez con la herramienta monikongui js, que no existe, se consiga un resultado de mayor calidad, algo más escalable y mantenible, pero si te pagan dos duros y además te piden que esté para mañana, no queda otra que adoptar los paradigmas de la programación orientada a entregas, esto es, vale con que chufle ahora. En la vida hay muchos espacios donde canalizar el altruismo -como la ONG médicos sin fronteras, por decir la primera que me viene a la cabeza-, por lo que debemos terminar con la manía de regalar nuestro tiempo en aras de la diosa de la calidad.

Se pueden formular más cuestiones, pero baste con las expuestas para destacar la importancia de analizar el contexto de una aplicación antes de decidirse por una herramienta u otra.

Termino con una reflexión sobre la última pregunta con que comenzaba este texto, sobre si recuperaremos o no el vainilla js. Mi opinión es que sí. Ahora estamos tan deslumbrados por las posibilidades de las nuevas herramientas, que nos da por usarlas incluso cuando son contraproducentes por el contexto de la aplicación, pero es cuestión de tiempo que esta fiebre se serene y se amortigüe la fashion-victim que aqueja el mundo js. De hecho, cada vez escucho a más programadores decir que para aplicaciones pequeñas e incluso medianas lo mejor es javaScript con el apoyo de microlibrerías especializadas.

 

|| Tags:

valoración de los lectores sobre el contexto de las herramientas

  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • 5 sobre 5 (2 votos)

¿Te ha parecido útil o interesante esta entrada?
dormido, valoración 1 nadapensativo, valoración 2 un poco sonrisa, valoración 3 a medias guiño, valoración 4 bastante aplauso, valoración 5 mucho

Tú opinión es muy importante, gracias por compartirla!

Aportar un comentario


*