Facebook a publié son langage de programmation Open Source Hack. Ce dernier reprend « un grand nombre de fonctions et de caractéristiques de PHP en ajoutant des éléments en propre pour gagner en productivité », souligne Bryan O'Sullivan, ingénieur en charge du projet chez Facebook. En 2013, le réseau social a modifié sa base de code PHP pour la migrer sur Hack.

En créant Hack, la société américaine a pris une approche similaire à celle de Microsoft sur TypeScript qui est fondamentalement un surensemble de JavaScript auquel on a greffé du typage statique. En utilisant Hack, Bryan O'Sullivan précise que les bénéfices pour les développeurs sont multiples, augmenter les performances des sites web et amélioration de la qualité globale du code.

Dans un blog
, le réseau social a expliqué que Hack nécessite HHVM (Hip Hop Virtual Machine), une machine virtuelle qui compile en PHP. Pour Bryan O'Sullivan, Hack « est une extension de PHP avec le typage statique intégré, une fonction que l'on trouve dans des langages de programmation plus traditionnels comme C/C++ et Java ». Beaucoup de langages récents orientés web, comme PHP et JavaScript ne disposent pas du typage statique, mais adoptent le typage dynamique. Le problème sur ce dernier est qu' « il n'y a pas d'informations explicites dans le code source qui décrit quelles sortes de données sont soumises au programme », constate l'ingénieur.

Eviter les erreurs et accélérer le développement


En revanche avec le typage statique, le développeur doit définir le type de données pour chaque variable avant que la compilation du programme ou son exécution. Ce procédé prend un peu plus de temps, mais il empêche des erreurs d'exécution quand des données incorrectes ont été placées dans le programme soit par une action humaine ou de l'ordinateur. Bryan O'Sullivan observe que des erreurs et des incidents peuvent se produire si les développeurs n'associent pas les données à des variables. « Ces erreurs latentes peuvent se cacher pendant une longue période dans un des langages à typage dynamique », explique le spécialiste. La machine virtuelle HHVM a un correcteur de typage intégré pour vérifier que toutes les informations entrées sont correctes. Hack donne aux développeurs la possibilité de définir des types de données uniques.

« Sur la syntaxe, Hack est très proche de PHP. Nous avons donné la possibilité de faire fonctionner en parallèle PHP et Hack avec la capacité de convertir progressivement votre code de PHP en Hack », déclare Bryan O'Sullivan. Il a par contre indiqué que d'anciennes fonctionnalités de PHP ne sont pas prises en charge, ainsi que celles qui ne fonctionnent pas bien avec le typage statique. Hack est aussi livré avec des éléments supplémentaires non compris dans PHP. Ainsi, Collections est un moyen de créer des tableaux plus étoffés que ceux proposés par PHP. Le langage de Facebook facilite l'utilisation de clôtures à l'aide d'expressions Lambda. Ces fermetures, qui ont été ajoutées à Java 8, « aident à écrire de manière précise les modifications des données assez complexes », précise l'ingénieur. Les expressions Lambda de Hack donnent un moyen de générer des fermetures « avec un petit nombre de frappe, ce qui constitue une grande victoire pour la productivité », admet Bryan O'Sullivan. Le réseau social a fourni plusieurs plug-ins sur le site Hack pour aider les développeurs à écrire dans ce langage, mais la firme de Menlo Park souhaite que des volontaires travaillent sur quelque chose de plus élaborées.