Usar o no un Framework

Siempre que en Kabytes escribo sobre algún framework recuerdo que nunca exprese mi opinión acerca de su utilización. Para evitar que esto siga ocurriendo decidí escribir esta entrada, completamente abierta a las distintas opiniones de cada uno de ustedes.

Comencemos por lo básico, ¿Que es un Framework?

Un framework o infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, con base a la cual otro proyecto de software puede ser más fácilmente organizado y desarrollado.

En un lenguaje un poco más ameno, podríamos definir a un Framework como un soporte, una capa intermedia entre un lenguaje de programación crudo y el programador, útil para agilizar el proceso de desarrollo, brindando a los programadores de una serie de funciones y métodos para evitar perder tiempo programando soluciones ya escritas.

Es así que dentro de los lenguajes más populares, por ejemplo, podemos citar:

Usar o no un framework

En mi caso hago un uso bastante intensivo del framework para JavaScript jQuery, también hice varias pruebas con otros framework para PHP (Cake, Zend y un poquito de Symfony), y finalmente comencé hace unos meses a jugar un poco con el framework para Ruby de moda,estoy hablando de Rails. Las conclusiones que obtuve son variadas.

Ventajas de utilizar un framework

  • Velocidad de desarrollo. Una vez que aprendemos los aspectos básicos de utilización de un framework, la velocidad de desarrollo aumenta considerablemente. Frameworks como Ruby on Rails son increíblemente rápidos y ágiles, sin exagerar Rails utiliza como uno de sus principios el paradigma CoC (Convención sobre Configuración) ganando simplicidad, a la vez que no perdemos flexibilidad. Solo con esa mentalidad y el soporte provisto por todo el framework, desarrolla un sitio convencional (y no tanto) es cuestión de horas.
  • Código optimizado. Si bien esto no es una ley, en general un framework que cuenta con una comunidad importante siempre se encuentra optimizado, al menos, sabemos que hay personas trabajando en mejoras constantemente. Lo mismo ocurre con aspectos fundamentales como la seguridad. Utilizar un framework puede ahorrarnos muchos dolores de cabeza. Obviamente queda en nosotros también hacer un buen uso de esta plataforma, pero en general y si programamos con cierta logica y cuidado, no tendremos demasiados problemas.
  • Reducción de costos. Utilizar un framework muchas veces nos permite abstraernos a un nivel de programación low-level. No tenemos que preocuparnos de los aspectos de desarrollo más básicos, de esta manera podemos centrarnos en los aspectos más esenciales que se encuentran relacionados directamente con el trabajo que debemos realizar. Esto no siempre va a ocurrir, pero en general si el proyecto no es sobre algo muy especifico el framework va a tener mucho del trabajo resuelto.
  • Estándares y convención de código. Dos aspectos que tranquilamente podemos utilizar en nuestras aplicaciones sin la necesidad de un framework. No obstante tener que utilizarlos de manera casi obligatoria nos empujan a mejorar nuestros programas. Y perdón que vuelva con Rails, pero programar para este frameworks es un placer, código limpio y sencillo, fácil de mantener y todo gracias a la implementación de convenciones.

Desventajas de utilizar un framework

  • Tiempo de aprendizaje. Aprender a utilizar un framework no necesariamente es algo que podamos hacer en un par de días. En mi experiencia si bien ahorramos mucho tiempo, también tenemos que dedicar muchísimas horas en aprender los aspectos básicos y no tanto. A mayor conocimiento del framework, más jugo le podemos sacar.
  • Dependencia. Una vez que escribimos un programa para determinado framework es casi imposible migrar a otro sin tener que reescribir todo el código. En ese sentido cuando comenzamos un proyecto con un framework prácticamente nos estamos casando con él.
  • Falsa sensación de conocer el lenguaje. Esto es importantísimo porque veo que mucha gente esta confundida en este aspecto. Programar para determinado un framework no nos hace conocedores del lenguaje para el que esta creado. El mejor ejemplo: Saber programar con jQuery no significa saber programar en JavaScript. Mi recomendación, aprendan el lenguaje y luego aprendan el framework.

Conclusión

Decidan en base al proyecto a realizar. Los frameworks son cada día más potentes, sin embargo nada va a reemplazar al programador con amplios conocimientos sobre determinado lenguaje.

Creo que existe un equilibrio justo a la hora de decidir si usar o no un framework, en mi caso evalúo:

  • Si el proyecto es MUY simple. No utilizo un framework, no tiene sentido cargar toda una estructura, un esqueleto con cientos de funciones, si el trabajo a realizar no requiere más que unas lineas de programación. Por ejemplo, si van a realizar un sitio con un formulario para recibir consultas y nada más, utilizar un framework ni merece la pena.
  • Si el proyecto tiene una complejidad baja-intermedia. Es probable que utilice un framework. Sitios del tipo institucionales podemos crearlos en cuestión de horas. Me animo a decir que minutos, obviamente sacando de lado la parte gráfica. Un framework para un proyecto de una complejidad intermedia es realmente una bendición.
  • Si el proyecto es complejo. Si el proyecto es complejo, no es algo común, probablemente no utilizaría un framework, aunque en este punto en particular habría que evaluar que tan útil es el framework en base a nuestros requerimientos. Es solo cuestión de analizar las ventajas y desventajas en cada caso en particular.

Mi consejo más honesto, utilicen el sentido común. No caigan en el simplismo de aquel que dice “los frameworks son para programadores vagos”, ni en el fanatismo de aquel que programa todos sus bibliotecas y repudia a aquellos que utilizan herramientas para economizar y valorar su tiempo. Los frameworks son herramientas que bien utilizadas son de gran ayuda.

Categorizado en: