
Wez Furlong, ingénieur logiciel chez Facebook, explique que « comme beaucoup d'applications web modernes et complexes, la plupart du code derrière Facebook passe par une série d'étapes de construction pour transformer le code source PHP en application exécutable ».
Compte-tenu de la taille de Facebook, « parcourir l'arbre en entier pour rechercher ce qui devait être construit n'est pas un exercice trivial » poursuit Furlong.
C'est la raison pour laquelle les ingénieurs Facebook ont développé un processus de construction supplémentaire, à la fois pour simplifier et accélérer le processus. Watchman surveille les fichiers au sein d'une ou plusieurs arborescences de répertoires et enregistre toute modification ou suppression. Il peut également lancer des requêtes et des scripts en réponse aux changements observés.
Ci-dessous un KDE (Kernel Density Estimate) qui apporte une visualisation du temps de construction de l'utilisateur interactif. L'axe des abscisses mesure les millisecondes. La ligne en trait continue indique où le développement en est à l'heure h, la ligne en traits interrompus indique où il en était avant et la zone ombrée montre l'évolution de la distribution de la probabilité.

Comme HipHop VM (une machine virtuelle open source conçue pour exécuter des programmes écrits en PHP), PHPembedded (une bibliothèque possédant une API simplifiée conçu sur PHP SAPI) ou encore le projet Open Compute, Watchman représente un des nombreux projets open source que Facebook partage avec le monde.
Watchman fonctionne sur Linux, OS X, FreeBSD et Solaris.

Source : Facebook
Et vous ?
