Backbone, el elegido

Así que Backbone, ¿eh?

Pues sí, después de mucho pensar he elegido Backbone para introducirme en el apasionante mundo de los frameworks en javascript. Hay varios motivos que han provocado esta decisión, a saber: documentación extensa (aunque no sea oficial) y no te dice como hacer las cosas (esto es bueno y malo, luego más de esto). Y hay algún motivo que no ha influido en absoluto: tamaño del framework y ninguna de las cosas que se suelen utilizar al hacer las comparativas entre framewworks sólo basadas en cosas que se pueden medir.

En cuanto a la documentación no hay mucho que decir: muchos tutoriales, vídeos y gente que cuenta sus cosas, vamos, lo de siempre.

Lo de que no te diga como hacer las cosas (no opinionated que dirían en inglés) está bien, al menos para mí, al menos para empezar. He utilizado muchos frameworks que si que te dicen como hacer las cosas y está bien, es rápido, es fácil, es mágico; el problema llega cuando quieres salir del tutorial del ejemplo (sí, el del blog en veinte minutos). En ese momento, lo que hasta ahora había sido un mundo de maravillas infinitas se convierte en una pared que no se puede saltar, ni rodear, ni atravesar. No tiene por que ser culpa del framework (al menos siempre), simplemente es que no se puede documentar todo y no siempre es evidente para todo el mundo como extrapolar las técnicas justas y necesarias para hacer ese blog a una aplicación del mundo real.

En cambio, con Backbone, sin tener un conocimiento básico (o no tan básico) de los elementos claves (al menos: modelos, vistas y colecciones), no puedes hacer nada, nada de nada. Luego en cambio, una vez que entiendes las ideas principales puedes ir solucionando los problemas que te vas encontrando o por lo menos puedes intentar hacerlo.

Una cosa que tiene de malo esta filosofía es que como no te dice como hacer las cosas, te toca a tí pensarlas (y desarrollar la situación), y a no ser que seas muy bueno (o tengas mucha suerte) es raro acertar a la primera, con lo que estás trabajando mucho y probablemente no lo estés haciendo bien (o del todo bien). Pero no pasa nada, estás aprendiendo. Y además, estás en esto para el largo plazo, ¿no? Pues hay una buena noticia, las herramientas que hacen pocas cosas pero que las hacen bien, duran. Así que tienes tiempo de ir mejorando. Y además hay complementos, puedes renunciar a algunas opciones añadiendo complementos de alguien que tenga una solución a tu problema y que te guste como lo ha solucionado, o directamente optar por utilizar Marionette o algún otro superset de Backbone y empezar con algo más completo desde un principio (aunque para empezar sigo opinando que es mejor desde la base).

Una de las cosas que más me gustan de Backbone es que a pesar de que he tenido que aprender un montón de cosas nuevas (era uno de los propósitos, así que tan poco es demasiado malo) me permite utilizar la misma lógica que venía utilizando en mis últimas incursiones en esto del javascript dándome sólo la justa capa de abstracción que me permite no perderme en intentar entender como funciona el conjunto.

Supongo que habrá gente que prefiera cosas más mágicas, y oye, que si les funciona pues perfecto, pero a mi me gusta hacer algunas cosas de una determinada manera y si tengo que cambiar porque el framework de turno me obliga a especificar un atributo extra en un elemento para determinar como se va a comportar (por ejemplo) pues como que no lo veo, pero como en todo, para gustos...