Saturday, September 27, 2014

AngularJS - Por que es AngularJS tan complejo ?

Introducción

Hace unos dias conversaba con un amigo sobre AngularJS y la razon de su complejidad. En si no es complejo del todo, tiene que ver mas bien con previas experiencias que el equipo de AngularJS obtuvo en proyectos anteriores (por ejemplo Google Closure, quizas GWT). Pero mis puntos claves que he descubierto son los siguientes.

Tiempo de curva de aprendizaje vs tiempo al mercado

Yo estuve en un proyecto de 24 a 28 meses usando Backbone, jQuery y Bootstrap. Al principio seguiamos todos los patrones y mejores practicas. El codigo era escalable. Pero fallamos en varios aspectos que a continuacion describo:

Entrenamiento y divulgacion interna

Eramos malos documentando el API recien creado. Otros equipos encontraron dificultad en adaptarse.

Obsolesencia

A los seis meses, el mismo Backbone de nuestro framework nunca lo actualizamos.

Tiempo al mercado (Time to Market)

Cuando finalmente llego AngularJS al cliente, la entrega de los otros equipos de algun modo era mas rapida que la nuestra. Seguramente porque evitaron el sindrome NIH (Not Invented Here).

La curva

Obsolesencia y divulgacion son dos puntos claves. Pero no explica por si solo el "Time to Market". Es aqui la diferencia de "Angular Way" vs tu framework con librerias. AngularJS "normaliza" el conocimiento, al tener directivas como la forma para interactuar con jQuery y factorias/servicios como la forma de creacion de objetos. Esto permite desarrollar sumamente rapido con los mismos conceptos entre equipos. De tal modo que con 100 horas (casi un mes solo en Angular) obtienes un conocimiento intermedio al que obtendrias con la misma cantidad que con Backbone, jQuery y todo lo relacionado (templates, grunt, requirejs, stickit, marionette, thorax, etc)

La curva de aprendizaje siempre va ser importante como tambien el time to market. Yo lo veo como un Ying Yang. Hay un balance entre estos dos.

Realmente debo usar AngularJS para todo emprendimiento?

La respuesta es facil, todo va depender de tu escenario, en las habilidades de tu equipo, el presupuesto y la crema, que tanto "edgy" o en boga quieran usar tecnologia innovadora (Polymer WebComponents, ES6 transpiler, ClojureScript/Om)

En las siguientes entregas tocare brevemente el tema del empleo y los informales, despues continuo con mas AngularJS y posteriormente un poco de HapiJS y Joi

Hasta la siguiente entrega




No comments:

Post a Comment