Programación reactiva

paradigma de programación

En informática, la programación reactiva es un paradigma de programación declarativo relacionado con los flujos de datos y la propagación del cambio. Con este paradigma, es posible expresar flujos de datos estáticos (por ejemplo, matrices) o dinámicos (por ejemplo, emisores de eventos) con facilidad, y también comunicar que existe una dependencia inferida dentro del modelo de ejecución asociado, lo que facilita la propagación automática del flujo de datos cambiado.

Por ejemplo, en un entorno de programación imperativa, a = b + c significaría que se está asignando a con el resultado de b + c en el instante en que se evalúa la expresión, y más tarde, los valores de b y c pueden cambiarse sin efecto sobre el valor de a. Por otro lado, en la programación reactiva, el valor de a se actualiza automáticamente cada vez que cambian los valores de b o c, sin que el programa tenga que volver a enunciar explícitamente la sentencia a = b + c para reasignar el valor de a.

var b = 1
var c = 2
var a = b + c
b = 10
console.log(a) // 3 (no 12 porque "=" no es un operador de asignación reactiva)

// Ahora imagina que tienes un operador especial "$=" que cambia el valor de una variable (ejecuta código en el lado derecho del operador y asigna el resultado a la variable del lado izquierdo) no sólo cuando se inicializa explícitamente, sino también cuando se hace referencia a variables ( en el lado derecho del operador) se cambian
var b = 1
var c = 2
var a $= b + c
b = 10
console.log(a) // 12
}}

Otro ejemplo es un lenguaje de descripción de hardware como Verilog, en el que la programación reactiva permite modelar los cambios a medida que se propagan por los circuitos.

La programación reactiva se ha propuesto como una forma de simplificar la creación de interfaces de usuario interactivas y la animación de sistemas casi en tiempo real.

Por ejemplo, en una arquitectura modelo-vista-controlador (MVC), la programación reactiva puede facilitar los cambios en un modelo subyacente que se reflejan automáticamente en una vista asociada.

Referencias

editar