AngularComo seguramente sabrás, se acaba de presentar Angular 2, llamada a ser según algunos el futuro del desarrollo web.

A continuación os comento mi punto de vista sobre esta tecnología, pero no sobre si es buena, mala o regular, o las ventajas y desventajas que tiene, sino sobre cómo pienso que lo han hecho de mal respecto a gestionar la comunicación del proyecto. Y es que algo como esto es crucial si estás gestionando una tecnología utilizada por millones de personas, como es el caso.

Desde mi óptica, el mayor problema de Angular 2 ha sido la comunicación. Les ha ocurrido lo mismo que al equipo de Microsoft con .NET Core y todos los vaivenes que han pegado con su nombre, y a la hora de sentar expectativas. Con todos mis respetos, es lo que tiene dejar a los técnicos gestionar la comunicación.

La importancia de un nombre

Cuando hicieron el anuncio hace dos años, todo el mundo se pensó que Angular 2 era la nueva versión de Angular JS, llamada a sustituirlo de inmediato, y que éste último estaba "muerto". Lo mismo pasó con la plataforma .NET "tradicional" y .NET Core. 

Lo cierto es que en ninguno de los dos casos es así. .NET Core no sustituye a .NET, sino que es otra nueva opción en paralelo. Y Angular JS va a seguir sacando versiones al menos durante bastante tiempo (la 1.6 está a punto de aparecer), y además existen literalmente decenas de miles (sino millones) de aplicaciones por ahí que la van a seguir utilizando.

En mi opinión quién lo ha hecho mucho mejor es sin duda Rob Eisenberg y el equipo de Durandal/Aurelia. Aurelia va a sustituir a Durandal JS a largo plazo, pero no es una nueva versión de éste, sino un nuevo framework también. Dándoles nombres completamente distintos y comunicándolo de manera cuidadosa han conseguido no asustar a la gente, ilusionar a sus programadores existentes y lograr una transición mucho más suave.

¿Parece que exagero?

Cuando anunciaron Angular 2 hace dos años lo que dijeron básicamente fue: "No habrá controladores, no habrá scopes, es totalmente diferente a la actual, está escrita desde cero, y no va a haber siquiera formar de migrar de una a otra*". Ese sería el resumen. Ah, y por supuesto no aclararon que Angular JS iba a seguir en desarrollo durante mucho tiempo y que a Angular 2 le faltaban todavía años para estar disponible.

Eso les costó una buena bronca por parte de la comunidad (sobre todo por lo de la migración), pero es que además hizo que mucha gente que había apostado por Angular JS porque Google estaba detrás y veían estabilidad en el proyecto, se echara atrás y se fuese a otros frameworks. Les ha costado usuarios, vamos.

Y es que los entusiastas se lanzaron a ello como locos, pero las empresas lo que requieren es estabilidad. Si vas a crear una aplicación 100% basada en un framework de terceros y tu negocio va a depender por tanto de él, es mejor que sea estable durante mucho tiempo.

Lo mismo le ocurrió a Microsoft con .NET core, y por exactamente los mismos motivos. De hecho me consta que estos dos años de vaivenes e incertidumbre, hasta que todo se empezó a aclarar, les ha costado la pérdida de muchos desarrolladores. Una lástima.

Información errónea

Errores

Desarrollar en abierto tiene muchas ventajas, pero también muchos inconvenientes, sobre todo cuando el periodo de desarrollo es muy largo, como en el caso que nos ocupa.

Tras su anuncio, de repente hubo también un interés brutal por Angular 2 por parte de muchos "alpha-geeks" de todo el planeta, cuando en realidad todavía faltaba muchísimo tiempo para que estuviera disponible. De hecho lo poco que había entonces apenas se parece a lo que ahora acaba de salir. Y por el camino fue cambiando todavía más, lógicamente. Todos estos geeks escribieron cientos o miles de artículos sobre cómo se hacían las cosas con el estado en el que estaba entonces Angular 2.

Para añadir más leña al fuego, el equipo de Angular 2, en mi opinión, no ha sabido gestionar tampoco el ciclo habitual de liberación de un producto software. Las betas son productos "tempranos" que todavía son inestables y además pueden cambiar y meter "breaking changes" con versiones beta anteriores. Hasta aquí todo correcto.

Sin embargo, de toda la vida del señor, las Release Candidates (o RCs) han sido versiones que, esencialmente, son iguales a las versiones definitivas (de ahí su denominación). Se facilitan para poder probarlas a fondo y simplemente se corrigen los errores de última hora que aparecen y cuestiones similares. Es de decir, siempre se ha tratado de versiones semi-estables con las que puedes trabajar sin miedo a que la siguiente RC o la definitiva (RTM) vayan a estropearte nada. Bueno, en el caso de Angular 2 (y de .NET Core) esto no ha sido así.

El equipo de Angular, entre RC y RC, han realizado cambios importantes que hacían que las cosas rompieran. Muy, muy mal, amigos.

Durante los dos últimos 2 años, por lo tanto, se han publicado decenas de miles de artículos sobre Angular 2. Pero debido a todo esto, la mayor parte de la información que hay en la web sobre Angular 2  ahora mismo en blogs, foros... es incorrecta (lo mismo ocurre con .NET Core, por cierto).

En la práctica esto significa que si buscas información sobre este tema para resolver un problema concreto o para aprender una técnica determinada, si es anterior a septiembre de 2016 es muy probable que sea información errónea. Salvo, claro está, el caso de documentaciones oficiales de Angular o de empresas que han apostado fuerte por esta tecnología, que estarán actualizadas. Lo mismo ocurre con cualquier documentación sobre .NET Core anterior al mes de Junio de 2016.

Según ellos mismos, han escuchado a sus usuarios y a partir de ahora todo esto van a cambiar y usarán versionamiento semántico para lanzar las nuevas versiones. A buenas horas, pero algo es algo.

----

Esta es una opinión completamente subjetiva sobre este asunto, que la verdad es que me ha cabreado mucho en varias ocasiones durante los últimos dos años, tanto con Angular 2 como con .NET Core. Me he referido en el título a Angular porque acaba de salir, pero es exactamente el mismo caso para ambos.

Comprendo y respeto que tu punto de vista sea diferente, y puedo entender incluso por qué lo han hecho en ocasiones. Pero creo que cualquiera que piense más allá de la propia tecnología y el desarrollo abierto convendrá conmigo en que esta no es la manera correcta de gestionar un proyecto de cara al público. Espero que todo el sufrimiento que nos han hecho pasar en estos 24 meses a los que nos dedicamos a los contenidos sirva al menos para que no se vuelva a repetir. Aunque no soy muy optimista al respecto...

 

* Ahora con la versión definitiva ya disponible, parece que la migración desde Angular Js a Angular 2 será posible aunque habrá que echarle mucho valor para hacerla, salvo en las aplicaciones más sencillas.

Escrito por un humano, no por una IA