Developpez.com

Le Club des Développeurs et IT Pro

Facebook lève le voile sur son Framework Folly Futures

Qui facilite la programmation asynchrone C++ en utilisant le pattern Promise/Future

Le 2015-06-22 16:49:07, par Siguillaume, Expert éminent sénior
qui facilite la programmation asynchrone C++ en utilisant le pattern Promise/Future

C’est en 2012 que Facebook présente et rend Open Source Folly, sa librairie C++ qu’il utilise dans le développement de ces applications internes. Cette librairie qui étend les possibilités du langage, a fait ses preuves dans l’optimisation des ressources systèmes telles que la consommation de la mémoire pendant l’exécution des applications.

Aujourd’hui, Facebook dévoile un nouveau pan de Folly. Il s’agit de Folly Futures, un Framework qui implémente les fonctions Futures de C++ 11. En effet, le langage orienté objet est venu, dans sa version 11, avec de meilleures possibilités pour exploiter le multithreading intégré dans les processeurs de plusieurs cœurs. Ce sont ces fonctionnalités que Facebook a exploité et amélioré pour faciliter l’expérience du développeur dans l’écriture du code avec son Framework.

Folly Futures vient faciliter la tâche au développeur C++ dans l’écriture du code asynchrone. Il s’agit ici de permettre au développeur d’avoir dans un même code source, plusieurs parties qui peuvent s’exécuter simultanément avec une possibilité d’interactions entre les résultats retournés par ces différentes parties, sans aucun blocage.

De façon classique, lorsqu’une fonction effectue fait un appel à une autre, et a besoin du résultat de cette dernière pour continuer son opération, celle-ci est mise dans un état latent jusqu’à la disponibilité du résultat attendu, ce qui entraine couramment des blocages de l’IU. Cette logique est qualifiée de synchrone. Dans la logique asynchrone, le service, qui devrait être mis en latence, continue d’exécuter d’autres opérations en attendant la réponse du service appelé. Ce principe réduit ainsi considérablement le temps de latence dans l’exécution globale des applications. Facebook estime une réduction de plus de deux tiers du temps de latence.


Facebook est fier de l’expérience qui en résulte avec Instagram. La version actuelle d’Instagram, qui a été développée avec Folly Futures, traite des dizaines de milliers de requêtes par seconde et supporte des dizaines de millions de connexions par jour. L’équipe de développement dit avoir un code source plus lisible et plus efficient depuis le passage au Framework.

Folly Futures de Facebook s’est inspiré de Twitter Futures, qui lui repose sur le langage Scala. La firme de Mark Zuckerberg exprime sa gratitude à ses développeurs Hans Fugal, Dave Watson, James Sedgwick, Hannes Roth, et Blake Mathen.

Télécharger Futures sur GitHub

Source: Futures for C++ 11 at Facebook

Et vous ?

Que pensez-vous du Framework Folly Futures ?
  Discussion forum
1 commentaire
  • defZero
    Membre extrêmement actif
    Je ne suis pas développeur c++11 mais d’après les exemples, il est claire que c'est infiniment plus lisible que la solution, présenter comme standard, d’implémentation.
    Bref sa me donne presque envie de m'y mettre (au c++11 s’entend).