Cada vez que tenemos la oportunidad de discutir sobre frameworks y sus alternativas, uno de los comentarios más populares que recibimos es ¿para qué usar frameworks? Mejor aprende bien el lenguaje.
Este comentario es principalmente popular cuando hablamos de desarrollo con JavaScript, donde el concepto de no usar frameworks incluso tiene un nombre a hacer vanilla JavaScript o JavaScript crudo. Es decir, no utilizar frameworks.
Al iniciar tu formación en programación, quizás entres en una etapa donde desprestigie la utilidad de los frameworks, argumentando que escribir las cosas por tu propia cuenta dirige a mayor rendimiento del código, aprendizaje, pero sobretodo a entender claramente qué está pasando en tu programa sin depender de terceros.
Además, también podría suceder que muy pronto en tu formación adoptes un framework con una librería sin haber aprendido la tecnología detrás de dicho framework, lo que pudiera traducirse en malas prácticas o una dependencia del framework. La pregunta entonces es ¿cuándo en mi formación como programador o en una tecnología debo de comenzar a utilizar los frameworks?
Voy a comenzar argumentando que en tu formación profesional normalmente existen dos tipos de proyectos los que sirven para explorar una tecnología que haces por gusto propio, que aparte es, digamos, una tarde entre semana o unas horas del fin de semana para programar. Y por otro lado, están los proyectos por los que te están pagando, qué desarrollas en la empresa que te contrata o que estás desarrollando con algún cliente que tengas.
Si en los primeros pasos de tu formación no tienes un poco de ambos, quizás debas introducir lo que te falte. Si sólo estás desarrollando para ti, habla con algún familiar o amigo, invítalo a que juntos aborden un proyecto. Si sólo estás programando los proyectos de tu empresa o tus clientes, considera iniciar un proyecto personal por tu cuenta mismo que te pueda permitir introducirte a nuevas tecnologías, jugar con nuevos frameworks, librerías y demás, sin el temor de comprometer el trabajo que alguien te está pagando.
Una vez que separas estos proyectos, para mí queda muy claro algo. Los proyectos de negocio deberían realizarse con bases sólidas, buenas prácticas de la industria, cuidado para tópicos como rendimiento, seguridad, eficiencia, mantenibilidad, etcétera. Todos estos puntos son los que un framework te ofrece desde el momento en que inicias el proyecto mismo. Tratar de cubrir todos estos aspectos puede ser imposible para un individuo o traducirse en tiempos de entrega no cumplidos y altos costos para un proyecto.
En programación usamos comúnmente la frase «no hay que reinventar el hilo negro», lo que significa que si ya existe una solución que hace lo que estás pensando hacer o una herramienta que te podría facilitar la vida, úsala. Lo más probable es que detrás de dicha herramienta haya años de desarrollo, decenas de los mejores programadores del mundo hayan contribuido a dicho código y, por supuesto, se hayan considerado temas muy importantes, como los que mencioné antes de seguridad, rendimiento, entre otros.
Tratar de competir contra eso individualmente o en un equipo pequeño o con poca experiencia en la industria es dispararse uno mismo en el pie. En esta clase de casos donde alguien te está pagando, donde hay una fecha de entrega, donde se compromete la experiencia de un usuario, te recomiendo 100 por ciento iniciar con un Framework, sin importar cual sea tu nivel de experiencia en la tecnología. De hecho, muchas veces puedes aprender el lenguaje de un framework a la par del framework mismo.
Un consejo útil es que mientras trabajes con una herramienta, trates de resolver todas tus dudas. ¿Cómo lo hace? ¿Cómo funciona? ¿Por qué está pasando así? ¿Por qué no me pide este código? ¿O por qué me está pidiendo otra configuración? Esta curiosidad te llevará a entender no sólo la herramienta que usas, sino la tecnología detrás de ella.
Por otro lado, un proyecto personal se presta perfectamente a que juegues con él usando el nivel de abstracción que quieras. Es decir, si no quieres usar framework y hacerlo todo con el lenguaje, adelante. Si quieres usar micro frameworks o librerías pequeñas para apoyarte, hazlo. Estos proyectos te ayudan a entender a fondo la tecnología sin comprometer tu trabajo ni los proyectos de tus clientes. Lo más probable es que estos proyectos surjan las herramientas que termines usando en tu siguiente trabajo laboral.
En esos proyectos entenderás nuevas cosas de tu lenguaje de programación, del framework, nuevas librerías, utilidades, entre mucha más información que pudieras obtener. Son estos proyectos los que te ayudan a profundizar y a mantenerte actualizado, por lo que yo siempre recomiendo tener proyectos personales en desarrollo junto con los proyectos de tu trabajo.
En resumen, en mi opinión, puedes empezar a usar frameworks tan pronto como tú quieras. Recuerda que en muchas ocasiones los frameworks van a encaminar tu aprendizaje, solo recuerda dedicar tiempo a aprender lo que hay detrás del framework mismo, ya sea el lenguaje, programación o la plataforma de desarrollo.
Esto evitará que te cases con el framework, que dependas de él o que adoptes las prácticas del framework como definitivas y no como una solución entre muchas que existen. Con esto me despido, nos vemos en el siguiente.