El precio de usar frameworks

Hace ya un tiempo que leí este artículo con un titular bastante llamativo. El resumen básico es que no recomienda gastar tiempo en aprender sobre un framework en concreto. Es mejor invertirlo en aprender conceptos más transversales. Porque, según el autor, al final estos acaban desapareciendo o caen en desuso con el tiempo.

El otro día intentando mejorar un script de un proceso que ejecutamos en producción de una web me lo recordó. En nuestro día a día utilizamos mucho el framework PHP Laravel. La verdad que nos encanta. Llevamos ya tres años con él y podemos decir que tenemos bastante experiencia. Pero ese proceso en cuestión me puso en alerta sobre librerías y frameworks en general.

En concreto era una iteración que a cada paso iba incrementando el uso de memoria RAM. La verdad que en algunos casos nos estaba dando memory leaks. Intentando mejorarlo me volví bastante loco hasta que decidí no usar los modelos Eloquent de Laravel. A partir de allí el script se estabilizó en los 15MB todo el rato.

Y aquí es cuando te asaltan las dudas. La verdad que estos modelos facilitan mucho el escribir código, es más rápido, más mantenible, más legible. Pero en su contra estás pagando un precio en recursos que en algunos casos puede ser muy alto. Por ignorancia nos habíamos metido en un buen lío.

Es decir, te da la sensación que para sacar todo el jugo a un framework tienes que, a veces, conocerlo al nivel de implementación o llevar la tira de años con él. ¿Vale la pena esa inversión? Según el enlace de más arriba probablemente no. En mi opinión sí que vale la pena. Al usar según que tipo de frameworks, al menos Laravel, aprendes mucho. Puedes ver como otra gente afronta problemas que seguramente ya has tenido. Seguramente también ves aplicaciones directas, y reales, de patrones de programación o de arquitectura. Conocimientos todos ellos muy transversales.

 

Photo Credit: John Flickr cc
Escrito por Miquel Frontera Lladó el 11/10/2019

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *