Assister à la naissance d'un nouveau langage de programmation n'est pas si rare. Mais lorsqu'au moment où il est rendu publique ce langage est déjà exploité par plus de 1,2 milliard d'utilisateurs, la chose en devient rarissime !

Facebook vient d'annoncer officiellement la naissance de Hack, un langage de programmation destiné au développement rapide et dynamique de sites web complexes et d'applications. Et d'entrée le langage est rendu public en mode open source.

Exploité pour le développement de tous les sites du groupe, Hack est le fruit de plusieurs années de recherches par trois personnes : Bryan O’Sullivan, Julien Verlaguet et Alok Menghrajani. L'un d'entre eux ne nous est pas inconnu, Bryan O’Sullivan est un vétéran qui a roulé sa bosse chez Sun Microsystems et au Linden Lab où il a participé au développement du langage Haskell.

Hack est The Hacker Way de Facebook

A l'origine, Facebook a été développé à l'aide d'un langage dit de 'typage dynamique', PHP. Concrètement, le programmeur définit les paramètres spécifiques à chaque routine et à l'ensemble des routines du code, et peut instantanément les exécuter, la compilation s'effectuant en arrière plan pendant l'écriture. C'est une approche qui correspond bien au modèle Facebook, appelé Hacker Way, qui est une philosophie de développement qui vise à ce que les ingénieurs améliorent en permanence leur code.

Cependant, avec la multiplication d'un coté des utilisateurs et de l'autre des sites, le modèle a fini par montrer ses limites, à savoir qu'il devient difficile de gérer l'ensemble du code, et donc d'assurer les corrections éventuelles. Mais également que par rapport à d'autres langages, PHP nécessite l'usage de beaucoup plus de serveurs.

Hip Hop Virtual Machine

Ces limitations, on ne les trouve pas dans d'autres langages, comme Java, qualifiés de 'typage statique', qui nécessitent de qualifier soigneusement les types de variables. La contre partie est qu'il est nécessaire de compiler le code avant de l'exécuter. Ici le code est également plus simple à gérer et nécessite moins de serveurs. Les langages statiques offrent également un autre avantage aux développeurs, ils sont plus compréhensibles, car leur écriture se présente comme s'ils étaient mieux documentés. Souvent la qualité du code s'en ressent.

Pour résoudre l'équation qui s'est présentée à eux, nos trois ingénieurs ont conservé PHP, mais revu les fondations sur lesquelles le langage s'exécute afin de réduire le nombre de machines. Ces fondations ont été appelées Hip Hop Virtual Machine (HHVM). Et ils ont du même coup réduit la difficulté de la gestion des erreurs dans le code.

Langage à typage graduel

Hack est qualifié de langage à 'typage graduel', c'est à dire que le programmeur peut exploiter à la fois le typage dynamique et le typage statique qui s'exécute sur Hip Hop Virtual Machine. Le modèle doit permettre d'évoluer graduellement du dynamique au statique, par exemple pour transformer le code des sites de Facebook, afin de bénéficier du meilleur des deux mondes.

 

Enfin, les développeurs PHP ne sont pas dépaysés, tant Hack est proche de PHP. La formation et l'adoption du nouveau langage devraient s'en trouver simplifiées. Pour les autres, ceux qui n'exploitent pas PHP ou ceux qui critiquent le langage, Hack devrait leur permettre de faire du PHP sans avoir l'air de faire du PHP !