Ander San Miguel

Desarrollador Web

11/07/2017

Todos los frameworks son iguales a su manera

No me gustan los frameworks, así, en general.

A ver, entiendo su necesidad y uso unos cuantos de ellos continuamente, pero no, no me acaban de encajar.

Este es un tema viejo, mi opinión no es la más popular y tampoco considero que sea 100% inamovible, además es un tema complejo en el que hay que considerar muchos factores, este post es un intento de articular mis motivos y así intentar quitarme la sensación de que es una rabieta de las mías.

Si que de vez en cuando me ilusiona algún framework nuevo, o le admito bondades: Rails (ruby) lleva un montón de tiempo y tiene lo suyo, Laravel (PHP) hace mágia y es entretenido, Foundation (CSS) es súper rápido para prototipar, ... Y más recientemente: Vue y React (JS), gamechangers. Pero no, para un rato están genial, para prototipar son estupendos pero al final no me merecen la pena. Además hay otros frameworks pequeños que tienen más sentido para mi, por ejemplo: Slim (PHP) y Backbone (JS); Slim es un microframework que se encarga de la parte de routing de la aplicación, en la versión 2 era mi framework de cabecera siempre que tenía que hacer algún API http o alguna aplicación pequeña (luego le añadía librerías), y Backbone pues fue el framework con el que me adentré en aplicaciones javascript relativamente complejas (y lo sigo teniendo en gran estima, a pesar de la dependecia de jQuery).

Básicamente hay tres cosas que son las que me tiran para atrás a la hora de usar cualquier framework: falta de control en el código que escribo, la deuda técnica que conllevan y el sobrecoste computacional.

Respecto a la primera, la falta de control, es algo muy subjetivo y no pretendo convencer a nadie con ello, simplemente me gusta saber lo que hace el código que publico y actualmente casi todos los frameworks son demasiado grandes como para estudiarlos en detalle, tampoco me debería hacer falta, me fio, de verdad. Pero cuando luego hace falta algo muy concreto y/o específico está bien saber de donde vienen las cosas.

El sobrecoste computacional, pues... depende, en el backend no suele ser problemático, en el frontend si que puede serlo, aquí entra el debate entre comodidad de usar un framework contra velocidad de carga de la página. Bajo mi punto de vista ganaría siempre lo segundo pero aquí ya cada cual...

Y luego estaría la deuda técnica. Esto que también es debatible quizás es lo que tengo más claro. Empezar con un framework es fácil, hacer un blog en <framework genérico> en 20 minutos es muy sencillo (aunque ahora se usan otros ejemplos). Pero cuando tienes que hacer un aplicación real casi seguro que te vas a encontrar con alguna necesidad no cubierta (o no documentada) y entonces empieza la ronda de cabezazos contra la pared. Afecta también a la hora de introducir gente nueva al proyecto, al usar algún framework tienes que tener en cuenta la curva de aprendizaje. Mantener actualizado el framework, ...

«Pero, entonces, ¿cual es la alternativa? ¿reinventar la rueda para cada cosa que necesites?». No, la alternativa es usar librerías, librerías independientes que añadan bloques de funcionalidad a tu aplicación.

Desarrollo Web

Esto es a lo que me dedico, así que es lo que más vas a encontrar en esta página.

Contacto

Esta sección está clara, si quieres contactar conmigo, este es un buen sitio.