Le Functionnal Reactive Programming (FRP), qu'est-ce que c'est ?

Cette question très simple nous amène à une réponse malheureusement très longue et complexe, je vais donc essayer de la résumer en quelques mots : la programmation réactive est une manière de déclarer des flux de donnes asynchrones, les filtrer et les lier entre eux ou a des séries d'événements.

La beauté de ce système est que de cette manière tout devient un flux "indifférencié". Que ce soit le clic sur un bouton, un changement sur une API ou une base de données, tout ne se résume qu'a sa plus simple expression : un flux d'informations.

De cette manière, il est extrêmement simple de traiter des données venant de nombreuses sources différentes et les lier très simplement à une interface sans s'embourber dans un spaghetti d’événements et interdépendances.

Quelques ressources pour comprendre et apprendre

Le gros souci de la FRP est qu'il n'est vraiment pas simple à appréhender, car très different de ce que nos habitudes : au lieu d'events nous devons manipuler des streams, et le tout de manière "fonctionnelle".

Pour vous aider à entrer dans ce monde, je vous conseille de lire les quelques ressources suivantes (en anglais malheureusement) puis de commencer doucement avec les divers tutoriaux des libraries que vous trouverez à la suite de cet article. Les libraries de datèrent-binding par exemple, sont une assez bonne introduction à mon avis au concept de FRP.

Nouveau ! Trouvez un webdesigner sur le BlogDuWebdesign

Trouvez gratuitement le prochain talent qui réalisera votre projet ou rejoindra votre équipe.

Je vous conseille tout particulièrement la première ressource présentée, qui est sans aucun doute la meilleure introduction à la FPR que j'ai pu trouver, et qui vous fera gagner beaucoup de temps.

The introduction to Reactive Programming you've been missing (by @andrestaltz)

Reactive Programming in JavaScript (By: Sebastiaan Visser)

Le tutoriel de Radioactive

Le langage ELM, une bonne introduction au FRP

Quelques ressources en Javascript pour l'utiliser dans vos projets

Radioactive

Radioactive est un peu spéciale quand on le compare aux deux suivants dans le sens ou il amené le FPR au niveau du langage même. Cela nous permet de n'avoir à utiliser que du Javascript "natif" est en fait donc selon moi une porte d'entree un peu plus simple que les autres. Ne vous leurrez pas, il s'ent pas simple à appréhender pour autant, mais l'apprentissage est simplifié par un tutorial très complet.

ReactiveX

Bacon

Rivets

Bien que ce soit un peu simpliste, je considère les systèmes de data-binding comme faisant partie du FPR : Les vues s'adaptent de manière réactive au changement de données à condition que ces mêmes changements soient propagés à travers un flux d’événements. Pour cette raison, je vous ai ajouté deux ressources pour faire du data-binding. Si vous êtes a la recherche de plus d'informations sur Rivets et le Data-binding en général, j'ai déjà fait un article dédié à ce sujet : Liez votre HTML et vos données grâce au data-binding et Rivets JS !

Ractive