Saltar al contenido principal

Frameworks web

Un framework web es un conjunto de herramientas, librerías y convenciones que facilitan el desarrollo de aplicaciones web. Proporciona una estructura básica para organizar el código, manejar rutas, procesar peticiones y respuestas, interactuar con bases de datos y gestionar la seguridad. Su objetivo principal es acelerar el desarrollo, reducir errores y fomentar buenas prácticas.

Ventajas de utilizar un framework

El uso de un framework ofrece varias ventajas:

  • Permite desarrollar aplicaciones más rápidamente, ya que muchas funcionalidades comunes vienen predefinidas.
  • Facilita la organización del código y la implementación de patrones de diseño como MVC.
  • Mejora la seguridad al integrar mecanismos de protección frente a ataques comunes.
  • Facilita el mantenimiento y escalabilidad de las aplicaciones.

Desventajas de utilizar un framework

Entre las desventajas destacan:

  • Curva de aprendizaje elevada para quienes no conocen sus convenciones.
  • Sobrecarga de recursos en aplicaciones muy simples.
  • Dependencia del soporte de la comunidad y de las actualizaciones, lo que puede generar problemas si el framework deja de mantenerse.

Tipos de frameworks

Existen principalmente dos tipos de frameworks web:

  • Full-stack: ofrecen soluciones completas para el desarrollo web, incluyendo enrutamiento, plantillas, gestión de bases de datos y herramientas de seguridad. Ejemplos: Laravel, Symfony, Django, Ruby on Rails.
  • Microframeworks: son más ligeros y flexibles, proporcionando solo las funcionalidades esenciales como enrutamiento y gestión de peticiones. Ejemplos: Lumen, Flask, Express.

Frameworks populares

FrameworkLenguajeTipoCasos de uso principales
LaravelPHPFull-stackAplicaciones web completas (monolitos).
SymfonyPHPFull-stackAplicaciones complejas y escalables.
LumenPHPMicroframeworkAPIs REST y microservicios.
DjangoPythonFull-stackAplicaciones web rápidas y seguras.
FlaskPythonMicroframeworkAPIs y prototipos ligeros.
Express.jsNode.jsMicroframeworkAPIs REST y microservicios.
Next.jsNode.jsFull-stack / SSRAplicaciones web con renderizado del lado del servidor y SPA.
AstroNode.jsMicroframework / Static site generatorSitios web estáticos, JAMstack, páginas rápidas.
Ruby on RailsRubyFull-stackAplicaciones web convencionales (monolitos).

Comparativa entre Laravel y Express

En los siguientes apartados veremos dos frameworks: Laravel y Express. Vamos a ver las diferencias entre ellos:

  • Lenguaje: Laravel usa PHP mientras que Express usa JavaScript/TypeScript.
  • Filosofía: Laravel es un framework completo con MVC y muchas herramientas integradas. Express es minimalista y depende de librerías externas.
  • Estructura: Laravel impone una arquitectura clara y coherente. Express da libertad, pero requiere definir la arquitectura manualmente.
  • ORM: Laravel incluye Eloquent. Express no trae ORM, se suelen usar Prisma, Sequelize, Mongoose, etc.
  • Vistas: Laravel incluye el motor de plantillas Blade. Express no tiene motor propio (se pueden usar EJS, Pug, Handlebars, etc.).
  • Curva de aprendizaje: Laravel tiene más convenciones que aprender, pero es muy estructurado. Express es más rápido de iniciar, aunque puede complicarse en proyectos grandes.
  • Rendimiento: Laravel es más pesado por todas sus capas. Express es ligero y rápido, ideal para aplicaciones concurrentes y en tiempo real.
  • Ecosistema: Laravel ofrece un ecosistema oficial robusto (Breeze, Jetstream, Horizon, Forge, Nova)- Express aprovecha el enorme catálogo de npm, aunque con calidad variable.
  • Casos de uso: Laravel se orienta a aplicaciones web completas y APIs estructuradas. Express se usa mucho en APIs ligeras, microservicios y apps en tiempo real.