La Programación Basada en Flujo (FBP), conceptualizada por J. Paul Morrison, constituye un paradigma computacional alternativo a la programación imperativa secuencial. A diferencia de los modelos basados en el flujo de control explícito, FBP se centra en el flujo de datos a través de una red de procesos asíncronos y desacoplados.
El principio fundamental de este paradigma no es la secuenciación de operaciones, sino la optimización de la mantenibilidad del sistema a lo largo de su ciclo de vida. Este enfoque aborda la problemática inherente al mantenimiento de software, donde la disparidad de conocimiento entre el desarrollador original y el equipo de mantenimiento, sumada a la complejidad estructural del código procedural, genera ineficiencias y altos costos.
Los sistemas computacionales están sujetos a una evolución constante impulsada por cambios en el hardware, software, marcos legislativos o restricciones presupuestarias, factores que demandan arquitecturas flexibles y resilientes. FBP propone una solución mediante una arquitectura visual de componentes. En esta, la red de procesamiento o grafo de datos funciona como una representación isomórfica de la lógica del programa, permitiendo una visualización directa del flujo y la transformación de paquetes de información (IPs) entre nodos. Cada componente encapsula una lógica de procesamiento y opera como una caja negra, cuya funcionalidad puede ser sustituida sin afectar la integridad del sistema global, siempre que se respete el contrato de interfaz definido por los datos.
Morrison invoca el concepto de paradigma científico de Thomas Kuhn para argumentar que el dominio de un paradigma como la programación procedural limita el espacio de soluciones explorables. La adopción de un nuevo paradigma como FBP expande el conjunto de posibilidades arquitectónicas y funcionales. Se distinguen dos perfiles de desarrollador: aquellos externos al paradigma dominante, quienes pueden adoptar nuevas metodologías sin sesgos cognitivos, y los expertos inmersos en el paradigma establecido, cuya profunda comprensión les permite identificar desviaciones de las convenciones aceptadas.
La validación empírica de la robustez y la eficacia de un sistema se manifiesta durante su fase de mantenimiento. FBP facilita este proceso al promover estructuras simples, representaciones visuales del grafo y interfaces de datos explícitas y legibles. La capacidad de realizar una introspección jerárquica en la red, descendiendo a través de niveles de encapsulación de componentes, permite localizar y diagnosticar anomalías de manera eficiente. La interfaz entre dos componentes se define exclusivamente por el flujo de datos, materializando el principio de que «anything that can talk data» puede ser integrado como un proceso en una red FBP.
El dato, como paquete de información (IP), es la entidad primordial del sistema. En el contexto de sistemas audiovisuales en tiempo real, esta arquitectura gestiona una tipología de datos heterogénea, incluyendo datos a nivel de píxel (operadores de textura), datos de canal (operadores de canal), geometría de superficie (operadores de superficie), shaders y materiales (operadores de material) y datos estructurados, tabulares o textuales (operadores de datos).