¿Qué es un framework en programación y para qué sirve?

9min

En el mundo del desarrollo hemos evolucionado mucho en los últimos años… y décadas. La importancia de los lenguajes hoy sigue siendo crítica, pero todavía le tenemos que sumar la elección del framework que vamos a usar para desarrollar. En este post te explicaremos por qué es importante basarse en un framework y cuáles son los factores importantes para escoger uno.

Índice

¿Qué es un framework en programación?

Antes de plantearnos qué framework es el adecuado para nuestro desarrollo es importante conocer bien qué son exactamente. Un framework, traducido habitualmente al español como «marco de trabajo», es una estructura o conjunto de herramientas y componentes que nos proporciona una base para desarrollar aplicaciones de una manera más organizada, robusta y escalable.

Puedes pensar en un framework como toda una serie de componentes y directrices sobre los cuales podemos montar cualquier aplicación, aportando una estructura prediseñada que permite a los equipos de trabajo centrarse en resolver problemas específicos, sin tener que pensar tanto en la arquitectura del proyecto.

Si todavía no te queda del todo claro no te preocupes porque a lo largo de este post vamos a abordar diversos aspectos que te permitirán entenderlos mejor.

Diferencia entre un framework y una librería

Para entender el alcance de un framework un segundo paso sería compararlo con una librería, ya que son conceptos que se suelen confundir. Ambos son bases de código que nos permiten resolver problemas de una manera más directa, sin preocuparnos de ciertas cosas. Sin embargo, un framework es una base de código que nos sirve como andamiaje para montar una aplicación, mientras que una librería es un conjunto de funciones y códigos reutilizables que sirven para hacer cosas más concretas. 

En otras palabras, mientras que un framework dicta la estructura de la aplicación, una librería no se mete con ello, simplemente te da soporte a una funcionalidad concreta, como el tratamiento de imágenes o la validación de datos.

Tipos de frameworks y sus aplicaciones

Existen diferentes tipos de frameworks y podríamos hacer diversas clasificaciones. Lo más común sería dividirlos según el ámbito de desarrollo donde se aplican. 

Frameworks Front-end: estructura para interfaces de usuario

Los frameworks Front-end se enfocan en la parte «visible» de una aplicación, lo que en españo llamaríamos «frontal». Por tanto, este tipo de frameworks nos permiten desarrollar la parte de las aplicaciones con las que el usuario interactúa. En la web generalmente trabajan con Javascript.

Algunos ejemplos de frameworks frontend populares son Angular y Vue.js También podíamos añadir a React en la lista, aunque éste está en la frontera de lo que sería un framework y una librería, ya que no se mete en cómo vas a desarrollar el proyecto.

Frameworks Back-end: optimización del lado del servidor

Los frameworks Back-end se encargan de la parte del código que se ejecuta del lado del servidor. Por tanto, son los que trabajan con las bases de datos, sistemas de archivos, los recursos de mensajería, etc.

En este área tenemos frameworks como Django, Laravel o NestJS y nos permiten optimizar mucho el flujo de trabajo del código del lado del servidor.

Frameworks Full-stack: soluciones completas para desarrollo web

Luego tenemos los frameworks «Full-Stack». Este tipo de frameworks tienen aportaciones tanto en la parte del servidor como en la del cliente. A veces es difícil decir cuándo un framework es full-stack porque muchos frameworks backend como Laravel también abarcan la parte del frontend. O incluso frameworks más del lado del frontend como Nuxt también aportan su grano de arena en el backend. 

En todo caso, estos frameworks integran tanto las herramientas de Front-end como las de Back-end y facilitan la comunicación entre ambas partes. En ocasiones encontramos frameworks fullstack como Livewire o Blazor que permiten desarrollar la parte del backend y el frontend a la vez, usando únicamente programación del lado del servidor y es el propio framework el que se encarga de escribir el código Javascript para los desarrolladores.

Ventajas de usar un framework en desarrollo

Usar Frameworks generalmente se traduce en una serie de ventajas que ayudan tanto a proyectos como a equipos de desarrollo.

Aceleración del proceso de desarrollo

Una de las principales ventajas de utilizar un framework es la capacidad de realizar el proceso de desarrollo de una manera más rápida, al menos en toda la parte inicial del proyecto. Al ofrecernos una base estructurada, podemos comenzar a desarrollar sin tener que preocuparnos por crear la arquitectura del proyecto y ciertas funcionalidades que se repiten en casi todas las partes, como el proceso de login de usuarios.

Facilidad para mantener y escalar proyectos

Si has trabajado en proyectos a lo largo del tiempo, sabrás que la mantenibilidad es una característica fundamental, ya que se pasa más tiempo manteniendo el código que desarrollando el proyecto inicialmente. Gracias a la estructura propuesta de entrada por el framework conseguimos guiarnos por una serie de prácticas que siempre facilitan la organización del código, algo que se notará especialmente en proyectos medianos o grandes. Todo ello impacta positivamente en el mantenimiento y la escalabilidad del proyecto.

Comunidad y soporte disponibles para frameworks populares

Los frameworks populares tienen una comunidad de desarrolladores grande, lo que permite encontrar fácilmente soluciones a los problemas más comunes que nos podamos encontrar durante el proyecto. La documentación suele ser extensa y abarcar muchos puntos importantes, pero también será fácil encontrar tutoriales para aprender con otros enfoques aspectos diversos.

¿Para qué sirve un framework?

Ya hemos descrito de manera fundamental qué es un framework y algunas de las ventajas pero ¿Para qué nos sirve exactamente utilizarlos? ¿cómo impacta en el desarrollo del proyecto?

Mejora de la eficiencia y productividad del desarrollador

Cuando usas un framework estarás mejorando tu productividad, ya que hay muchas tareas repetitivas que no tendrás que hacer en cada proyecto. Pero además conseguirás resolver los problemas de manera más eficiente, ya que generalmente te aportan unas guías sólidas que garantizan que el trabajo esté mejor desarrollado.

Reducción de errores y bugs con código reutilizable

Al apoyarse en un framework trabajamos sobre una base de código de módulos ya probados, que se vienen usando en innumerables aplicaciones. Esto indica que son robustos, pero también indica que, al no tener que desarrollarlos desde cero, es menos probable que se introduzcan errores humanos.

Estandarización del código para facilitar el trabajo en equipo

Y otro de los puntos clave, pero al que no siempre se le otorga tanta importancia, es la capacidad de estandarizar el código por parte de todo el equipo de desarrollo.

La estructura y las guías que nos proponen harán que todos los desarrolladores trabajen en una misma línea, con las mismas directrices y patrones. Pero no solo eso, estas mismas guías se repetirán a lo largo de distintos proyectos, lo que también es bueno para las empresas o los desarrolladores freelance, al pasar de uno a otro.

Ejemplos populares de frameworks en programación

En el mercado existen decenas o cientos de frameworks para innumerables aplicaciones. Muchos de ellos tienen ya una trayectoria larga que los hacen ideales. Vamos a ver algunos ejemplos.

Frameworks para desarrollo web: React, Angular, Vue.js

React, Angular y Vue.js son los tres frameworks más populares para el desarrollo web frontend (aunque React es más considerado una librería, tiene todo un ecosistema de herramientas que lo podrían dejar prácticamente al nivel de un framework). 

Estos frameworks están basados en componentes que facilitan la reutilización e interoperabilidad del código. Pero no solo nos permiten crear componentes reutilizables, sino además suelen encontrarse fácilmente componentes para la realización de tareas comunes.

Frameworks para aplicaciones móviles: Flutter, React Native

No los hemos mencionado todavía, pero también hay frameworks más orientados al desarrollo de aplicaciones móviles. Dos ejemplos relevantes en este punto son Flutter y React Native.

Flutter está desarrollado por Google y permite crear aplicaciones móviles con un alto rendimiento utilizando un solo lenguaje llamado Dart. React Native, por otro lado, permite usar JavaScript para crear aplicaciones móviles que funcionan tanto en iOS como en Android.

Frameworks para back-end: Django, Laravel, Spring

En el lado del servidor la afluencia de frameworks es todavía mayor, ya que existen muchos lenguajes en los que podemos trabajar.

En Python tenemos Django como principal actor, mientras que en PHP actualmente el framework más usado es Laravel. Por su parte Java tiene a Spring. Pero cada uno de esos lenguajes tiene otras propuestas de frameworks que ocupan parcelas distintas y que también tienen sus seguidores.

Cómo elegir el framework adecuado para tu proyecto

Para elegir un framework lo ideal es probarlo, entender su filosofía y cómo nos puede ayudar para el proyecto que tenemos entre manos. Sin embargo podemos de entrada tener algunas consideraciones útiles que queremos destacar.

Consideraciones clave: escalabilidad, comunidad y soporte

Al elegir un framework, es importante tener en cuenta factores diversos. Uno de los más importantes es la escalabilidad que aportará al proyecto. ¿El framework escogido será capaz de dar respuesta a las distintas necesidades que podamos requerir actualmente y en el futuro?

También debes ver cuánto de popular es este framework, ya que generalmente ese aspecto irá directamente ligado a la comunidad y el soporte que podamos encontrar cuando lo usemos, así como al ecosistema de herramientas disponibles.

Evaluar el rendimiento y compatibilidad con otros sistemas

Es importante plantearse también la compatibilidad que ofrece con otros sistemas y tecnologías que se plantee usar para ese proyecto. 

Además, ya dependiendo de las características del proyecto a veces nos interesa también verificar hasta qué punto el framework es capaz de ofrecernos el rendimiento necesario en las aplicaciones desarrolladas.

La importancia de la curva de aprendizaje en la elección

Otro aspecto fundamental que podemos analizar es la curva de aprendizaje del framework, especialmente si es la primera vez que lo va a usar el equipo de desarrollo. A veces es conveniente observar el background de los desarrolladores y escoger una herramienta afín al grupo, de modo que la mayoría del equipo se pueda adaptar fácilmente al framework.

Fernán García de Zúñiga

Productos relacionados: