Facebook présente Hack, son langage de programmation dérivé de PHP
qui apporte plusieurs nouveautés

Les ingénieurs Facebook présentent Hack, un nouveau langage de programmation pour HHVM, sa machine virtuelle de seconde génération open source conçue pour exécuter des projets écrits en PHP et en Hack. A titre de rappel, HHVM est le successeur du projet HipHop, une technologie devant convertir du code PHP en code C++.

Facebook indique avoir basculé quasiment l’ensemble de son code PHP sous Hack, l’une des raisons étant qu’il réduit la probabilité de commettre des erreurs simples qui sont un frein au processus de développement. Ci-dessous un exemple d’une erreur courante où une méthode pourrait être appelée de façon inattendue sur un objet nul, ce qui provoquerait une erreur qui ne serait pas prise en compte avant l’exécution.


« Traditionnellement, les langages typés dynamiques permettent un développement rapide mais sacrifient la capacité à chercher des erreurs tôt et à inspecter son code rapidement, en particulier sur de nombreuses lignes de code. Cependant, le typage statique fournit une plus grande sécurité mais parfois au prix de rapides itérations. Nous pensions qu’il devait y avoir un juste milieu. » C’est alors que Hack est né, et Facebook pense que son langage offre à la fois le meilleur des deux types quelle que soit la taille du projet.

Hack a été pensé comme un néo-PHP ; Facebook précise qu’il s’inspire fortement de ce langage. La transition d’un langage vers l’autre est donc censée être simple. D’ailleurs, « la plupart des fichiers valides en PHP le sont aussi en Hack ». « Notre principal ajout est le typage statique. Nous avons développé un système pour annoter les signatures de fonction et les membres de la classe en fonction des informations de type ; notre algorithme de vérification de type (le ‘type checker’) déduit le reste. La vérification de type est incrémentale, de telle sorte que dans le même fichier, une partie du code peut être convertie en Hack tandis que le reste demeure en PHP.». Cependant, Hack ajoute des fonctionnalités supplémentaires au-delà de la vérification du type statique parmi lesquelles Collections ou les expressions lambda.

L’objectif de ce projet est de diminuer la charge imposée aux serveurs en optimisant le code. Les développeurs intéressés sont d'ores et déjà invités à se saisir de ses outils de conversion, voire participer à l'amélioration du langage lui-même.

Installer Hack

Installer Hack Conversion

Source : Facebook

Et vous ?

Que pensez-vous de Hack ? Allez-vous l'essayer ?