A lo largo de mi corta carrera profesional, y sobre todo en los primeros años, me las he visto con frameworks caseros, he leído ficheros XML utilizando Dom, he subido ficheros al servidor extrayéndolos directamente de la Request y hecho muchas otras barbaridades. En algunos casos la necesidad de utilizar soluciones "caseras" era una imposición de la empresa, reacia a utilizar librerías ajenas a ella, aunque en la mayoría de los casos fue por desconocimiento.
Hoy en día es sabido por todos que Internet podemos llegar a encontrar cientos de frameworks y librerías de código abierto que pueden llegar a facilitarnos la vida de una forma asombrosa. Aun así, todavía podemos encontrar desarrolladores reacios a utilizar todas estas librerías testeadas y utilizadas en algunos casos cientos de miles de desarrolladores. De Struts, por ejemplo, he oído decir cosas como que "es un framework que está de moda y la gente lo utiliza para ser guay", "limita mucho" o "a mí me gusta hacer las cosas a mi modo, si todo te lo hace un framework no es divertido". No hace falta aclarar en estos casos las frases salieron de personas que nunca han trabajado con este framework o similar, que sólo saben desarrollar código espagueti o lo divertido que resulta trabajar con un framework casero.
¿Qué le lleva a una persona a tratar de implementar la solución a un problema que ya está resuelto? Si es desconocimiento, creo que queda excusado pero si has oído hablar de alguna herramienta que soluciona tu problema, ¿por qué no utilizarla? Puede haber algunos casos en los que alguien opte por su solución casera frente a una profesional considerando que tiene capacidad y tiempo para implementar dicha solución (insensato) pero creo que en la mayoría de los casos es debido al miedo. Este miedo al desconocimiento, que admito haber sentido alguna vez, hace buscar una y mil excusas para no utilizar estas librerías que tanto nos pueden facilitar la existencia: es un framework que nos limita mucho, sólo se utiliza porque está de moda, no se ajusta a mi problema, no tengo tiempo para documentarme, no me fio del código de otra persona, me limita mi "liberta creativa" y muchas más. ¡Ay! Cuándo daño hace tanta libertad creativa suelta.
Optar por una solución casera frente a una profesional si duda nos llevará a un error que nos hará perder tiempo y nos causará problemas hasta el fin de la existencia de nuestro código y a todo el que lo herede. Y el primer error que se comete se encuentra en la primera palabra de la frase anterior: optar.
Y es que, escoger una solución profesional frente a una casera no debe ser una opción sino un imperativo. ¿O es que alguien pretende realizar una aplicación Web 2.0 de forma casera sin las herramientas, librerías y framework de los que disponemos?. Sin duda imposible.
Cuando se nos plantea un problema no debemos preguntarnos cómo lo vamos a resolver, sino cuales de las soluciones ya implementas nos gusta más o se ajusta más a nuestra necesidad.