Newsletter para devsEntra
Web Reactiva

WR 199: ¿De verdad necesito React, Vue o Angular para mi proyecto?

Tal vez valga con utilizar "lo de siempre".

Escúchalo también en Spotify | Apple Podcasts | Google Podcasts | iVoox
Frontend:Frontend framework
Full Dev:IA
Frontend:JavaScript

5 aprendizajes que te llevas de este episodio:

  • Transición del desarrollo web desde estructuras monolíticas a arquitecturas distribuidas.
  • Comparación entre paradigmas imperativo y declarativo en la programación.
  • Beneficios y desafíos del uso de componentes para modularidad y reutilización de código.
  • Optimización de recursos mediante la carga en el cliente y enfoques serverless.
  • Reflexión sobre la adaptación de desarrolladores a nuevas tecnologías y metodologías.

Reflexiones sobre la evolución del desarrollo web

La tecnología no se detiene. Así como la escritura nos obliga a repensar lo que pensamos, el desarrollo web nos empuja a cuestionar metodologías que, en un tiempo, parecían inmutables. Hay una transición sutil pero decisiva: de enfoques monolíticos y basados en el servidor a arquitecturas que permiten al cliente asumir mayores responsabilidades. Esta transformación, aunque inherente a la evolución tecnológica, no es inmediata ni exenta de desafíos. Aprender a navegarla es tan necesario como aprender a leer y escribir correctamente, como ya nos ha enseñado la experiencia.

El cambio de paradigma en el desarrollo web

La web dejó de ser un conjunto de páginas estáticas para transformarse en aplicaciones interactivas. Antes, gran parte de la lógica se procesaba en el servidor: cada cambio, cada interacción, implicaba una recuperación completa de la página. Hoy, la tendencia es trasladar parte de esta carga al cliente. Esta evolución no se trata simplemente de seguir modas tecnológicas, sino de replantear la distribución de responsabilidades en el desarrollo de aplicaciones:

  • La interfaz y su dinamismo se gestionan cada vez más en el navegador.
  • El servidor se focaliza en tareas pesadas y de acceso a datos.
  • La comunicación entre ambos se optimiza mediante arquitecturas que eviten cargas innecesarias.

Esta redistribución ofrece beneficios tangibles. Menos peticiones al servidor significan menor latencia y una mejor experiencia para el usuario, además de contribuir al rendimiento y escalabilidad de la aplicación. Pero, como cualquier cambio, requiere un replanteamiento de cómo conceptualizamos y estructuramos el software.

De imperativo a declarativo: una transformación esencial

Una de las claves de esta evolución radica en cómo expresamos las instrucciones a la máquina. El paradigma imperativo dicta cada paso que el sistema debe seguir. Por ejemplo, recorrer una lista de elementos usando bucles, gestionar manualmente estados del DOM o actualizar elementos tras cada acción del usuario. Este enfoque, aunque efectivo, tiende a dispersar la lógica y a hacer el código más difícil de mantener.

El paradigma declarativo, en cambio, permite describir lo que se quiere que suceda, dejando al sistema la tarea de resolver el “cómo”. Al utilizar métodos como map() para transformar arrays o definir consultas SQL específicas, se delega la responsabilidad del “procedimiento” a mecanismos más abstractos y optimizados. Un ejemplo concreto es el siguiente:

  • En imperativo, recorrer un array para aplicar una transformación:
    • Calcular la longitud.
    • Iterar elemento por elemento.
    • Realizar una operación en cada iteración.
  • En declarativo, emplear el método map() para transformar directamente el array sin preocuparse por la iteración explícita.

Este cambio, de decir “así es como se hace” a “así es lo que quiero obtener”, refleja una mejora en el modo de pensar. Es un proceso que, al igual que escribir sobre un tema complejo, obliga a clarificar el conocimiento y a detectar matices que, de otra manera, pasarían desapercibidos.

Una pregunta que resume bien este cambio de mentalidad fue:
“¿De verdad necesito Vue para mi proyecto?”
Esta interrogante, hecha casi como un eco de la inquietud de muchos desarrolladores, invita a pensar en la necesidad de adoptar nuevas herramientas frente al confort de sistemas tradicionales. La decisión no es trivial; implica evaluar si la adopción de un framework moderno aportará beneficios suficientes en términos de modularidad, rendimiento y mantenimiento.

El ascenso de la programación basada en componentes

La creación de interfaces ha avanzado notablemente gracias a la modularidad. Los frameworks modernos se fundamentan en el concepto de componentes: piezas independientes que encapsulan funcionalidad, estado y presentación. Esta forma de trabajar ofrece varias ventajas prácticas:

  • Reutilización del código. Un componente bien diseñado puede trasladarse fácilmente a otros proyectos.
  • Aislamiento de funcionalidades. La gestión de estados y eventos se centraliza, evitando conflictos y simplificando la depuración.
  • Facilidad para testear cada unidad. Al separar la lógica en fragmentos pequeños, es más sencillo verificar su correcto funcionamiento de manera aislada.

Imaginemos un formulario compuesto por múltiples inputs. En el enfoque tradicional, con jQuery o vanilla JavaScript, habría que controlar cada interacción de forma manual, asignar clases, escuchar eventos y actualizar el HTML de forma imperativa. Con un componente de input, el sistema se encarga de gestionar los estados internos; ante un error, el componente mismo se responsabiliza de cambiar su visualización para reflejar la validación. La comunicación entre estos componentes se vuelve un lenguaje propio, que permite desarrollar aplicaciones más complejas sin perder claridad en el código.

Esta forma de pensar, basada en la reutilización y la separación de responsabilidades, también tiene un efecto liberador para quienes construyen el software. Permite experimentar, creciendo hacia proyectos más complejos sin renunciar a la organización y el rigor que exige un código bien estructurado.

La carga en el cliente y el movimiento serverless

No se trata únicamente de trasladar la lógica a la interfaz; existe además la optimización de recursos del servidor. Cada petición que, en el pasado, implicaba recargar una página completa, hoy se transforma en una interacción más ligera, en la que el servidor se apaga al terminar su tarea. Este enfoque se enmarca dentro de lo que se conoce comúnmente como “serverless”. Al ejecutar funciones de manera puntual, se reduce el costo y el esfuerzo de mantener servidores permanentemente encendidos.

Entre los beneficios de este cambio se destacan:

  • Menor consumo de recursos en el servidor gracias a funciones efímeras.
  • Mayor independencia de la aplicación ante variaciones en la conexión o la disponibilidad de internet.
  • Una arquitectura más escalable, ya que la tecnología se adapta a la cantidad de peticiones sin necesidad de sobre-dimensionar el hardware.

Esta migración hacia la ejecución de código en el lado del cliente y en entornos controlados del servidor no es solo una cuestión de eficiencia. Es un reflejo de una mentalidad orientada a maximizar los puntos fuertes de cada entorno: el navegador se especializa en la interacción y la experiencia del usuario, y el servidor se enfoca en la seguridad y el procesamiento pesado de la información.

Un espacio para experimentar y evolucionar

El desarrollo web es un proceso dinámico, y como en toda disciplina, la comprensión profunda surge del ensayo y el error. Cada cambio en una aplicación, desde migrar un formulario a un sistema basado en componentes hasta adoptar una nueva herramienta que reduce la carga del servidor, requiere experimentación y reflexión. Al igual que escribir para clarificar el pensamiento, construir y modificar código permite descubrir aspectos ocultos de la lógica que se creía dominada.

Las lecciones aprendidas en este proceso son tan esenciales como las técnicas en sí:

  • Explorar el declarativo frente al imperativo obliga a repensar cómo describir problemas y soluciones.
  • El uso de componentes promueve una arquitectura limpia y modular, en la que cada parte se puede mejorar de forma independiente.
  • La transición hacia arquitecturas que minimizan la dependencia del servidor abre la puerta a aplicaciones más robustas y eficientes.

La confrontación con nuevas tecnologías es, en definitiva, una oportunidad para crecer. Como desarrolladores, cada cambio puede ser visto como un nuevo lenguaje que dominar, una nueva forma de expresar ideas. La experiencia se enriquece cuando se abandona el confort del sistema conocido para adentrarse en nuevos paradigmas, esa inercia que a veces nos impide ver que lo que tenemos puede mejorar con un enfoque distinto.

La reflexión personal y la voluntad de experimentar son esas virtudes que, en última instancia, definen el éxito de nuestro trabajo. Así como la escritura nos desafía a ordenar el pensamiento, el desarrollo web reta a dejar de lado métodos obsoletos y abrazar la evolución continua.


Esta mirada a la transformación de los paradigmas en el mundo del desarrollo web es una invitación a no temer al cambio, sino a verlo como un medio para refinar nuestras habilidades y ampliar nuestra forma de construir soluciones. Cada línea de código, cada componente y cada interacción entre el cliente y el servidor es una oportunidad para aprender y mejorar, para construir software que se adapte mejor a las necesidades reales de sus usuarios.

Te invito a escuchar un episodio más del podcast

En él hablo de “Las tres oportunidades para destacar gracias a la IA de Github Copilot”.

Todo el mundo habla de ella. Aquí en Web Reactiva, también.

Está oculto y para liberarlo solo tienes que hacer 1 cosa:

Completar la encuesta del oyente de Web Reactiva y el lector de la 🧨 newsletter de Web Reactiva.

Es anónima y me ayudará mucho a conocer tus inquietudes y opiniones un poco mejor.

Solo disponible hasta el 10 de Julio a las 23:59 (hora de Madrid).

>> Quiero completar la encuesta y acceder al episodio privado.

Un enlace que menciono en el episodio: Imperative vs Declarative.

¡Nos escuchamos el próximo martes!

Escrito por:

Imagen de Daniel Primo

Daniel Primo

CEO en pantuflas de Web Reactiva. Programador y formador en tecnologías que cambian el mundo y a las personas. Activo en linkedin, en substack y canal @webreactiva en telegram
Web Reactiva Newsletter