Pourquoi programmer en temps continu ? Quels sont les bénéfices et utilités de cette technique ?
Selon le blogueur américain Elliott Conal, le functional reactive programming (FRP) est régi par deux grands principes : le design dénotationnel et le temps continu (présent depuis TBAG, le prédécesseur d'ActiveVRML).
Ce passionné de programmation a reçu ces derniers jours un courrier d'un internaute qui indiquait "ne pas avoir besoin" de temps continu, et "ne pas comprendre pourquoi l'absence de flux continus est un problème" puisqu'au final, "tous les flux sont discrets".
Conal lui a répondu sous la forme d'une lettre ouverte publiée sur son blog où il explique que la programmation se joue plus "au milieu qu'à la fin, au niveau de la composition qu'à celui de la sortie".
Selon lui, la continuité dans l'espace et le temps est meilleure pour la modularité, laissant la discrétion pour l'étape de sortie.
Un autre nom pour "continu" est "résolution - indépendance". C'est ainsi que des données peuvent être transformées en espace et en temps facilement, et en "évitant la propagation et l'amplification d'artéfacts".
Il donne plusieurs exemples :
- Le type de données dans une application 3D n'est finalement composée que de pixels, alors quel manque y-a-t-il dans une API pixel-oriented qui ne fait pas appel à des notions continues de haut niveau comme des triangles ou des surfaces courbes ? Il serait possible de dire qu'à la "fin", tout type de donnée n'est que phosphore ou impulsions électriques.
- La programmation impérative contre la programmation fonctionnelle. Cette dernière excelle en composabilité.
- Les structures de données infinies contre celles finies. On n'accède à une quantité de données finies qu'à la "fin". Cependant, autoriser des structures infinies "au milieu" permet de style de programmation bien plus composable.
Qu'en pensez-vous ?
Selon vous, est-il plus facile d'écrire un programme avec des flux continus ou bien des flux discrets ?
Les flux continus sont-ils réellement continus ?
Source : Le blog de Conal
Partager